OSDN Git Service

最初のコミット master
authorSFPGMR <sfpg@git.sourceforge.jp>
Fri, 17 Jun 2011 22:56:08 +0000 (07:56 +0900)
committerSFPGMR <sfpg@git.sourceforge.jp>
Fri, 17 Jun 2011 22:56:08 +0000 (07:56 +0900)
315 files changed:
.gitignore [new file with mode: 0644]
Sound/GDSound.cpp [new file with mode: 0644]
Sound/GDSound.h [new file with mode: 0644]
Sound/GDSoundEffect.cpp [new file with mode: 0644]
Sound/GDSoundEffect.h [new file with mode: 0644]
Sound/dmplayer.BAK [new file with mode: 0644]
Sound/dmplayer.cpp [new file with mode: 0644]
Sound/dmplayer.h [new file with mode: 0644]
Sound/events.h [new file with mode: 0644]
Sound/scheme.cpp [new file with mode: 0644]
Sound/scheme.h [new file with mode: 0644]
genx.exe [new file with mode: 0644]
project/.picasa.ini [new file with mode: 0644]
project/Author.DRW [new file with mode: 0644]
project/Author.bmp [new file with mode: 0644]
project/BuildMethod.html [new file with mode: 0644]
project/CVS/Entries [new file with mode: 0644]
project/CVS/Entries.Log [new file with mode: 0644]
project/CVS/Repository [new file with mode: 0644]
project/CVS/Root [new file with mode: 0644]
project/ChordMap1.cdm [new file with mode: 0644]
project/EA01_h.txt [new file with mode: 0644]
project/ENE_XG.MID [new file with mode: 0644]
project/FloppyCopy.PIF [new file with mode: 0644]
project/FloppyCopy.bat [new file with mode: 0644]
project/FloppyRestore.PIF [new file with mode: 0644]
project/FloppyRestore.bat [new file with mode: 0644]
project/Font1.bmp [new file with mode: 0644]
project/Font2.bmp [new file with mode: 0644]
project/GENX.TR2 [new file with mode: 0644]
project/HomePageCopy.PIF [new file with mode: 0644]
project/HomePageCopy.bat [new file with mode: 0644]
project/InputImpl.html [new file with mode: 0644]
project/LFNDOS.TXT [new file with mode: 0644]
project/MAKEFILE [new file with mode: 0644]
project/RCa65593 [new file with mode: 0644]
project/Style1.sty [new file with mode: 0644]
project/Thumbs.db [new file with mode: 0644]
project/UpgradeLog.XML [new file with mode: 0644]
project/UpgradeLog2.XML [new file with mode: 0644]
project/WIN32B55.MAK [new file with mode: 0644]
project/WinMain.cpp [new file with mode: 0644]
project/ZK01_h.html [new file with mode: 0644]
project/ZK01_h.txt [new file with mode: 0644]
project/_UpgradeReport_Files/UpgradeReport.css [new file with mode: 0644]
project/_UpgradeReport_Files/UpgradeReport.xslt [new file with mode: 0644]
project/_UpgradeReport_Files/UpgradeReport_Minus.gif [new file with mode: 0644]
project/_UpgradeReport_Files/UpgradeReport_Plus.gif [new file with mode: 0644]
project/afxres.h [new file with mode: 0644]
project/blank.bmp [new file with mode: 0644]
project/buildcopy.PIF [new file with mode: 0644]
project/buildcopy.bat [new file with mode: 0644]
project/chrfile.dat [new file with mode: 0644]
project/debug.bat [new file with mode: 0644]
project/dlldata.c [new file with mode: 0644]
project/episode.dat [new file with mode: 0644]
project/err.txt [new file with mode: 0644]
project/fdcopy.PIF [new file with mode: 0644]
project/fdcopy.bat [new file with mode: 0644]
project/fdcopy.in [new file with mode: 0644]
project/flip.lst [new file with mode: 0644]
project/font.dat [new file with mode: 0644]
project/game.dat [new file with mode: 0644]
project/genx [new file with mode: 0644]
project/genx.aps [new file with mode: 0644]
project/genx.clw [new file with mode: 0644]
project/genx.dep [new file with mode: 0644]
project/genx.dsp [new file with mode: 0644]
project/genx.dsw [new file with mode: 0644]
project/genx.exe [new file with mode: 0644]
project/genx.mak [new file with mode: 0644]
project/genx.ncb [new file with mode: 0644]
project/genx.opt [new file with mode: 0644]
project/genx.plg [new file with mode: 0644]
project/genx.rc [new file with mode: 0644]
project/genx.sln [new file with mode: 0644]
project/genx.sln.old [new file with mode: 0644]
project/genx.suo.old [new file with mode: 0644]
project/genx.vcproj [new file with mode: 0644]
project/genx.vcproj.7.10.old [new file with mode: 0644]
project/genx.vcproj.satoshi-PC.satoshi.user [new file with mode: 0644]
project/genx.vcxproj [new file with mode: 0644]
project/genx.vcxproj.filters [new file with mode: 0644]
project/genx.vcxproj.user [new file with mode: 0644]
project/highscore.dat [new file with mode: 0644]
project/icon1.ico [new file with mode: 0644]
project/ktake2/AbstractObj.htm [new file with mode: 0644]
project/ktake2/WinMain.htm [new file with mode: 0644]
project/ktake2/ZK01.htm [new file with mode: 0644]
project/ktake2/_out.kwf [new file with mode: 0644]
project/latex/Makefile [new file with mode: 0644]
project/latex/doxygen.sty [new file with mode: 0644]
project/latex/hierarchy.tex [new file with mode: 0644]
project/latex/refman.tex [new file with mode: 0644]
project/make.err [new file with mode: 0644]
project/make.log [new file with mode: 0644]
project/make.txt [new file with mode: 0644]
project/makebmp.exe [new file with mode: 0644]
project/resource.h [new file with mode: 0644]
project/s2001.EXE [new file with mode: 0644]
project/s2001.dll [new file with mode: 0644]
project/s2001/AbstractCharacter.cpp [new file with mode: 0644]
project/s2001/AbstractCharacter.h [new file with mode: 0644]
project/s2001/AbstractCharacters.h [new file with mode: 0644]
project/s2001/AbstractEnemy.cpp [new file with mode: 0644]
project/s2001/AbstractEnemy.h [new file with mode: 0644]
project/s2001/AbstractScene.cpp [new file with mode: 0644]
project/s2001/AbstractScene.h [new file with mode: 0644]
project/s2001/Armys.cpp [new file with mode: 0644]
project/s2001/Armys.h [new file with mode: 0644]
project/s2001/CVS/Entries [new file with mode: 0644]
project/s2001/CVS/Repository [new file with mode: 0644]
project/s2001/CVS/Root [new file with mode: 0644]
project/s2001/Controller.cpp [new file with mode: 0644]
project/s2001/Controller.h [new file with mode: 0644]
project/s2001/DispositionControl.cpp [new file with mode: 0644]
project/s2001/DispositionControl.h [new file with mode: 0644]
project/s2001/EA01.cpp [new file with mode: 0644]
project/s2001/EA01.h [new file with mode: 0644]
project/s2001/EB01.cpp [new file with mode: 0644]
project/s2001/EB01.h [new file with mode: 0644]
project/s2001/Effects.cpp [new file with mode: 0644]
project/s2001/Effects.h [new file with mode: 0644]
project/s2001/EnemyBullets.cpp [new file with mode: 0644]
project/s2001/EnemyBullets.h [new file with mode: 0644]
project/s2001/Enemys.cpp [new file with mode: 0644]
project/s2001/Enemys.h [new file with mode: 0644]
project/s2001/Explosion.cpp [new file with mode: 0644]
project/s2001/Hit.cpp [new file with mode: 0644]
project/s2001/Hit.h [new file with mode: 0644]
project/s2001/MainApp.cpp [new file with mode: 0644]
project/s2001/MainApp.h [new file with mode: 0644]
project/s2001/Manager.cpp [new file with mode: 0644]
project/s2001/Manager.h [new file with mode: 0644]
project/s2001/MyBullets.cpp [new file with mode: 0644]
project/s2001/MyBullets.h [new file with mode: 0644]
project/s2001/MyGroundBullets.cpp [new file with mode: 0644]
project/s2001/MyGroundBullets.h [new file with mode: 0644]
project/s2001/MyShip.cpp [new file with mode: 0644]
project/s2001/MyShip.h [new file with mode: 0644]
project/s2001/ReadMe.txt [new file with mode: 0644]
project/s2001/Scene.h [new file with mode: 0644]
project/s2001/StdAfx.cpp [new file with mode: 0644]
project/s2001/StdAfx.h [new file with mode: 0644]
project/s2001/Target.cpp [new file with mode: 0644]
project/s2001/Target.h [new file with mode: 0644]
project/s2001/ZK01.cpp [new file with mode: 0644]
project/s2001/ZK01.h [new file with mode: 0644]
project/s2001/ZK02.cpp [new file with mode: 0644]
project/s2001/ZK02.h [new file with mode: 0644]
project/s2001/afxres.h [new file with mode: 0644]
project/s2001/character.cpp [new file with mode: 0644]
project/s2001/character.h [new file with mode: 0644]
project/s2001/explosion.h [new file with mode: 0644]
project/s2001/s2001.cpp [new file with mode: 0644]
project/s2001/s2001.dsp [new file with mode: 0644]
project/s2001/s2001.h [new file with mode: 0644]
project/s2001/s2001.plg [new file with mode: 0644]
project/s2001/s2001.vcproj [new file with mode: 0644]
project/s2001/s2001.vcproj.7.10.old [new file with mode: 0644]
project/s2001/s2001.vcproj.satoshi-PC.satoshi.user [new file with mode: 0644]
project/s2001/s2001.vcxproj [new file with mode: 0644]
project/s2001/s2001.vcxproj.filters [new file with mode: 0644]
project/s2001/s2001.vcxproj.user [new file with mode: 0644]
project/s2001/scenetype.h [new file with mode: 0644]
project/s2001Editor/BGEditor.cpp [new file with mode: 0644]
project/s2001Editor/BGEditor.h [new file with mode: 0644]
project/s2001Editor/BGEditorImpl.cpp [new file with mode: 0644]
project/s2001Editor/BGEditorImpl.h [new file with mode: 0644]
project/s2001Editor/CVS/Entries [new file with mode: 0644]
project/s2001Editor/CVS/Repository [new file with mode: 0644]
project/s2001Editor/CVS/Root [new file with mode: 0644]
project/s2001Editor/DispositionEditor.cpp [new file with mode: 0644]
project/s2001Editor/DispositionEditor.h [new file with mode: 0644]
project/s2001Editor/DispositionEditorImpl.cpp [new file with mode: 0644]
project/s2001Editor/DispositionEditorImpl.h [new file with mode: 0644]
project/s2001Editor/PathEditorImpl.cpp [new file with mode: 0644]
project/s2001Editor/PathEditorImpl.h [new file with mode: 0644]
project/s2001Editor/ReadMe.txt [new file with mode: 0644]
project/s2001Editor/StdAfx.cpp [new file with mode: 0644]
project/s2001Editor/StdAfx.h [new file with mode: 0644]
project/s2001Editor/s2001Editor.cpp [new file with mode: 0644]
project/s2001Editor/s2001Editor.dsp [new file with mode: 0644]
project/s2001Editor/s2001Editor.plg [new file with mode: 0644]
project/s2001Editor/s2001Editor.vcproj [new file with mode: 0644]
project/s2001Editor/s2001Editor.vcproj.7.10.old [new file with mode: 0644]
project/s2001Editor/s2001Editor.vcproj.satoshi-PC.satoshi.user [new file with mode: 0644]
project/s2001Editor/s2001Editor.vcxproj [new file with mode: 0644]
project/s2001Editor/s2001Editor.vcxproj.filters [new file with mode: 0644]
project/s2001Editor/s2001Editor.vcxproj.user [new file with mode: 0644]
project/s2001Editor/s2001editor.cfg [new file with mode: 0644]
project/s2001scene/AuthorImpl.cpp [new file with mode: 0644]
project/s2001scene/AuthorImpl.h [new file with mode: 0644]
project/s2001scene/Fade.cpp [new file with mode: 0644]
project/s2001scene/Fade.h [new file with mode: 0644]
project/s2001scene/FadeImpl.cpp [new file with mode: 0644]
project/s2001scene/FadeImpl.h [new file with mode: 0644]
project/s2001scene/Game.cpp [new file with mode: 0644]
project/s2001scene/Game.h [new file with mode: 0644]
project/s2001scene/GameImpl.cpp [new file with mode: 0644]
project/s2001scene/GameImpl.h [new file with mode: 0644]
project/s2001scene/OverImpl.cpp [new file with mode: 0644]
project/s2001scene/OverImpl.h [new file with mode: 0644]
project/s2001scene/ReadMe.txt [new file with mode: 0644]
project/s2001scene/RestartImpl.cpp [new file with mode: 0644]
project/s2001scene/RestartImpl.h [new file with mode: 0644]
project/s2001scene/StartImpl.cpp [new file with mode: 0644]
project/s2001scene/StartImpl.h [new file with mode: 0644]
project/s2001scene/StdAfx.cpp [new file with mode: 0644]
project/s2001scene/StdAfx.h [new file with mode: 0644]
project/s2001scene/SystemWin32.cpp [new file with mode: 0644]
project/s2001scene/SystemWin32.h [new file with mode: 0644]
project/s2001scene/TitleImpl.cpp [new file with mode: 0644]
project/s2001scene/TitleImpl.h [new file with mode: 0644]
project/s2001scene/fade.prep [new file with mode: 0644]
project/s2001scene/fade.prep.txt [new file with mode: 0644]
project/s2001scene/fadeimpl.prep.txt [new file with mode: 0644]
project/s2001scene/prep.bat [new file with mode: 0644]
project/s2001scene/s2001scene.cfg [new file with mode: 0644]
project/s2001scene/s2001scene.cpp [new file with mode: 0644]
project/s2001scene/s2001scene.dsp [new file with mode: 0644]
project/s2001scene/s2001scene.plg [new file with mode: 0644]
project/s2001scene/s2001scene.vcproj [new file with mode: 0644]
project/s2001scene/s2001scene.vcproj.7.10.old [new file with mode: 0644]
project/s2001scene/s2001scene.vcproj.satoshi-PC.satoshi.user [new file with mode: 0644]
project/s2001scene/s2001scene.vcxproj [new file with mode: 0644]
project/s2001scene/s2001scene.vcxproj.filters [new file with mode: 0644]
project/s2001scene/s2001scene.vcxproj.user [new file with mode: 0644]
project/scenes.txt [new file with mode: 0644]
project/sf1.dat [new file with mode: 0644]
project/sfglib.dll [new file with mode: 0644]
project/sfglib.lib [new file with mode: 0644]
project/sfglib/AbstractSprite.cpp [new file with mode: 0644]
project/sfglib/AbstractSprite.h [new file with mode: 0644]
project/sfglib/BackGround.cpp [new file with mode: 0644]
project/sfglib/BackGround.h [new file with mode: 0644]
project/sfglib/CVS/Entries [new file with mode: 0644]
project/sfglib/CVS/Repository [new file with mode: 0644]
project/sfglib/CVS/Root [new file with mode: 0644]
project/sfglib/Console.h [new file with mode: 0644]
project/sfglib/ConsoleImpl.cpp [new file with mode: 0644]
project/sfglib/ConsoleImpl.h [new file with mode: 0644]
project/sfglib/Exception.h [new file with mode: 0644]
project/sfglib/Input.h [new file with mode: 0644]
project/sfglib/InputImpl.cpp [new file with mode: 0644]
project/sfglib/InputImpl.h [new file with mode: 0644]
project/sfglib/MAKEFILE [new file with mode: 0644]
project/sfglib/Main.h [new file with mode: 0644]
project/sfglib/Obj.cpp [new file with mode: 0644]
project/sfglib/Obj.h [new file with mode: 0644]
project/sfglib/Obj2D.cpp [new file with mode: 0644]
project/sfglib/Obj2D.h [new file with mode: 0644]
project/sfglib/Obj3D.cpp [new file with mode: 0644]
project/sfglib/Obj3D.h [new file with mode: 0644]
project/sfglib/Obj3DL.cpp [new file with mode: 0644]
project/sfglib/Obj3DL.h [new file with mode: 0644]
project/sfglib/ObjQuadrangle.cpp [new file with mode: 0644]
project/sfglib/ObjQuadrangle.h [new file with mode: 0644]
project/sfglib/ObjRectangle.cpp [new file with mode: 0644]
project/sfglib/ObjRectangle.h [new file with mode: 0644]
project/sfglib/ReadMe.txt [new file with mode: 0644]
project/sfglib/SFGLIB.CFG [new file with mode: 0644]
project/sfglib/Sound.h [new file with mode: 0644]
project/sfglib/SoundImpl.cpp [new file with mode: 0644]
project/sfglib/SoundImpl.h [new file with mode: 0644]
project/sfglib/Sprite2D.cpp [new file with mode: 0644]
project/sfglib/Sprite2D.h [new file with mode: 0644]
project/sfglib/Sprite3D.cpp [new file with mode: 0644]
project/sfglib/Sprite3D.h [new file with mode: 0644]
project/sfglib/SpriteMesh.cpp [new file with mode: 0644]
project/sfglib/SpriteMesh.h [new file with mode: 0644]
project/sfglib/StdAfx.cpp [new file with mode: 0644]
project/sfglib/StdAfx.h [new file with mode: 0644]
project/sfglib/System.cpp [new file with mode: 0644]
project/sfglib/System.h [new file with mode: 0644]
project/sfglib/SystemImpl.cpp [new file with mode: 0644]
project/sfglib/SystemImpl.h [new file with mode: 0644]
project/sfglib/SystemWin32.h [new file with mode: 0644]
project/sfglib/dxerr8sf.h [new file with mode: 0644]
project/sfglib/icon1.ico [new file with mode: 0644]
project/sfglib/lib/sfglib.lib [new file with mode: 0644]
project/sfglib/make.err [new file with mode: 0644]
project/sfglib/resource.h [new file with mode: 0644]
project/sfglib/sf.h [new file with mode: 0644]
project/sfglib/sfdebug.h [new file with mode: 0644]
project/sfglib/sfglib.aps [new file with mode: 0644]
project/sfglib/sfglib.cpp [new file with mode: 0644]
project/sfglib/sfglib.def [new file with mode: 0644]
project/sfglib/sfglib.dep [new file with mode: 0644]
project/sfglib/sfglib.dsp [new file with mode: 0644]
project/sfglib/sfglib.mak [new file with mode: 0644]
project/sfglib/sfglib.plg [new file with mode: 0644]
project/sfglib/sfglib.rc [new file with mode: 0644]
project/sfglib/sfglib.vcproj [new file with mode: 0644]
project/sfglib/sfglib.vcproj.7.10.old [new file with mode: 0644]
project/sfglib/sfglib.vcproj.satoshi-PC.satoshi.user [new file with mode: 0644]
project/sfglib/sfglib.vcxproj [new file with mode: 0644]
project/sfglib/sfglib.vcxproj.filters [new file with mode: 0644]
project/sfglib/sfglib.vcxproj.user [new file with mode: 0644]
project/sfglib/sflib.aps [new file with mode: 0644]
project/sfglib/singleton.h [new file with mode: 0644]
project/sfglib/sourcefilelist.wsf [new file with mode: 0644]
project/sfglib/td32.TR2 [new file with mode: 0644]
project/sfinterface.h [new file with mode: 0644]
project/sourcefilelist.wsf [new file with mode: 0644]
project/sourcefilelist2.wsf [new file with mode: 0644]
project/td32.TR2 [new file with mode: 0644]
project/tdconfig.td2 [new file with mode: 0644]
project/test.X [new file with mode: 0644]
project/test.dis [new file with mode: 0644]
project/test.map [new file with mode: 0644]
project/test1.dis [new file with mode: 0644]
project/test1.tpl [new file with mode: 0644]
project/test2.dat [new file with mode: 0644]
project/xml/doxygen.xml [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..a9f9624
--- /dev/null
@@ -0,0 +1,10 @@
+*.sdf
+*.suo
+html/
+media/
+obj/
+Debug/
+Release/
+ipch/
+PreviousFiles/
+test/
\ No newline at end of file
diff --git a/Sound/GDSound.cpp b/Sound/GDSound.cpp
new file mode 100644 (file)
index 0000000..e232cc2
--- /dev/null
@@ -0,0 +1,392 @@
+//##CLASS////////////////////////////////////////////////////////////
+//Programming          :       Satoshi Fujiwara.
+//Project Name :       GENX
+//File                 :       GDSound.h
+//Content              :       \83T\83E\83\93\83h\8aî\92ê\83N\83\89\83X
+//Implementaion        :       GDSound.h
+//##CLASS_END/////////////////////////////////////////////////////////
+#include "GDSound.h"
+
+static DSCAPS DSCaps;
+LPDIRECTSOUND GDSound::lpDS = NULL;
+BOOL GDSound::fSoundSupport = DSERR_NOINTERFACE;
+static const char c_szWAV[] = "WAVE";
+DSCAPS GDSound::DSCaps;
+
+//////////////////////////////////////////////////////////////////////////////////
+// GDSound Constructor
+//////////////////////////////////////////////////////////////////////////////////
+ GDSound::GDSound()
+{
+       lpDS = NULL;
+       ZeroMemory(&DSCaps,sizeof(DSCAPS));
+       fSoundSupport = DSERR_NOINTERFACE;
+}
+
+ GDSound::GDSound(HWND hWnd){
+        GDSound();
+        Init(hWnd);
+ }
+//////////////////////////////////////////////////////////////////////////////////
+// GDSound Destructor
+//////////////////////////////////////////////////////////////////////////////////
+GDSound::~GDSound()
+{
+       if(lpDS){
+               lpDS->Release();
+               lpDS = NULL;
+       }
+}
+
+//////////////////////////////////////////////////////////////////////////////////
+// GDSound Create
+//////////////////////////////////////////////////////////////////////////////////
+HRESULT GDSound::Init(HWND hWnd)
+{
+       HRESULT hr;
+
+       hr = DirectSoundCreate(NULL, &lpDS, NULL);
+       if(hr != DS_OK) 
+       {
+               fSoundSupport = FALSE;
+               return hr;
+       }
+
+//     hr = lpDS->SetCooperativeLevel(hWnd, DSSCL_EXCLUSIVE);
+       hr = lpDS->SetCooperativeLevel(hWnd, DSSCL_NORMAL);
+
+       if(hr != DS_OK) {
+               fSoundSupport = FALSE;
+               return hr;
+       }
+
+       fSoundSupport = TRUE;
+       return DS_OK;
+}
+
+//////////////////////////////////////////////////////////////////////////////////
+// GDSound GetCaps
+//////////////////////////////////////////////////////////////////////////////////
+HRESULT GDSound::GetCaps(void)
+{
+       return(lpDS->GetCaps(&DSCaps));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// DSLoadSoundBuffer - Loads a .WAV into a sound buffer and returns the sound buffer
+//
+///////////////////////////////////////////////////////////////////////////////
+
+IDirectSoundBuffer *GDSound::DSLoadSoundBuffer(IDirectSound *pDS, LPCTSTR lpName)
+{
+    IDirectSoundBuffer *pDSB = NULL;
+    DSBUFFERDESC dsBD = {0};
+    BYTE *pbWaveData;
+    void *pvBase;
+       ZeroMemory(&dsBD,sizeof(dsBD));
+    dsBD.dwSize = sizeof(dsBD);
+//    dsBD.dwFlags = DSBCAPS_STATIC | DSBCAPS_CTRL3D
+//                        | DSBCAPS_LOCSOFTWARE;
+    dsBD.dwFlags = DSBCAPS_STATIC;
+//     dsBD.dwFlags = DSBCAPS_STATIC | DSBCAPS_LOCHARDWARE  ;
+
+    if (DSGetWaveResource(NULL, lpName, &dsBD.lpwfxFormat, &pbWaveData, &dsBD.dwBufferBytes))
+    {
+        if (SUCCEEDED(IDirectSound_CreateSoundBuffer(pDS, &dsBD, &pDSB, NULL)))
+        {
+            if (!DSFillSoundBuffer(pDSB, pbWaveData, dsBD.dwBufferBytes))
+            {
+                IDirectSoundBuffer_Release(pDSB);
+                pDSB = NULL;
+            }
+        }
+        else
+        {
+            pDSB = NULL;
+        }
+    } else if (DSGetWaveFile(NULL, lpName, &dsBD.lpwfxFormat, &pbWaveData,
+                        &dsBD.dwBufferBytes, &pvBase))
+    {
+        if (SUCCEEDED(IDirectSound_CreateSoundBuffer(pDS, &dsBD, &pDSB, NULL)))
+        {
+            if (!DSFillSoundBuffer(pDSB, pbWaveData, dsBD.dwBufferBytes))
+            {
+                IDirectSoundBuffer_Release(pDSB);
+                pDSB = NULL;
+            }
+        }
+        else
+        {
+            pDSB = NULL;
+        }
+       UnmapViewOfFile (pvBase);
+    }
+
+    return pDSB;
+}
+
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// DSLoad3DSoundBuffer - Loads a .WAV into a 3D sound buffer and returns the sound buffer
+//
+///////////////////////////////////////////////////////////////////////////////
+
+IDirectSoundBuffer *GDSound::DSLoad3DSoundBuffer(IDirectSound *pDS, LPCTSTR lpName)
+{
+    IDirectSoundBuffer *pDSB = NULL;
+    DSBUFFERDESC dsBD = {0};
+    BYTE *pbWaveData;
+    void *pvBase;
+
+    dsBD.dwSize = sizeof(dsBD);
+    dsBD.dwFlags = DSBCAPS_STATIC | DSBCAPS_CTRL3D | DSBCAPS_CTRLVOLUME
+                        | DSBCAPS_CTRLFREQUENCY | DSBCAPS_LOCSOFTWARE
+                        | DSBCAPS_STICKYFOCUS;
+
+    if (DSGetWaveResource(NULL, lpName, &dsBD.lpwfxFormat, &pbWaveData, &dsBD.dwBufferBytes))
+    {
+        if (SUCCEEDED(IDirectSound_CreateSoundBuffer(pDS, &dsBD, &pDSB, NULL)))
+        {
+            if (!DSFillSoundBuffer(pDSB, pbWaveData, dsBD.dwBufferBytes))
+            {
+                IDirectSoundBuffer_Release(pDSB);
+                pDSB = NULL;
+            }
+        }
+        else
+        {
+            pDSB = NULL;
+        }
+    } else if (DSGetWaveFile(NULL, lpName, &dsBD.lpwfxFormat, &pbWaveData,
+                        &dsBD.dwBufferBytes, &pvBase))
+    {
+        if (SUCCEEDED(IDirectSound_CreateSoundBuffer(pDS, &dsBD, &pDSB, NULL)))
+        {
+            if (!DSFillSoundBuffer(pDSB, pbWaveData, dsBD.dwBufferBytes))
+            {
+                IDirectSoundBuffer_Release(pDSB);
+                pDSB = NULL;
+            }
+        }
+        else
+        {
+            pDSB = NULL;
+        }
+       UnmapViewOfFile (pvBase);
+    }
+
+    return pDSB;
+}
+
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// DSReloadSoundBuffer
+//
+///////////////////////////////////////////////////////////////////////////////
+
+BOOL GDSound::DSReloadSoundBuffer(IDirectSoundBuffer *pDSB, LPCTSTR lpName)
+{
+    BOOL result=FALSE;
+    BYTE *pbWaveData;
+    DWORD cbWaveSize;
+    void *pvBase;
+
+    if (DSGetWaveResource(NULL, lpName, NULL, &pbWaveData, &cbWaveSize))
+    {
+        if (SUCCEEDED(IDirectSoundBuffer_Restore(pDSB)) &&
+            DSFillSoundBuffer(pDSB, pbWaveData, cbWaveSize))
+       {
+           result = TRUE;
+        }
+    } else if( DSGetWaveFile(NULL, lpName, NULL, &pbWaveData, &cbWaveSize, &pvBase))
+    {
+        if (SUCCEEDED(IDirectSoundBuffer_Restore(pDSB)) &&
+            DSFillSoundBuffer(pDSB, pbWaveData, cbWaveSize))
+       {
+           result = TRUE;
+        }
+        UnmapViewOfFile (pvBase);
+    }
+
+    return result;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// DSGetWaveResource
+//
+///////////////////////////////////////////////////////////////////////////////
+BOOL GDSound::DSGetWaveResource(HMODULE hModule, LPCTSTR lpName,
+    WAVEFORMATEX **ppWaveHeader, BYTE **ppbWaveData, DWORD *pcbWaveSize)
+{
+    HRSRC hResInfo;
+    HGLOBAL hResData;
+    void * pvRes;
+
+    if (((hResInfo = FindResource(hModule, lpName, c_szWAV)) != NULL) &&
+        ((hResData = LoadResource(hModule, hResInfo)) != NULL) &&
+        ((pvRes = LockResource(hResData)) != NULL) &&
+        DSParseWaveResource(pvRes, ppWaveHeader, ppbWaveData, pcbWaveSize))
+    {
+        return TRUE;
+    }
+
+    return FALSE;
+
+}
+
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// DSGetWaveFile
+//
+///////////////////////////////////////////////////////////////////////////////
+BOOL GDSound::DSGetWaveFile(HMODULE hModule, LPCTSTR lpName,
+    WAVEFORMATEX **ppWaveHeader, BYTE **ppbWaveData, DWORD *pcbWaveSize,
+       void **ppvBase)
+{
+    void *pvRes;
+    HANDLE hFile, hMapping;
+
+    *ppvBase = NULL;
+
+    hFile = CreateFile (lpName, GENERIC_READ, FILE_SHARE_READ, 
+                           NULL, OPEN_EXISTING, 0, NULL);
+    if (hFile == INVALID_HANDLE_VALUE) return FALSE;
+
+    hMapping = CreateFileMapping (hFile, NULL, PAGE_READONLY, 0, 0, NULL);
+    if (hMapping == INVALID_HANDLE_VALUE)
+    {
+        CloseHandle (hFile); 
+        return FALSE;
+    }
+
+    CloseHandle (hFile);
+
+    pvRes = MapViewOfFile (hMapping, FILE_MAP_READ, 0, 0, 0);
+    if (pvRes == NULL)
+    {
+        CloseHandle (hMapping);
+        return FALSE;
+    }
+
+        CloseHandle (hMapping);
+
+    if (DSParseWaveResource(pvRes, ppWaveHeader, ppbWaveData, pcbWaveSize) == FALSE)
+    {
+        UnmapViewOfFile (pvRes);
+        return FALSE;
+    }
+
+    *ppvBase = pvRes;
+    return TRUE;
+}
+
+
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+BOOL GDSound::DSFillSoundBuffer(IDirectSoundBuffer *pDSB, BYTE *pbWaveData, DWORD cbWaveSize)
+{
+    if (pDSB && pbWaveData && cbWaveSize)
+    {
+        LPVOID pMem1, pMem2;
+        DWORD dwSize1, dwSize2;
+
+        if (SUCCEEDED(IDirectSoundBuffer_Lock(pDSB, 0, cbWaveSize,
+            &pMem1, &dwSize1, &pMem2, &dwSize2, 0)))
+        {
+            CopyMemory(pMem1, pbWaveData, dwSize1);
+
+            if ( 0 != dwSize2 )
+                CopyMemory(pMem2, pbWaveData+dwSize1, dwSize2);
+
+            IDirectSoundBuffer_Unlock(pDSB, pMem1, dwSize1, pMem2, dwSize2);
+            return TRUE;
+        }
+    }
+
+    return FALSE;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+BOOL GDSound::DSParseWaveResource(void *pvRes, WAVEFORMATEX **ppWaveHeader, BYTE **ppbWaveData,DWORD *pcbWaveSize)
+{
+    DWORD *pdw;
+    DWORD *pdwEnd;
+    DWORD dwRiff;
+    DWORD dwType;
+    DWORD dwLength;
+
+    if (ppWaveHeader)
+        *ppWaveHeader = NULL;
+
+    if (ppbWaveData)
+        *ppbWaveData = NULL;
+
+    if (pcbWaveSize)
+        *pcbWaveSize = 0;
+
+    pdw = (DWORD *)pvRes;
+    dwRiff = *pdw++;
+    dwLength = *pdw++;
+    dwType = *pdw++;
+
+    if (dwRiff != mmioFOURCC('R', 'I', 'F', 'F'))
+        goto exit;      // not even RIFF
+
+    if (dwType != mmioFOURCC('W', 'A', 'V', 'E'))
+        goto exit;      // not a WAV
+
+    pdwEnd = (DWORD *)((BYTE *)pdw + dwLength-4);
+
+    while (pdw < pdwEnd)
+    {
+        dwType = *pdw++;
+        dwLength = *pdw++;
+
+        switch (dwType)
+        {
+        case mmioFOURCC('f', 'm', 't', ' '):
+            if (ppWaveHeader && !*ppWaveHeader)
+            {
+                if (dwLength < sizeof(WAVEFORMAT))
+                    goto exit;      // not a WAV
+
+                *ppWaveHeader = (WAVEFORMATEX *)pdw;
+
+                if ((!ppbWaveData || *ppbWaveData) &&
+                    (!pcbWaveSize || *pcbWaveSize))
+                {
+                    return TRUE;
+                }
+            }
+            break;
+
+        case mmioFOURCC('d', 'a', 't', 'a'):
+            if ((ppbWaveData && !*ppbWaveData) ||
+                (pcbWaveSize && !*pcbWaveSize))
+            {
+                if (ppbWaveData)
+                    *ppbWaveData = (LPBYTE)pdw;
+
+                if (pcbWaveSize)
+                    *pcbWaveSize = dwLength;
+
+                if (!ppWaveHeader || *ppWaveHeader)
+                    return TRUE;
+            }
+            break;
+        }
+
+        pdw = (DWORD *)((BYTE *)pdw + ((dwLength+1)&~1));
+    }
+
+exit:
+    return FALSE;
+}
diff --git a/Sound/GDSound.h b/Sound/GDSound.h
new file mode 100644 (file)
index 0000000..c037231
--- /dev/null
@@ -0,0 +1,46 @@
+//##CLASS////////////////////////////////////////////////////////////
+//Programming          :       Satoshi Fujiwara.
+//Project Name :       GENX
+//File                 :       GDSound.h
+//Content              :       \83T\83E\83\93\83h\8aî\92ê\83N\83\89\83X
+//Implementaion        :       GDSound.h
+//##CLASS_END/////////////////////////////////////////////////////////#ifndef _GDSOUND
+#include <windows.h>
+#include <windowsx.h>
+#include "mmsystem.h"
+#include "dsound.h"
+#ifndef _GDSOUND
+#define _GDSOUND
+//////////////////////////////////////////////////////////////////////////////////
+// GDSound Class
+//////////////////////////////////////////////////////////////////////////////////
+class GDSound
+{
+private:
+protected:
+       static DSCAPS DSCaps;
+       static LPDIRECTSOUND lpDS;
+       static BOOL fSoundSupport;
+public:
+       GDSound(void);
+       GDSound(HWND hwnd);
+       ~GDSound(void);
+       HRESULT Init(HWND hwnd);
+       void   Release(void);
+       HRESULT GDSound::GetCaps(void);
+       BOOL isSoundSupport(void){return fSoundSupport;};
+protected:
+       IDirectSoundBuffer *DSLoadSoundBuffer(IDirectSound *pDS, LPCTSTR lpName);
+       IDirectSoundBuffer *DSLoad3DSoundBuffer(IDirectSound *pDS, LPCTSTR lpName);
+       BOOL DSReloadSoundBuffer(IDirectSoundBuffer *pDSB, LPCTSTR lpName);
+       BOOL DSGetWaveResource(HMODULE hModule, LPCTSTR lpName,
+    WAVEFORMATEX **ppWaveHeader, BYTE **ppbWaveData, DWORD *pdwWaveSize);
+       BOOL DSGetWaveFile(HMODULE hModule, LPCTSTR lpName, WAVEFORMATEX **ppWaveHeader,
+           BYTE **ppbWaveData, DWORD *pdwWaveSize, void **ppvBase);
+       BOOL DSFillSoundBuffer(IDirectSoundBuffer *pDSB, BYTE *pbWaveData, DWORD dwWaveSize);
+       BOOL DSParseWaveResource(void *pvRes, WAVEFORMATEX **ppWaveHeader, BYTE **ppbWaveData, DWORD *pdwWaveSize);
+};
+#endif
+
+
+
diff --git a/Sound/GDSoundEffect.cpp b/Sound/GDSoundEffect.cpp
new file mode 100644 (file)
index 0000000..9bdf98c
--- /dev/null
@@ -0,0 +1,146 @@
+//##CLASS////////////////////////////////////////////////////////////
+//Programming          :       Satoshi Fujiwara.
+//Project Name :       GENX
+//File                 :       GDSoundEffect.cpp
+//Content              :       \83T\83E\83\93\83h\8aî\92ê\83N\83\89\83X
+//HeaderFile   :       GDSoundeffect.h
+//##CLASS_END/////////////////////////////////////////////////////////
+
+#include "GDSoundEffect.h"
+
+GDSoundEffect::GDSoundEffect(){
+       int i;
+       
+       for(i = 0;i < WAVEDATA_MAX;i++){
+               pWaveData[i] = NULL;
+       
+       }
+
+       for(i = 0;i < SOUNDBUFFER_MAX;i++){
+               pSoundBuffer[i] = NULL;
+       }
+       effectcount = 0; 
+       fWaveLoad = FALSE;
+       if(isSoundSupport())
+               bEffect = TRUE;
+       else
+               bEffect = FALSE;
+       serial = 0;
+}
+
+GDSoundEffect::~GDSoundEffect(){
+       Release();
+
+}
+void GDSoundEffect::Release(void){
+       int i;
+       DWORD dwStatus;
+
+       for(i = 0;i < WAVEDATA_MAX;i++){
+               if(pWaveData[i]){
+                       pWaveData[i]->GetStatus(&dwStatus);
+                       if(dwStatus & DSBSTATUS_PLAYING)
+                               pWaveData[i]->Stop();
+                       pWaveData[i]->Release();
+                       pWaveData[i] = NULL;
+               }
+       }
+
+       for(i = 0;i < SOUNDBUFFER_MAX;i++){
+               if(pSoundBuffer[i]){
+                       pSoundBuffer[i]->GetStatus(&dwStatus);
+                       if(dwStatus & DSBSTATUS_PLAYING)
+                               pSoundBuffer[i]->Stop();
+                       pSoundBuffer[i]->Release();
+                       pSoundBuffer[i] = NULL;
+               }
+       }
+       effectcount = 0;
+}
+
+BOOL GDSoundEffect::Load(char * szFileName){
+       if(!isSoundSupport()) return FALSE;
+       FILE *fp;
+       if(isLoad())
+               Release();
+       if((fp = fopen(szFileName,"rb")) == NULL){
+               return FALSE;
+       }
+       while ((fscanf(fp,"%s",&WavFileName[effectcount][0]) != EOF) && (effectcount < WAVEDATA_MAX)){
+               pWaveData[effectcount] = DSLoadSoundBuffer(lpDS,&WavFileName[effectcount][0]);
+               effectcount ++;
+       }
+       fclose(fp);
+       fWaveLoad = TRUE;
+       return TRUE;
+}
+
+void GDSoundEffect::Play(int SoundBufferNumber,long volume,long pan)
+{
+       DWORD dwStatus = 0;
+       DWORD dsrval;
+       int wold = 0;
+       int woldindex = 0;
+       int i = 0;
+       
+       if(!isSoundSupport()) return;
+       if(!bEffect) return;
+
+       if(SoundBufferNumber > effectcount || !pWaveData[SoundBufferNumber])
+               return;
+       
+       pWaveData[SoundBufferNumber]->GetStatus(&dwStatus);
+
+       if(dwStatus & DSBSTATUS_BUFFERLOST){
+               pWaveData[SoundBufferNumber]->Restore();
+               if(DSReloadSoundBuffer(pWaveData[SoundBufferNumber],&WavFileName[SoundBufferNumber][0]) == FALSE)
+                       return;
+
+       }
+
+       for(i = 0;i < SOUNDBUFFER_MAX;i++){
+               if(!pSoundBuffer[i]){//Sound Buffer \82ª NULL\81i\96¢\8eg\97p\81j\82Ì\8fê\8d\87
+                       dsrval = lpDS->DuplicateSoundBuffer(pWaveData[SoundBufferNumber],&pSoundBuffer[i]);
+                       if(dsrval != DS_OK){
+                               return;
+                       }
+                       pSoundBuffer[i]->SetVolume(volume);
+                       pSoundBuffer[i]->SetPan(pan);
+                       pSoundBuffer[i]->Play(0,0,0);
+                       usecount[i] =  GetSerial();
+                       return;
+               } else {//Sound Buffer\82ª\8eg\97p\82³\82ê\82Ä\82¢\82é\8fê\8d\87
+                       pSoundBuffer[i]->GetStatus(&dwStatus);
+                       if(!(dwStatus & DSBSTATUS_PLAYING) || (dwStatus & DSBSTATUS_BUFFERLOST)){
+                               if(dwStatus & DSBSTATUS_BUFFERLOST)
+                                       pSoundBuffer[i]->Restore();
+                               pSoundBuffer[i]->Release();
+                               dsrval = lpDS->DuplicateSoundBuffer(pWaveData[SoundBufferNumber],&pSoundBuffer[i]);
+                               pSoundBuffer[i]->SetVolume(volume);
+                               pSoundBuffer[i]->SetPan(pan);
+                               pSoundBuffer[i]->Play(0,0,0);
+                               usecount[i] = GetSerial();
+                               return;
+                       }
+                       if(!wold){
+                               wold = usecount[i];
+                               woldindex = i;
+                       } else {
+                               if(wold > usecount[i]){
+                                       wold = usecount[i];
+                                       woldindex = i;
+                               }
+                       }
+               }
+       }
+       //\94²\82¯\82½\8fê\8d\87\82Í\81ASound Buffer \82Ì\8bó\82«\82ª\82È\82©\82Á\82½\82±\82Æ\82É\82È\82é
+       pSoundBuffer[woldindex]->Stop();
+       pSoundBuffer[woldindex]->Release();
+       dsrval = lpDS->DuplicateSoundBuffer(pWaveData[SoundBufferNumber],&pSoundBuffer[woldindex]);
+       pSoundBuffer[woldindex]->SetVolume(volume);
+       pSoundBuffer[woldindex]->SetPan(pan);
+       pSoundBuffer[woldindex]->Play(0,0,0);
+       usecount[woldindex] = GetSerial();
+
+}
+
diff --git a/Sound/GDSoundEffect.h b/Sound/GDSoundEffect.h
new file mode 100644 (file)
index 0000000..e3dfd44
--- /dev/null
@@ -0,0 +1,88 @@
+//##CLASS////////////////////////////////////////////////////////////
+//Programming          :       Satoshi Fujiwara.
+//Project Name :       GENX
+//File                 :       GDSoundEffect.h
+//Content              :       \83T\83E\83\93\83h\8aî\92ê\83N\83\89\83X
+//Implementaion        :       GDSoundEffect.h
+//##CLASS_END/////////////////////////////////////////////////////////
+#include "GDSound.h"
+#include "stdio.h"
+
+#ifndef _GDSOUNDEFFECT
+#define _GDSOUNDEFFECT
+//\83E\83F\81[\83u\83f\81[\83^\95Û\8e\9d\83o\83b\83t\83@\82Ì\91\8d\90\94
+#define WAVEDATA_MAX   32
+//\8dÄ\90\97p\83o\83b\83t\83@\82Ì\90\94
+#define SOUNDBUFFER_MAX  8     
+//////////////////////////////////////////////////////////////////////////////////
+// GDSoundEffect Class
+//////////////////////////////////////////////////////////////////////////////////
+class GDSoundEffect : public GDSound
+{
+private:
+       //\83E\83F\81[\83u\83f\81[\83^\82ð\95Û\8e\9d\82·\82é\83o\83b\83t\83@//
+       LPDIRECTSOUNDBUFFER pWaveData[WAVEDATA_MAX];
+       //\83E\83F\81[\83u\8dÄ\90\97p\83o\83b\83t\83@\81i8\83`\83\83\83\93\83l\83\8b)//
+       LPDIRECTSOUNDBUFFER pSoundBuffer[SOUNDBUFFER_MAX];
+       //Wave\83f\81[\83^\83t\83@\83C\83\8b\96¼\82ð\95Û\8e\9d\82·\82é\94z\97ñ//
+       char WavFileName[WAVEDATA_MAX][32];
+       //\8eÀ\8dÛ\82É\93Ç\82Ý\82±\82Ü\82ê\82½\83E\83F\81[\83u\83f\81[\83^\82Ì\90\94//
+       int effectcount;
+       //\83E\83F\81[\83u\8dÄ\90\97p\83V\83\8a\83A\83\8b\92l//
+       int serial;             
+               /*\83E\83F\81[\83u\8dÄ\90\97p\83o\83b\83t\83@\82ð\8eg\97p\82·\82é\82½\82Ñ\82É+1\82³\82ê\82Ü\82·\81B\82Ç\82Ì\83o\83b\83t\83@\82ª\88ê\94Ô\92·\82­\8eg
+               \97p\82³\82ê\82Ä\82¢\82é\82©\82ð\8c\9f\8fo\82·\82é\82Æ\82«\82É\8eg\97p\82³\82ê\82Ü\82·\81B
+               */
+       //\83E\83F\81[\83u\8dÄ\90\97p\83`\83\83\83l\83\8b\96\88\82Éserial\92l\82ð\95Û\8e\9d\82·\82é\83J\83E\83\93\83^\94z\97ñ//
+       BOOL usecount[SOUNDBUFFER_MAX];
+       //\83E\83F\81[\83u\83f\81[\83^\82ª\83\8d\81[\83h\82³\82ê\82½\82©\82Ç\82¤\82©\82ð\94»\95Ê\82·\82é\82½\82ß\82Ì\83t\83\89\83O//
+       BOOL fWaveLoad;
+       //\83V\83\8a\83A\83\8b\92l\82ð\8eæ\93¾\82·\82é\82½\82ß\82Ì\83v\83\89\83C\83x\81[\83g\8aÖ\90\94//
+       int GetSerial(void){serial++;if(!serial) serial = 1;return serial;};
+       BOOL bEffect;
+public:
+       //\83R\83\93\83X\83g\83\89\83N\83^//
+       GDSoundEffect(void);
+       //\83f\83X\83g\83\89\83N\83^//
+       ~GDSoundEffect(void);
+       //\8f\89\8aú\89»//
+       HRESULT Init(void);
+       //\83E\83F\81[\83u\83f\81[\83^\83\8a\83X\83g(\83e\83L\83X\83g\83t\83@\83C\83\8b)\82©\82ç\81A\83E\83F\81[\83u\83t\83@\83C\83\8b(.WAV\83t\83H\81[\83}\83b\83g\81j\82ð\93Ç\82Ý\8fo\82·\81B//
+       BOOL    Load(char *szFileName);
+       //##FUNC///////////////////////////////////////////////////////////////////////
+       //Function Name         void    Play(int SoundBufferNumber,long volume,long pan);
+       //Input Value           int SoundBufferNumber   ;\83E\83F\81[\83u\83f\81[\83^\94Ô\8d\86
+       //                                      long volume                             ;\83{\83\8a\83\85\81[\83\80\81i\89¹\97Ê\81j
+       //                                      long pan                                ;\83p\83\93\83j\83\93\83O\81i\92è\88Ê\81j
+       //Return Value          NONE    
+       //Purpose                       \83E\83F\81[\83u\83f\81[\83^\82ð\8dÄ\90\82·\82é
+       //##FUNC_END///////////////////////////////////////////////////////////////////
+       void Play(int SoundBufferNumber,long volume = DSBVOLUME_MAX,long pan = DSBPAN_CENTER);
+       //\83T\83E\83\93\83h\83o\83b\83t\83@\82ð\83\8a\83\8a\81[\83X\82·\82é//
+       void    Release(void);
+       //\83E\83F\81[\83u\83f\81[\83^\82ª\83\8d\81[\83h\82³\82ê\82½\82Ç\82¤\82©\82ð\94»\95Ê\82·\82é//
+       BOOL    isLoad(void){return fWaveLoad;};
+       BOOL    IsEnabled(void){return bEffect;};
+       BOOL    Enable(void){
+               if(isSoundSupport()){
+                       bEffect = TRUE;
+                       return TRUE;
+               } else {
+                       bEffect = FALSE;
+                       return FALSE;
+               }
+               
+       }
+       void Disable(void){
+               bEffect = FALSE;
+               for(int i = 0;i < SOUNDBUFFER_MAX;i++){
+                       if(pSoundBuffer[i]){
+                               pSoundBuffer[i]->Stop();
+                       }
+               }
+       }
+};
+#endif
+
+
+
diff --git a/Sound/dmplayer.BAK b/Sound/dmplayer.BAK
new file mode 100644 (file)
index 0000000..74a0737
--- /dev/null
@@ -0,0 +1,706 @@
+// CDMPlayer.cpp : implementation file
+//
+// Copyright (c) 1998 Microsoft Corporation. All rights reserved.
+/////////////////////////////////////////////////////////////////////////////
+
+#include <objbase.h>
+#include <initguid.h>
+#include <direct.h>
+#include <dmusicc.h>
+#include <dmusici.h>
+#include "dmplayer.h"
+
+static BOOL GetSearchPath(WCHAR wszPath[MAX_PATH]);
+
+/////////////////////////////////////////////////////////////////////////////
+// Members
+
+CDMPlayer::CDMPlayer(HWND hWnd)
+{
+       m_hWnd = hWnd;
+       m_bIsPlaying = FALSE;
+       m_bIsInitialized = FALSE;
+       m_pComposer = NULL;
+       m_pLoader = NULL;
+       m_pDirectMusic = NULL;
+       m_pPerformance = NULL;
+       m_pPort = NULL;
+
+       NullMediaPointers();
+       
+       //Initialize COM
+       if ( FAILED( CoInitialize(NULL) ))
+       {
+               OutputDebugString( "Could not initialize COM\n" );
+               return;
+       }
+
+       // Create the loader
+       if ( FAILED(CoCreateInstance(CLSID_DirectMusicLoader, NULL, CLSCTX_INPROC, 
+               IID_IDirectMusicLoader, (void**)&m_pLoader)))
+       {
+               OutputDebugString( "Could not create DMusic Loader\n" );
+               return;
+       }
+
+       //Set the search directory
+       WCHAR wzSearchDir[MAX_PATH];
+    HRESULT hr = E_FAIL;
+
+    if ( GetSearchPath(wzSearchDir) )
+    {
+           hr = m_pLoader->SetSearchDirectory(GUID_DirectMusicAllTypes, wzSearchDir, FALSE );
+    }
+
+    if ( FAILED(hr) )
+    {
+           hr = m_pLoader->SetSearchDirectory(GUID_DirectMusicAllTypes, L".", FALSE );
+    }
+
+    if ( FAILED(hr) ) 
+       {
+               OutputDebugString( "Could not set search directory\n" );
+        return;
+       }
+
+       // Create the performance object
+       if (FAILED(CoCreateInstance(CLSID_DirectMusicPerformance, NULL,
+               CLSCTX_INPROC, IID_IDirectMusicPerformance, (void**)&m_pPerformance)))
+       {
+               OutputDebugString( "Could not create DMusic performance\n" );
+               return;
+       }
+
+       // Initialize the composer
+       if (FAILED(::CoCreateInstance(CLSID_DirectMusicComposer, NULL, CLSCTX_INPROC, 
+               IID_IDirectMusicComposer, (void**)&m_pComposer)))
+       {
+               OutputDebugString( "Could not create DMusic composer\n" );
+               return;
+       }
+
+       // Initialize the software synthesizer
+       if( InitializeSynth() == FALSE )
+       {
+               OutputDebugString( "Initializing software synthesizer failed\n" );
+               return;
+       }
+
+       m_bIsInitialized = TRUE;
+       
+       // Load the necessary scheme media
+       if( !LoadScheme(0))
+       {
+        MessageBox(m_hWnd, "Unable to load the media for the default scheme.",
+                       "DirectMusic Shell: Initialization Error", MB_OK | MB_ICONEXCLAMATION );
+               return;
+       }
+
+       // Start Playing
+       m_pDirectMusic->Activate(TRUE);
+       PlaySegment(m_hWnd);
+       m_bIsPlaying = TRUE;
+}
+
+CDMPlayer::~CDMPlayer()
+{
+       ReleaseMediaPointers();
+
+       if (m_pPerformance)
+               m_pPerformance->Stop( NULL, NULL, 0, 0 );
+
+       if (m_pLoader)
+               m_pLoader->ClearCache( GUID_DirectMusicAllTypes );
+
+       if (m_pLoader)
+               m_pLoader->Release();
+
+       if (m_pPort)
+       {
+               if (m_pPerformance)
+                       m_pPerformance->RemovePort(m_pPort);
+               m_pPort->Release();
+       }
+       if (m_pDirectMusic)
+               m_pDirectMusic->Release();
+       
+       if (m_pComposer)
+               m_pComposer->Release();
+
+       if (m_pPerformance)
+               m_pPerformance->Release();
+
+       CoUninitialize();
+}
+
+// PlayEvent is the point of input for all of the shell events.
+// Most events just play motifs. The application open/close/switch events
+// trigger new primary segments.
+void CDMPlayer::PlayEvent(WPARAM wEventType, LPARAM lEventData)
+{
+       if (!m_bIsPlaying)
+               return;
+
+       if (!m_bIsInitialized)
+               return;
+
+       // Deal with the events that switch between primary segments
+       switch (wEventType)
+       {
+               case DME_APPOPEN:
+                       PlaySegment( HWND(lEventData) );
+                       PlayMotif(DME_APPOPEN);
+                       return;
+
+               case DME_APPSWITCH:
+                       // Note that this happens upon any application switch, including clicking
+                       // the start bar. Therefore, clicking the start bar to switch music schemes
+                       // will cause PlaySegment to be called three times - once upon the DME_APPSWITCH
+                       // to the task bar, once upon the call to switch music schemes, and again
+                       // upon the DME_APPSWITCH away from the start bar.
+                       PlaySegment( HWND(lEventData) );
+                       return;
+
+               case DME_APPCLOSE:
+                       m_TemplateMapper.DeleteWin( HWND(lEventData) );
+                       PlayMotif(DME_WINDOWCLOSE);
+                       return;
+       }
+
+       // If it got this far, play the motif corresponding to the event.
+       PlayMotif(wEventType);
+}
+
+
+// Initialize the software synthesizer into the performance.
+// This function also calls IDirectMusicPerformance::Init to
+// initialize the performance and create the DirectMusic object.
+BOOL CDMPlayer::InitializeSynth()
+{
+       // Initialize the performance. Have the performance create the
+       // DirectMusic object by setting pDM to NULL. It is needed to
+       // create the port.
+       if( FAILED( m_pPerformance->Init( &m_pDirectMusic, NULL, m_hWnd )))
+               return FALSE;
+
+       DMUS_PORTPARAMS dmos;
+       ZeroMemory(&dmos, sizeof(DMUS_PORTPARAMS));
+       // create 1 channel group on the port
+       dmos.dwChannelGroups = 1;
+       // set the dwChannelGroups field as valid
+       dmos.dwValidParams = DMUS_PORTPARAMS_CHANNELGROUPS;
+       dmos.dwSize = sizeof(DMUS_PORTPARAMS);
+
+       m_pDirectMusic->Activate(FALSE);
+
+       if ( FAILED(m_pDirectMusic->CreatePort(CLSID_DirectMusicSynth, &dmos, &m_pPort, NULL)))
+       {
+               OutputDebugString( "Could not create port\n" );
+               return FALSE;
+       }
+    if ( FAILED( m_pPort->Activate(TRUE) ) ) 
+    {
+               OutputDebugString( "Could not activate port\n" );
+        return FALSE;
+    }
+       if( SUCCEEDED( m_pPerformance->AddPort( m_pPort)))
+       {
+               OutputDebugString( "Could not add port to the performance\n" );
+               m_pPerformance->AssignPChannelBlock( 0, m_pPort, 1 );
+               return TRUE;
+       }
+       return FALSE;
+}
+
+BOOL CDMPlayer::SelectOutputPort(WORD wPortIndex)
+{
+       if (!m_bIsInitialized)
+               return FALSE;
+
+       // Stop the performance and release the current port
+       BOOL bStatus = m_bIsPlaying;
+       m_bIsPlaying = FALSE;
+       if (m_pPort && m_pPerformance)
+       {
+               m_pPerformance->Invalidate(0, 0);
+               Stop();
+               m_pPerformance->RemovePort(m_pPort);
+       }
+    if (m_pBand)
+    {
+        m_pBand->Unload(m_pPerformance);
+    }
+       if (m_pPort)
+       {
+               m_pPort->Release();
+               m_pPort = NULL;
+       }
+
+       // Enumerate the new port to get its GUID
+       HRESULT hr;
+       DMUS_PORTCAPS dmpc;
+       GUID guidSynthGUID;
+       dmpc.dwSize = sizeof(DMUS_PORTCAPS);
+       
+       hr = m_pDirectMusic->EnumPort(wPortIndex, &dmpc);
+
+       // Open the new port
+       if(SUCCEEDED(hr) && hr != S_FALSE)
+       {
+               CopyMemory(&guidSynthGUID, &dmpc.guidPort, sizeof(GUID));
+               
+               DMUS_PORTPARAMS dmos;
+               ZeroMemory(&dmos, sizeof(dmos));
+               // create 1 channel group on the port
+               dmos.dwChannelGroups = 1;
+               // set the dwChannelGroups field as valid
+               dmos.dwValidParams = DMUS_PORTPARAMS_CHANNELGROUPS;
+               dmos.dwSize = sizeof(DMUS_PORTPARAMS);
+
+               hr = m_pDirectMusic->CreatePort(guidSynthGUID,
+                       &dmos, &m_pPort, NULL);
+
+               if (FAILED (hr) )
+                       return FALSE;
+
+        hr = m_pPort->Activate(TRUE);
+        if (FAILED(hr))
+            return FALSE;
+
+               // Add it to the performance
+               if( SUCCEEDED( m_pPerformance->AddPort( m_pPort)))
+               {
+                       m_pPerformance->AssignPChannelBlock( 0, m_pPort, 1 );
+                       if (m_pBand)
+                       {
+                               m_pBand->Download(m_pPerformance);
+                       }
+                       ResetMidiStream();
+                       if (bStatus)
+                               Start();
+
+                       return TRUE;
+               }
+       }
+       OutputDebugString( "Could not select output port\n" );
+       return FALSE;
+}
+
+// Returns VALID_PORT for valid output ports
+// Returns INVALID_PORT for input or invalid ports
+// Returns SELECTED_PORT for the port that is currently selected
+WORD CDMPlayer::EnumOutputPort(WORD wPortIndex, PWSTR pwzPortName, WORD wBufferLength)
+{
+       if (!m_bIsInitialized)
+               return INVALID_PORT;
+
+       HRESULT hr;
+       DMUS_PORTCAPS dmpc;
+       GUID guidEnumPort;
+       dmpc.dwSize = sizeof(DMUS_PORTCAPS);
+       
+       hr = m_pDirectMusic->EnumPort(wPortIndex, &dmpc);
+
+       if(SUCCEEDED(hr) && hr != S_FALSE)
+       {
+               if ((dmpc.dwClass == DMUS_PC_OUTPUTCLASS) && (dmpc.dwFlags & DMUS_PC_DLS))
+               {
+                       //Get string length and account for the ending NULL character
+                       WORD wStrLength = wcslen(dmpc.wszDescription) + 1;
+                       if (wStrLength > wBufferLength)
+                       {
+                               wStrLength = wBufferLength - 1;                     //leave room for null character
+                               *(pwzPortName + (wBufferLength - 1) ) = 0;      //change the last character to NULL
+                                                                                                                       //realizing that there are wSize charaters
+                                                                                                                       //counting from 0, not 1
+                       }
+                       wcsncpy(pwzPortName, dmpc.wszDescription, wStrLength);
+                       guidEnumPort = dmpc.guidPort;
+                       if( m_pPort )
+                       {
+                               hr = m_pPort->GetCaps(&dmpc);
+                               if(SUCCEEDED(hr) && hr != S_FALSE)
+                               {
+                                       if (dmpc.guidPort == guidEnumPort)
+                                               return SELECTED_PORT;
+                               }
+                       }
+                       return VALID_PORT;
+               }
+               else
+               {
+                       OutputDebugString( "Non-DLS-compatible port\n" );
+                       return INVALID_PORT;
+               }
+       }
+       else
+       {
+               OutputDebugString( "Finished enumertating ports\n" );
+               return NO_PORT;
+       }
+}
+
+// This routine loads the style and band
+// there is a hard coded assumption that the band name is "Default"
+BOOL CDMPlayer::LoadStyle(WCHAR* pwzFileName)
+{
+       DMUS_OBJECTDESC ObjectDescript;
+       ObjectDescript.dwSize = sizeof(DMUS_OBJECTDESC);
+       ObjectDescript.guidClass = CLSID_DirectMusicStyle;
+       wcscpy(ObjectDescript.wszFileName, pwzFileName );
+       ObjectDescript.dwValidData = DMUS_OBJ_CLASS | DMUS_OBJ_FILENAME ;
+
+    if (SUCCEEDED(m_pLoader->GetObject( &ObjectDescript, IID_IDirectMusicStyle,
+               (void**)&m_pStyle)))
+       {
+               BSTR bstr = SysAllocString(L"Default");
+               m_pStyle->GetBand(bstr, &m_pBand) ;
+               SysFreeString(bstr);
+               if (m_pBand)
+               {
+                       m_pBand->Download(m_pPerformance);
+                       return TRUE;
+               }
+       }
+       OutputDebugString( "Could not load style\n" );
+       return FALSE;
+}
+
+BOOL CDMPlayer::LoadChordMap(WCHAR* pwzFileName)
+{
+       DMUS_OBJECTDESC ObjectDescript;
+       ObjectDescript.dwSize = sizeof(DMUS_OBJECTDESC);
+       ObjectDescript.guidClass = CLSID_DirectMusicChordMap;
+       wcscpy(ObjectDescript.wszFileName, pwzFileName);
+       ObjectDescript.dwValidData = DMUS_OBJ_CLASS | DMUS_OBJ_FILENAME;
+    if (SUCCEEDED(m_pLoader->GetObject( &ObjectDescript, IID_IDirectMusicChordMap,
+               (void**)&m_pChordMap)))
+       {
+               return TRUE;
+       }
+       OutputDebugString( "Could not load chord map\n" );
+       return FALSE;
+}
+
+BOOL CDMPlayer::LoadTemplate(DWORD dwIndex, WCHAR* pwzName)
+{      
+       if (m_pTemplates[dwIndex])
+               m_pTemplates[dwIndex]->Release();
+
+       DMUS_OBJECTDESC ObjectDescript;
+       ObjectDescript.dwSize = sizeof(DMUS_OBJECTDESC);
+       ObjectDescript.guidClass = CLSID_DirectMusicSegment;
+       wcscpy(ObjectDescript.wszFileName, pwzName);
+       ObjectDescript.dwValidData = DMUS_OBJ_CLASS | DMUS_OBJ_FILENAME;
+    if (SUCCEEDED(m_pLoader->GetObject( &ObjectDescript, IID_IDirectMusicSegment,
+               (void**)&m_pTemplates[dwIndex])))
+       {
+               return TRUE;
+       }
+       OutputDebugString( "Could not load template\n" );
+       return FALSE;
+}
+
+BOOL CDMPlayer::ComposeSegment(DWORD dwIndex)
+{      
+       m_pComposer->ComposeSegmentFromTemplate(
+               m_pStyle,
+               m_pTemplates[dwIndex],
+               1,
+               m_pChordMap,
+               &m_pPrimarySegments[dwIndex]);
+       if (m_pPrimarySegments[dwIndex])
+       {
+               m_pPrimarySegments[dwIndex]->SetRepeats(999);
+               return TRUE;
+       }
+       OutputDebugString( "Could not compose segment\n" );
+       return FALSE;
+}
+
+void CDMPlayer::PlaySegment(HWND hWnd)
+{
+       WORD wTemplateNum = m_TemplateMapper.GetTemplate( hWnd );
+
+       if (wTemplateNum > NUM_TEMPLATES)
+               return;
+
+       if (m_pPrimarySegments[wTemplateNum] )
+       {
+               m_pPerformance->PlaySegment( 
+                       m_pPrimarySegments[wTemplateNum], DMUS_SEGF_BEAT , 0, NULL);
+       }
+}
+
+//     Load the dls set that the band needs, but just leave it in the cache.
+//     Then, it will be referenced and loaded by the bands in the styles and segments.
+BOOL CDMPlayer::LoadDLS(WCHAR* sFileName)
+{
+       // No need to load GM.DLS. The filename will be blank in this case
+       if ( wcscmp(sFileName, L"") == 0 )
+               return TRUE;
+       
+       DMUS_OBJECTDESC ObjectDescript;
+       ObjectDescript.dwSize = sizeof(DMUS_OBJECTDESC);
+       ObjectDescript.guidClass = CLSID_DirectMusicCollection;
+       wcscpy(ObjectDescript.wszFileName, sFileName);
+       ObjectDescript.dwValidData = DMUS_OBJ_CLASS | DMUS_OBJ_FILENAME ;
+       IDirectMusicObject* pObject = NULL;
+       if (SUCCEEDED(m_pLoader->GetObject(&ObjectDescript, IID_IDirectMusicObject,
+        (void**)&pObject)))
+       {
+               pObject->Release();
+               return TRUE;
+       }
+       OutputDebugString( "Could not load dls\n" );
+       return FALSE;
+}
+
+void CDMPlayer::PlayMotif(WORD wMotif)
+{
+       if (wMotif >= DME_MAXEVENTNUM)
+               return;
+
+       // Throw away redundant events that occur in the same beat.
+       // The purpose is to prevent more than one motif of any given
+       // type from triggering in the same beat.
+       MUSIC_TIME mtNow, mtNowBeat;
+       m_pPerformance->GetTime(NULL, &mtNow);
+       mtNowBeat = mtNow/DMUS_PPQ;
+       if (mtNowBeat == m_mtPreviousEventBeatNumber[wMotif])
+               return;
+       m_mtPreviousEventBeatNumber[wMotif] = mtNowBeat;
+
+       //Play the motif
+       if (m_pMotifs[wMotif] && m_pPerformance)
+       {
+               m_pPerformance->PlaySegment(m_pMotifs[wMotif],
+                       (DMUS_SEGF_SECONDARY | DMUS_SEGF_BEAT), 0, NULL);
+       }
+}
+
+BOOL CDMPlayer::LoadScheme(WORD wSchIndx)
+{
+       if (!LoadDLS(Schemes[wSchIndx].DLSName) )
+               return FALSE;
+       if (!LoadStyle(Schemes[wSchIndx].StyleName) )
+               return FALSE;
+       if (!LoadChordMap(Schemes[wSchIndx].ChordMapName) )
+               return FALSE;
+
+       WORD x;
+       
+       for ( x = 0; x < NUM_TEMPLATES ; x++)
+       {
+               if (wcscmp(Schemes[wSchIndx].TemplateNames[x], L"") != 0)
+                       if ( LoadTemplate( x, Schemes[wSchIndx].TemplateNames[x] ) )
+                               ComposeSegment( x );
+       }
+
+       for ( x = 0; x < DME_MAXEVENTNUM ; x++)
+       {
+               if ( Schemes[wSchIndx].MotifNames[x] )
+                       if (wcscmp(Schemes[wSchIndx].MotifNames[x], L"") != 0)
+                               m_pStyle->GetMotif(Schemes[wSchIndx].MotifNames[x], &m_pMotifs[x]);
+       }
+
+       return TRUE;
+}
+
+BOOL CDMPlayer::SelectNewScheme(WORD wSchemeNum)
+{
+       if (!m_bIsInitialized)
+               return FALSE;
+
+       ReleaseMediaPointers();
+       NullMediaPointers();
+       BOOL bReturn = LoadScheme(wSchemeNum);
+
+       ResetMidiStream();
+       
+       return bReturn;
+}
+
+BOOL CDMPlayer::GetSchemeName(WORD wSchemeNum, PWSTR pwzSchemeName, WORD wBufferLength)
+{
+       if (wSchemeNum >= NUM_SCHEMES)
+               return FALSE;
+       WORD wStrLength = wcslen(Schemes[wSchemeNum].FriendlySchemeName) + 1; //grab null char also
+       if (wStrLength > wBufferLength)
+       {
+               wStrLength = wBufferLength - 1;                                 //leave room for null character
+               *(pwzSchemeName + (wBufferLength - 1) ) = 0;    //change the last character to NULL
+                                                                                                               //realizing that there are wSize charaters
+                                                                                                               //counting from 0, not 1
+       }
+       wcsncpy(pwzSchemeName, Schemes[wSchemeNum].FriendlySchemeName, wStrLength);
+       return TRUE;
+}
+
+void CDMPlayer::Start()
+{
+       if (!m_bIsInitialized)
+               return;
+
+       PlaySegment(m_hWnd);
+       m_bIsPlaying = TRUE;
+}
+
+void CDMPlayer::Stop()
+{
+       if (m_pPerformance)
+               m_pPerformance->Stop( NULL, NULL, 0, 0 );
+
+       ResetMidiStream();
+       m_bIsPlaying = FALSE;
+}
+
+BOOL CDMPlayer::IsPlaying()
+{
+       return m_bIsPlaying;
+}
+
+void CDMPlayer::NullMediaPointers()
+{
+       for (int x = 0; x < NUM_TEMPLATES; x++)
+               m_pPrimarySegments[x] = NULL;
+
+       m_pChordMap = NULL;
+
+       m_pStyle = NULL;
+
+       for (x = 0; x < DME_MAXEVENTNUM; x++)
+               m_pMotifs[x] = NULL;
+
+       for (x = 0; x < NUM_TEMPLATES; x++)
+               m_pTemplates[x] = NULL;
+
+       m_pBand = NULL;
+
+       for (x = 0; x < DME_MAXEVENTRANGE; x++)
+               m_mtPreviousEventBeatNumber[x] = 0;
+
+}
+
+void CDMPlayer::ReleaseMediaPointers()
+{
+       for (int x = 0; x < DME_MAXEVENTNUM; x++)
+       {
+               if (m_pMotifs[x])
+                       m_pMotifs[x]->Release();
+       }
+       
+       if (m_pChordMap)
+               m_pChordMap->Release();
+       
+       for (x = 0; x < NUM_TEMPLATES; x++)
+       {
+               if (m_pPrimarySegments[x])
+                       m_pPrimarySegments[x]->Release();
+       }
+       
+       if (m_pStyle)
+               m_pStyle->Release();
+       
+       for (x = 0; x < NUM_TEMPLATES; x++)
+       {
+               if (m_pTemplates[x])
+                       m_pTemplates[x]->Release();
+       }
+
+       if (m_pBand)
+       {
+               m_pBand->Unload(m_pPerformance);
+               m_pBand->Release();
+       }
+}
+
+void CDMPlayer::ResetMidiStream()
+{
+       if (!m_pPerformance)
+               return;
+
+       DMUS_MIDI_PMSG* pMidi;
+       DMUS_PMSG* pEvent;
+       for (int x = 0; x < 16; x ++ )
+       {
+               if( SUCCEEDED( m_pPerformance->AllocPMsg( sizeof(DMUS_MIDI_PMSG),
+                       (DMUS_PMSG**)&pMidi )))
+               {
+                       ZeroMemory( pMidi, sizeof(DMUS_MIDI_PMSG) );
+                       pMidi->bStatus = 0xb0 | x;
+                       pMidi->bByte1 = 0x79;                   //Reset all controllers
+                       pMidi->bByte2 = 0x00;
+                       pMidi->dwType = DMUS_PMSGT_MIDI;
+                       pEvent = (DMUS_PMSG*)pMidi;
+                       pEvent->dwFlags = DMUS_PMSGF_REFTIME;
+                       m_pPerformance->SendPMsg( pEvent );
+               }
+               if( SUCCEEDED( m_pPerformance->AllocPMsg( sizeof(DMUS_MIDI_PMSG),
+                       (DMUS_PMSG**)&pMidi )))
+               {
+                       ZeroMemory( pMidi, sizeof(DMUS_MIDI_PMSG) );
+                       pMidi->bStatus = 0xb0 | x;
+                       pMidi->bByte1 = 0x7b;                   //All notes off
+                       pMidi->bByte2 = 0x00;
+                       pMidi->dwType = DMUS_PMSGT_MIDI;
+                       pEvent = (DMUS_PMSG*)pMidi;
+                       pEvent->dwFlags = DMUS_PMSGF_REFTIME;
+                       m_pPerformance->SendPMsg( pEvent );
+               }
+       }
+}
+
+// Get registry search path
+//
+static char szDirectMusicMedia[] = "\\DMusic\\Media";
+
+static BOOL GetSearchPath(WCHAR wszPath[MAX_PATH])
+{
+       HKEY    hkDirectX;
+       BOOL    bRet = FALSE;
+       char    szPath[MAX_PATH];
+       DWORD   cbPath;
+
+
+       // Get DirectX SDK search path from the registry
+       //
+       if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
+                                        "Software\\Microsoft\\DirectX",
+                                        0,                                                     // Reserved
+                                        KEY_READ,
+                                        &hkDirectX))
+    {
+               OutputDebugString( "Could not open registry\n" );
+               return FALSE;
+       }
+
+       cbPath = sizeof(szPath);
+       if (RegQueryValueEx(hkDirectX,
+                                               "DX6SDK Samples Path",
+                                               NULL,                                   // Reserved
+                                               NULL,                                   // Type: don't care
+                                               (LPBYTE)szPath,
+                                               &cbPath) == ERROR_SUCCESS)
+    {
+               if (cbPath + sizeof(szDirectMusicMedia) > MAX_PATH)
+               {
+                       return FALSE;
+               }
+
+               strcat(szPath, szDirectMusicMedia);
+
+               // DirectMusic requires the search path as a wide string
+               //
+               mbstowcs(wszPath, 
+                                szPath,
+                                MAX_PATH);
+               bRet = TRUE;
+       }
+
+       RegCloseKey(hkDirectX);
+       return bRet;
+}
+
+
+
diff --git a/Sound/dmplayer.cpp b/Sound/dmplayer.cpp
new file mode 100644 (file)
index 0000000..c545197
--- /dev/null
@@ -0,0 +1,697 @@
+// CDMPlayer.cpp : implementation file
+//
+// Copyright (c) 1998 Microsoft Corporation. All rights reserved.
+/////////////////////////////////////////////////////////////////////////////
+
+#include "dmplayer.h"
+#include "scheme.h"
+
+static BOOL GetSearchPath(WCHAR wszPath[MAX_PATH]);
+
+/////////////////////////////////////////////////////////////////////////////
+// Members
+
+CDMPlayer::CDMPlayer(HWND hWnd)
+{
+       m_hWnd = hWnd;
+       m_bIsPlaying = FALSE;
+       m_bIsInitialized = FALSE;
+       m_pComposer = NULL;
+       m_pLoader = NULL;
+       m_pDirectMusic = NULL;
+       m_pPerformance = NULL;
+       m_pPort = NULL;
+       m_wTemplateNum = 0;
+
+       NullMediaPointers();
+       
+       //Initialize COM
+       if ( FAILED( CoInitialize(NULL) ))
+       {
+               OutputDebugString( "Could not initialize COM\n" );
+               return;
+       }
+
+       // Create the loader
+       if ( FAILED(CoCreateInstance(CLSID_DirectMusicLoader, NULL, CLSCTX_INPROC, 
+               IID_IDirectMusicLoader, (void**)&m_pLoader)))
+       {
+               OutputDebugString( "Could not create DMusic Loader\n" );
+               return;
+       }
+
+       //Set the search directory
+//     WCHAR wzSearchDir[MAX_PATH];
+    HRESULT hr = E_FAIL;
+
+//    if ( GetSearchPath(wzSearchDir) )
+//  {
+//    hr = m_pLoader->SetSearchDirectory(GUID_DirectMusicAllTypes, wzSearchDir, FALSE );
+//    }
+
+//    if ( FAILED(hr) )
+//    {
+           hr = m_pLoader->SetSearchDirectory(GUID_DirectMusicAllTypes, L".", FALSE );
+ //   }
+
+    if ( FAILED(hr) ) 
+       {
+               OutputDebugString( "Could not set search directory\n" );
+        return;
+       }
+
+       // Create the performance object
+       if (FAILED(CoCreateInstance(CLSID_DirectMusicPerformance, NULL,
+               CLSCTX_INPROC, IID_IDirectMusicPerformance, (void**)&m_pPerformance)))
+       {
+               OutputDebugString( "Could not create DMusic performance\n" );
+               return;
+       }
+
+       // Initialize the composer
+       if (FAILED(::CoCreateInstance(CLSID_DirectMusicComposer, NULL, CLSCTX_INPROC, 
+               IID_IDirectMusicComposer, (void**)&m_pComposer)))
+       {
+               OutputDebugString( "Could not create DMusic composer\n" );
+               return;
+       }
+
+       // Initialize the software synthesizer
+       if( InitializeSynth() == FALSE )
+       {
+               OutputDebugString( "Initializing software synthesizer failed\n" );
+               return;
+       }
+
+       m_bIsInitialized = TRUE;
+       
+       // Load the necessary scheme media
+       if( !LoadScheme(0))
+       {
+        MessageBox(m_hWnd, "Unable to load the media for the default scheme.",
+                       "DirectMusic Shell: Initialization Error", MB_OK | MB_ICONEXCLAMATION );
+               m_bIsInitialized = FALSE;
+               return;
+       }
+
+// Start Playing
+       m_pDirectMusic->Activate(TRUE);
+//     PlaySegment(0);
+//     m_bIsPlaying = TRUE;
+}
+
+CDMPlayer::~CDMPlayer()
+{
+       ReleaseMediaPointers();
+
+       if (m_pPerformance){
+               m_pPerformance->Stop( NULL, NULL, 0, 0 );
+               while(m_pPerformance->IsPlaying(NULL,NULL) == DS_OK);
+       }
+
+       if (m_pLoader)
+               m_pLoader->ClearCache( GUID_DirectMusicAllTypes );
+
+       if (m_pLoader)
+               m_pLoader->Release();
+
+       if (m_pPort)
+       {
+               if (m_pPerformance)
+                       m_pPerformance->RemovePort(m_pPort);
+               m_pPort->Release();
+       }
+       if (m_pDirectMusic)
+               m_pDirectMusic->Release();
+       
+       if (m_pComposer)
+               m_pComposer->Release();
+
+       if (m_pPerformance)
+               m_pPerformance->Release();
+
+       CoUninitialize();
+}
+
+
+// Initialize the software synthesizer into the performance.
+// This function also calls IDirectMusicPerformance::Init to
+// initialize the performance and create the DirectMusic object.
+BOOL CDMPlayer::InitializeSynth()
+{
+       // Initialize the performance. Have the performance create the
+       // DirectMusic object by setting pDM to NULL. It is needed to
+       // create the port.
+       if( FAILED( m_pPerformance->Init( &m_pDirectMusic, NULL, m_hWnd )))
+               return FALSE;
+
+       DMUS_PORTPARAMS dmos;
+       ZeroMemory(&dmos, sizeof(DMUS_PORTPARAMS));
+       // create 1 channel group on the port
+       dmos.dwChannelGroups = 1;
+       // set the dwChannelGroups field as valid
+       dmos.dwValidParams = DMUS_PORTPARAMS_CHANNELGROUPS;
+       dmos.dwSize = sizeof(DMUS_PORTPARAMS);
+
+       m_pDirectMusic->Activate(FALSE);
+
+       if ( FAILED(m_pDirectMusic->CreatePort(CLSID_DirectMusicSynth, &dmos, &m_pPort, NULL)))
+       {
+               OutputDebugString( "Could not create port\n" );
+               return FALSE;
+       }
+    if ( FAILED( m_pPort->Activate(TRUE) ) ) 
+    {
+               OutputDebugString( "Could not activate port\n" );
+        return FALSE;
+    }
+       if( SUCCEEDED( m_pPerformance->AddPort( m_pPort)))
+       {
+               m_pPerformance->AssignPChannelBlock( 0, m_pPort, 1 );
+               return TRUE;
+       }
+       OutputDebugString( "Could not add port to the performance\n" );
+       return FALSE;
+}
+
+BOOL CDMPlayer::SelectOutputPort(WORD wPortIndex)
+{
+       if (!m_bIsInitialized)
+               return FALSE;
+
+       // Stop the performance and release the current port
+       BOOL bStatus = m_bIsPlaying;
+       m_bIsPlaying = FALSE;
+       if (m_pPort && m_pPerformance)
+       {
+               m_pPerformance->Invalidate(0, 0);
+               Stop();
+               m_pPerformance->RemovePort(m_pPort);
+       }
+    if (m_pBand)
+    {
+        m_pBand->Unload(m_pPerformance);
+    }
+       if (m_pPort)
+       {
+               m_pPort->Release();
+               m_pPort = NULL;
+       }
+
+       // Enumerate the new port to get its GUID
+       HRESULT hr;
+       DMUS_PORTCAPS dmpc;
+       GUID guidSynthGUID;
+       dmpc.dwSize = sizeof(DMUS_PORTCAPS);
+       
+       hr = m_pDirectMusic->EnumPort(wPortIndex, &dmpc);
+
+       // Open the new port
+       if(SUCCEEDED(hr) && hr != S_FALSE)
+       {
+               CopyMemory(&guidSynthGUID, &dmpc.guidPort, sizeof(GUID));
+               
+               DMUS_PORTPARAMS dmos;
+               ZeroMemory(&dmos, sizeof(dmos));
+               // create 1 channel group on the port
+               dmos.dwChannelGroups = 1;
+               // set the dwChannelGroups field as valid
+               dmos.dwValidParams = DMUS_PORTPARAMS_CHANNELGROUPS;
+               dmos.dwSize = sizeof(DMUS_PORTPARAMS);
+
+               hr = m_pDirectMusic->CreatePort(guidSynthGUID,
+                       &dmos, &m_pPort, NULL);
+
+               if (FAILED (hr) )
+                       return FALSE;
+
+        hr = m_pPort->Activate(TRUE);
+        if (FAILED(hr))
+            return FALSE;
+
+               // Add it to the performance
+               if( SUCCEEDED( m_pPerformance->AddPort( m_pPort)))
+               {
+                       m_pPerformance->AssignPChannelBlock( 0, m_pPort, 1 );
+                       if (m_pBand)
+                       {
+                               m_pBand->Download(m_pPerformance);
+                       }
+                       ResetMidiStream();
+                       if (bStatus)
+                               Start();
+
+                       return TRUE;
+               }
+       }
+       OutputDebugString( "Could not select output port\n" );
+       return FALSE;
+}
+
+// Returns VALID_PORT for valid output ports
+// Returns INVALID_PORT for input or invalid ports
+// Returns SELECTED_PORT for the port that is currently selected
+WORD CDMPlayer::EnumOutputPort(WORD wPortIndex, PWSTR pwzPortName, WORD wBufferLength)
+{
+       if (!m_bIsInitialized)
+               return INVALID_PORT;
+
+       HRESULT hr;
+       DMUS_PORTCAPS dmpc;
+       GUID guidEnumPort;
+       dmpc.dwSize = sizeof(DMUS_PORTCAPS);
+       
+       hr = m_pDirectMusic->EnumPort(wPortIndex, &dmpc);
+
+       if(SUCCEEDED(hr) && hr != S_FALSE)
+       {
+               if ((dmpc.dwClass == DMUS_PC_OUTPUTCLASS) && (dmpc.dwFlags & DMUS_PC_DLS))
+               {
+                       //Get string length and account for the ending NULL character
+                       WORD wStrLength = wcslen(dmpc.wszDescription) + 1;
+                       if (wStrLength > wBufferLength)
+                       {
+                               wStrLength = wBufferLength - 1;                     //leave room for null character
+                               *(pwzPortName + (wBufferLength - 1) ) = 0;      //change the last character to NULL
+                                                                                                                       //realizing that there are wSize charaters
+                                                                                                                       //counting from 0, not 1
+                       }
+                       wcsncpy(pwzPortName, dmpc.wszDescription, wStrLength);
+                       guidEnumPort = dmpc.guidPort;
+                       if( m_pPort )
+                       {
+                               hr = m_pPort->GetCaps(&dmpc);
+                               if(SUCCEEDED(hr) && hr != S_FALSE)
+                               {
+                                       if (dmpc.guidPort == guidEnumPort)
+                                               return SELECTED_PORT;
+                               }
+                       }
+                       return VALID_PORT;
+               }
+               else
+               {
+                       OutputDebugString( "Non-DLS-compatible port\n" );
+                       return INVALID_PORT;
+               }
+       }
+       else
+       {
+               OutputDebugString( "Finished enumertating ports\n" );
+               return NO_PORT;
+       }
+}
+
+// This routine loads the style and band
+// there is a hard coded assumption that the band name is "Default"
+BOOL CDMPlayer::LoadStyle(WCHAR* pwzFileName)
+{
+       DMUS_OBJECTDESC ObjectDescript;
+       ObjectDescript.dwSize = sizeof(DMUS_OBJECTDESC);
+       ObjectDescript.guidClass = CLSID_DirectMusicStyle;
+       wcscpy(ObjectDescript.wszFileName, pwzFileName );
+       ObjectDescript.dwValidData = DMUS_OBJ_CLASS | DMUS_OBJ_FILENAME ;
+
+    if (SUCCEEDED(m_pLoader->GetObject( &ObjectDescript, IID_IDirectMusicStyle,
+               (void**)&m_pStyle)))
+       {
+               BSTR bstr = SysAllocString(L"Default");
+               m_pStyle->GetBand(bstr, &m_pBand) ;
+               SysFreeString(bstr);
+               if (m_pBand)
+               {
+                       m_pBand->Download(m_pPerformance);
+                       return TRUE;
+               }
+       }
+       OutputDebugString( "Could not load style\n" );
+       return FALSE;
+}
+
+BOOL CDMPlayer::LoadChordMap(WCHAR* pwzFileName)
+{
+       DMUS_OBJECTDESC ObjectDescript;
+       ObjectDescript.dwSize = sizeof(DMUS_OBJECTDESC);
+       ObjectDescript.guidClass = CLSID_DirectMusicChordMap;
+       wcscpy(ObjectDescript.wszFileName, pwzFileName);
+       ObjectDescript.dwValidData = DMUS_OBJ_CLASS | DMUS_OBJ_FILENAME;
+    if (SUCCEEDED(m_pLoader->GetObject( &ObjectDescript, IID_IDirectMusicChordMap,
+               (void**)&m_pChordMap)))
+       {
+               return TRUE;
+       }
+       OutputDebugString( "Could not load chord map\n" );
+       return FALSE;
+}
+
+BOOL CDMPlayer::LoadTemplate(DWORD dwIndex, WCHAR* pwzName)
+{      
+       if (m_pTemplates[dwIndex])
+               m_pTemplates[dwIndex]->Release();
+
+       DMUS_OBJECTDESC ObjectDescript;
+       ObjectDescript.dwSize = sizeof(DMUS_OBJECTDESC);
+       ObjectDescript.guidClass = CLSID_DirectMusicSegment;
+       wcscpy(ObjectDescript.wszFileName, pwzName);
+       ObjectDescript.dwValidData = DMUS_OBJ_CLASS | DMUS_OBJ_FILENAME;
+    if (SUCCEEDED(m_pLoader->GetObject( &ObjectDescript, IID_IDirectMusicSegment,
+               (void**)&m_pTemplates[dwIndex])))
+       {
+               return TRUE;
+       }
+       OutputDebugString( "Could not load template\n" );
+       return FALSE;
+}
+
+BOOL CDMPlayer::ComposeSegment(DWORD dwIndex)
+{      
+       m_pComposer->ComposeSegmentFromTemplate(
+               m_pStyle,
+               m_pTemplates[dwIndex],
+               1,
+               m_pChordMap,
+               &m_pPrimarySegments[dwIndex]);
+       if (m_pPrimarySegments[dwIndex])
+       {
+               m_pPrimarySegments[dwIndex]->SetRepeats(999);
+               return TRUE;
+       }
+       OutputDebugString( "Could not compose segment\n" );
+       return FALSE;
+}
+//
+//\83e\83\93\83v\83\8c\81[\83g\82ð\89\89\91t\82·\82é\8aÖ\90\94
+//
+void CDMPlayer::PlaySegment(void)
+{
+       if (!m_bIsInitialized)
+               return;
+       if(!m_bIsPlaying)
+               return;
+
+       if (m_pPrimarySegments[m_wTemplateNum] )
+       {
+               m_pPerformance->PlaySegment( 
+                       m_pPrimarySegments[m_wTemplateNum], DMUS_SEGF_BEAT , 0, NULL);
+       }
+}
+
+void CDMPlayer::StopSegment(void)
+{
+       if(!m_bIsInitialized)
+               return;
+       if(!m_bIsPlaying)
+               return;
+
+       if (m_pPrimarySegments[m_wTemplateNum] )
+       {
+               m_pPerformance->Stop( 
+                       m_pPrimarySegments[m_wTemplateNum], NULL,0,0);
+       }
+}
+
+//     Load the dls set that the band needs, but just leave it in the cache.
+//     Then, it will be referenced and loaded by the bands in the styles and segments.
+BOOL CDMPlayer::LoadDLS(WCHAR* sFileName)
+{
+       // No need to load GM.DLS. The filename will be blank in this case
+       if ( wcscmp(sFileName, L"") == 0 )
+               return TRUE;
+       
+       DMUS_OBJECTDESC ObjectDescript;
+       ObjectDescript.dwSize = sizeof(DMUS_OBJECTDESC);
+       ObjectDescript.guidClass = CLSID_DirectMusicCollection;
+       wcscpy(ObjectDescript.wszFileName, sFileName);
+       ObjectDescript.dwValidData = DMUS_OBJ_CLASS | DMUS_OBJ_FILENAME ;
+       IDirectMusicObject* pObject = NULL;
+       if (SUCCEEDED(m_pLoader->GetObject(&ObjectDescript, IID_IDirectMusicObject,
+        (void**)&pObject)))
+       {
+               pObject->Release();
+               return TRUE;
+       }
+       OutputDebugString( "Could not load dls\n" );
+       return FALSE;
+}
+
+void CDMPlayer::PlayMotif(WORD wMotif)
+{
+       if (!m_bIsPlaying)
+               return;
+
+       if (!m_bIsInitialized)
+               return;
+
+
+       if (wMotif >= DME_MAXEVENTNUM)
+               return;
+
+       // Throw away redundant events that occur in the same beat.
+       // The purpose is to prevent more than one motif of any given
+       // type from triggering in the same beat.
+       MUSIC_TIME mtNow, mtNowBeat;
+       m_pPerformance->GetTime(NULL, &mtNow);
+       mtNowBeat = mtNow/DMUS_PPQ;
+       if (mtNowBeat == m_mtPreviousEventBeatNumber[wMotif])
+               return;
+       m_mtPreviousEventBeatNumber[wMotif] = mtNowBeat;
+
+       //Play the motif
+       if (m_pMotifs[wMotif] && m_pPerformance)
+       {
+               m_pPerformance->PlaySegment(m_pMotifs[wMotif],
+                       (DMUS_SEGF_SECONDARY | DMUS_SEGF_BEAT), 0, NULL);
+       }
+}
+
+BOOL CDMPlayer::LoadScheme(WORD wSchIndx)
+{
+       if (!LoadDLS(Schemes[wSchIndx].DLSName) )
+               return FALSE;
+       if (!LoadStyle(Schemes[wSchIndx].StyleName) )
+               return FALSE;
+       if (!LoadChordMap(Schemes[wSchIndx].ChordMapName) )
+               return FALSE;
+
+       WORD x;
+       
+       for ( x = 0; x < NUM_TEMPLATES ; x++)
+       {
+               if (wcscmp(Schemes[wSchIndx].TemplateNames[x], L"") != 0)
+                       if ( LoadTemplate( x, Schemes[wSchIndx].TemplateNames[x] ) )
+                               ComposeSegment( x );
+       }
+
+       for ( x = 0; x < DME_MAXEVENTNUM ; x++)
+       {
+               if ( Schemes[wSchIndx].MotifNames[x] )
+                       if (wcscmp(Schemes[wSchIndx].MotifNames[x], L"") != 0)
+                               m_pStyle->GetMotif(Schemes[wSchIndx].MotifNames[x], &m_pMotifs[x]);
+       }
+
+       return TRUE;
+}
+
+BOOL CDMPlayer::SelectNewScheme(WORD wSchemeNum)
+{
+       if (!m_bIsInitialized)
+               return FALSE;
+
+       ReleaseMediaPointers();
+       NullMediaPointers();
+       BOOL bReturn = LoadScheme(wSchemeNum);
+
+       ResetMidiStream();
+       
+       return bReturn;
+}
+
+BOOL CDMPlayer::GetSchemeName(WORD wSchemeNum, PWSTR pwzSchemeName, WORD wBufferLength)
+{
+       if (wSchemeNum >= NUM_SCHEMES)
+               return FALSE;
+       WORD wStrLength = wcslen(Schemes[wSchemeNum].FriendlySchemeName) + 1; //grab null char also
+       if (wStrLength > wBufferLength)
+       {
+               wStrLength = wBufferLength - 1;                                 //leave room for null character
+               *(pwzSchemeName + (wBufferLength - 1) ) = 0;    //change the last character to NULL
+                                                                                                               //realizing that there are wSize charaters
+                                                                                                               //counting from 0, not 1
+       }
+       wcsncpy(pwzSchemeName, Schemes[wSchemeNum].FriendlySchemeName, wStrLength);
+       return TRUE;
+}
+
+void CDMPlayer::Start()
+{
+       if (!m_bIsInitialized)
+               return;
+       m_bIsPlaying = TRUE;
+}
+
+void CDMPlayer::Stop()
+{
+       if (m_pPerformance)
+               m_pPerformance->Stop( NULL, NULL, 0, 0 );
+
+       ResetMidiStream();
+       m_bIsPlaying = FALSE;
+}
+
+BOOL CDMPlayer::IsPlaying()
+{
+       return m_bIsPlaying;
+}
+
+void CDMPlayer::NullMediaPointers()
+{
+       for (int x = 0; x < NUM_TEMPLATES; x++)
+               m_pPrimarySegments[x] = NULL;
+
+       m_pChordMap = NULL;
+
+       m_pStyle = NULL;
+
+       for (x = 0; x < DME_MAXEVENTNUM; x++)
+               m_pMotifs[x] = NULL;
+
+       for (x = 0; x < NUM_TEMPLATES; x++)
+               m_pTemplates[x] = NULL;
+
+       m_pBand = NULL;
+
+       for (x = 0; x < DME_MAXEVENTRANGE; x++)
+               m_mtPreviousEventBeatNumber[x] = 0;
+
+}
+
+void CDMPlayer::ReleaseMediaPointers()
+{
+       for (int x = 0; x < DME_MAXEVENTNUM; x++)
+       {
+               if (m_pMotifs[x])
+                       m_pMotifs[x]->Release();
+       }
+       
+       if (m_pChordMap)
+               m_pChordMap->Release();
+       
+       for (x = 0; x < NUM_TEMPLATES; x++)
+       {
+               if (m_pPrimarySegments[x])
+                       m_pPrimarySegments[x]->Release();
+       }
+       
+       if (m_pStyle)
+               m_pStyle->Release();
+       
+       for (x = 0; x < NUM_TEMPLATES; x++)
+       {
+               if (m_pTemplates[x])
+                       m_pTemplates[x]->Release();
+       }
+
+       if (m_pBand)
+       {
+               m_pBand->Unload(m_pPerformance);
+               m_pBand->Release();
+       }
+}
+
+void CDMPlayer::ResetMidiStream()
+{
+       if (!m_pPerformance)
+               return;
+
+       DMUS_MIDI_PMSG* pMidi;
+       DMUS_PMSG* pEvent;
+       for (int x = 0; x < 16; x ++ )
+       {
+               if( SUCCEEDED( m_pPerformance->AllocPMsg( sizeof(DMUS_MIDI_PMSG),
+                       (DMUS_PMSG**)&pMidi )))
+               {
+                       ZeroMemory( pMidi, sizeof(DMUS_MIDI_PMSG) );
+                       pMidi->bStatus = 0xb0 | x;
+                       pMidi->bByte1 = 0x79;                   //Reset all controllers
+                       pMidi->bByte2 = 0x00;
+                       pMidi->dwType = DMUS_PMSGT_MIDI;
+                       pEvent = (DMUS_PMSG*)pMidi;
+                       pEvent->dwFlags = DMUS_PMSGF_REFTIME;
+                       m_pPerformance->SendPMsg( pEvent );
+               }
+               if( SUCCEEDED( m_pPerformance->AllocPMsg( sizeof(DMUS_MIDI_PMSG),
+                       (DMUS_PMSG**)&pMidi )))
+               {
+                       ZeroMemory( pMidi, sizeof(DMUS_MIDI_PMSG) );
+                       pMidi->bStatus = 0xb0 | x;
+                       pMidi->bByte1 = 0x7b;                   //All notes off
+                       pMidi->bByte2 = 0x00;
+                       pMidi->dwType = DMUS_PMSGT_MIDI;
+                       pEvent = (DMUS_PMSG*)pMidi;
+                       pEvent->dwFlags = DMUS_PMSGF_REFTIME;
+                       m_pPerformance->SendPMsg( pEvent );
+               }
+       }
+}
+
+// Get registry search path
+//
+static char szDirectMusicMedia[] = "\\DMusic\\Media";
+
+static BOOL GetSearchPath(WCHAR wszPath[MAX_PATH])
+{
+       return FALSE;
+
+       HKEY    hkDirectX;
+       BOOL    bRet = FALSE;
+       char    szPath[MAX_PATH];
+       DWORD   cbPath;
+
+
+       // Get DirectX SDK search path from the registry
+       //
+       if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
+                                        "Software\\Microsoft\\DirectX",
+                                        0,                                                     // Reserved
+                                        KEY_READ,
+                                        &hkDirectX))
+    {
+               OutputDebugString( "Could not open registry\n" );
+               return FALSE;
+       }
+
+       cbPath = sizeof(szPath);
+       if (RegQueryValueEx(hkDirectX,
+                                               "DX6SDK Samples Path",
+                                               NULL,                                   // Reserved
+                                               NULL,                                   // Type: don't care
+                                               (LPBYTE)szPath,
+                                               &cbPath) == ERROR_SUCCESS)
+    {
+               if (cbPath + sizeof(szDirectMusicMedia) > MAX_PATH)
+               {
+                       return FALSE;
+               }
+
+               strcat(szPath, szDirectMusicMedia);
+
+               // DirectMusic requires the search path as a wide string
+               //
+               mbstowcs(wszPath, 
+                                szPath,
+                                MAX_PATH);
+               bRet = TRUE;
+       }
+
+       RegCloseKey(hkDirectX);
+       return bRet;
+}
+
+void CDMPlayer::SelectTemplateNum(WORD wTemplateNum){
+       if (wTemplateNum > NUM_TEMPLATES)
+               return;
+       m_wTemplateNum = wTemplateNum;
+}
+
+
+
diff --git a/Sound/dmplayer.h b/Sound/dmplayer.h
new file mode 100644 (file)
index 0000000..119e29a
--- /dev/null
@@ -0,0 +1,103 @@
+// dmplayer.h : header file
+//
+// Copyright (c) 1998 Microsoft Corporation. All rights reserved.
+/////////////////////////////////////////////////////////////////////////////
+#ifndef _DMPLAYER_H
+#define _DMPLAYER_H
+#include <windows.h>
+#include <objbase.h>
+//#include <initguid.h>
+#include <direct.h>
+#include <dmusicc.h>
+#include <dmusici.h>
+#include "events.h"
+#include "events.h"
+
+#define NUM_SCHEMES                    1
+#define NUM_TEMPLATES          5
+
+// The scheme structure stores all of the filename and motif names associated with
+// a musical scheme.
+struct SCHEME
+{
+       PWSTR FriendlySchemeName;                               //Human readable name for the menu
+       PWSTR StyleName;                                                //Filename
+       PWSTR DLSName;                                                  //Filename (blank if the style uses GM.DLS)
+       PWSTR ChordMapName;                                             //Filename
+       PWSTR TemplateNames[NUM_TEMPLATES];             //Filename
+       PWSTR MotifNames[DME_MAXEVENTNUM];              //Motif name contained in the style (referenced above)
+};
+
+#define MENU_FIELD_LENGTH      256
+#define ITEM_LENGTH                    128
+#define INVALID_PORT           0
+#define VALID_PORT                     1
+#define SELECTED_PORT          2
+#define NO_PORT                        3
+
+/////////////////////////////////////////////////////////////////////////////
+//  The DMPlayer class encapsulates all of the DirectMusic interface and objects.
+//  CMain calls DMPlayer to respond to incoming Shell events and user input
+//  from the popup menu.
+//
+
+class CDMPlayer
+{
+public:
+       CDMPlayer(HWND hWnd);
+       virtual ~CDMPlayer();
+       BOOL SelectNewScheme(WORD wSchemeNum);
+       BOOL SelectOutputPort(WORD wPortIndex);
+       BOOL GetSchemeName(WORD wSchemeNum, PWSTR pwzSchemeName, WORD wBufferLength);
+       WORD EnumOutputPort(WORD wPortIndex, PWSTR pwzPortName, WORD wBufferLength);
+       void Start();
+       void Stop();
+       BOOL IsPlaying();
+       BOOL IsInitialized(void){return m_bIsInitialized;};
+       void PlayMotif(WORD wMotif);
+       void PlaySegment(void);
+       void StopSegment(void);
+       void SelectTemplateNum(WORD wTemplateNum);
+       WORD GetTemplateNum(void){return m_wTemplateNum;}; 
+protected:
+       void ResetMidiStream();
+       void NullMediaPointers();
+       void ReleaseMediaPointers();
+       BOOL InitializeSynth();
+       BOOL LoadScheme(WORD wSchemeIndex);
+       BOOL LoadStyle(WCHAR* pwzFileName);
+       BOOL LoadDLS(WCHAR* pwzFileName);
+       BOOL LoadChordMap(WCHAR* pwzFileName);
+       BOOL LoadTemplate(DWORD dwIndex, WCHAR* pwzName);
+       BOOL ComposeSegment(DWORD dwIndex);
+
+       IDirectMusicLoader*                     m_pLoader;
+       IDirectMusicPerformance*        m_pPerformance;
+       IDirectMusicStyle*                      m_pStyle;
+       IDirectMusicSegment*            m_pMotifs[DME_MAXEVENTNUM];
+       IDirectMusicChordMap*       m_pChordMap;
+       IDirectMusicSegment*            m_pTemplates[NUM_TEMPLATES];
+       IDirectMusicSegment*            m_pPrimarySegments[NUM_TEMPLATES];
+                                                               // the primary segments correspond to the templates
+                                                               // on a 1:1 basis
+       IDirectMusicComposer*           m_pComposer;
+       IDirectMusic*                           m_pDirectMusic;
+       IDirectMusicPort*                       m_pPort;
+       IDirectMusicBand*                       m_pBand;
+
+       HWND m_hWnd;
+       BOOL m_bIsPlaying;
+       BOOL m_bIsInitialized;
+       MUSIC_TIME m_mtPreviousEventBeatNumber[DME_MAXEVENTRANGE];
+       WORD m_wTemplateNum;
+};
+
+#endif // _DMPLAYER_H
+
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
diff --git a/Sound/events.h b/Sound/events.h
new file mode 100644 (file)
index 0000000..77077d8
--- /dev/null
@@ -0,0 +1,28 @@
+// events.h : header file
+//
+// Copyright (c) 1998 Microsoft Corporation. All rights reserved.
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _EVENTS_H
+#define _EVENTS_H
+
+
+//Events played on Motifs
+#define DME_STARTBUTTON                0       
+#define DME_GAMEABORT          1
+#define DME_MAXEVENTNUM                2       //Max for array sizing
+
+//Special case events
+#define DME_MAXEVENTRANGE      2 //Array size for event filter
+
+#define NUM_PORTS                      10
+
+#endif // _EVENTS_H
+
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
diff --git a/Sound/scheme.cpp b/Sound/scheme.cpp
new file mode 100644 (file)
index 0000000..f796e22
--- /dev/null
@@ -0,0 +1,150 @@
+// Scheme.cpp : implementation file
+//
+// Copyright (c) 1998 Microsoft Corporation. All rights reserved.
+/////////////////////////////////////////////////////////////////////////////
+
+#include "scheme.h"
+
+
+
+CTemplateIndex::CTemplateIndex(HWND hWnd, WORD wTemplate)
+{
+       m_hWnd = hWnd;
+       m_wTemplate = wTemplate;
+       m_pNextIndex = NULL;
+}
+
+CTemplateIndex::~CTemplateIndex()
+{
+}
+
+CTemplateMapper::CTemplateMapper()
+{
+       m_pFirstIndex = NULL;
+}
+
+CTemplateMapper::~CTemplateMapper()
+{
+       DeleteAll();
+}
+
+WORD CTemplateMapper::GetTemplate(HWND hWnd)
+{
+       // Scan through list looking for hWnd
+       CTemplateIndex** ppTI = &m_pFirstIndex;
+       while (*ppTI != NULL)
+       {
+               if ( (*ppTI)->m_hWnd == hWnd )
+               {
+                       return (*ppTI)->m_wTemplate;
+               }
+               ppTI = &( (*ppTI)->m_pNextIndex );
+       }
+
+       //hWnd is new, generate optimal template number and create a new index entry
+       WORD wTemplate = PickNewTemplate();
+       CTemplateIndex* pTI = new CTemplateIndex(hWnd, wTemplate);
+       *ppTI = pTI;
+       return wTemplate;
+}
+
+WORD CTemplateMapper::PickNewTemplate()
+{
+       WORD wTemplHistogram[NUM_TEMPLATES];
+       for (WORD x = 0; x < NUM_TEMPLATES; x++)
+               wTemplHistogram[x] = 0;
+
+       //Fill the histogram array with the number of open apps using each template
+       CTemplateIndex* pTI = m_pFirstIndex;
+       while (pTI != NULL)
+       {
+               if ( pTI->m_wTemplate < NUM_TEMPLATES )
+                       wTemplHistogram[pTI->m_wTemplate]++;
+
+               pTI = pTI->m_pNextIndex;
+       }
+
+       //Determine the lowest level in the histogram
+       WORD wLowestReferenceCount = 0xFFFF;
+       for (x = 0; x < NUM_TEMPLATES; x++)
+       {
+               if ( wTemplHistogram[x] < wLowestReferenceCount)
+                       wLowestReferenceCount = wTemplHistogram[x];
+       }
+
+       //Fill an array with the template numbers having the lowest number of app references
+       WORD wNumTemplsWithLowestRefCount = 0;
+       WORD wOptimalTemplSelections[NUM_TEMPLATES];
+       for (x = 0; x < NUM_TEMPLATES; x++)
+       {
+               if ( wTemplHistogram[x] == wLowestReferenceCount)
+               {
+                       wOptimalTemplSelections[wNumTemplsWithLowestRefCount] = x;
+                       wNumTemplsWithLowestRefCount++;
+               }
+       }
+
+       //error conditions
+       if (wNumTemplsWithLowestRefCount == 0 || wNumTemplsWithLowestRefCount > NUM_TEMPLATES)
+               wNumTemplsWithLowestRefCount = NUM_TEMPLATES;
+
+       
+       //Randomly select between the templates with the least number of references
+       WORD wTemplateNum;
+       if (wNumTemplsWithLowestRefCount == 1)
+       {
+               //Choice is obvious
+               wTemplateNum = wOptimalTemplSelections[0];
+       }
+       else
+       {
+               SYSTEMTIME sysTime;
+               GetSystemTime( &sysTime);
+               srand ( sysTime.wMilliseconds);
+               WORD wTemplateIndex = rand() % wNumTemplsWithLowestRefCount ;
+               wTemplateNum = wOptimalTemplSelections[wTemplateIndex];
+       }
+       
+       //Disaster protection
+       if (wTemplateNum >= NUM_TEMPLATES)
+               wTemplateNum = 0;
+       
+       return wTemplateNum;
+}
+
+void CTemplateMapper::DeleteAll()
+{
+       CTemplateIndex* pTICurrent = m_pFirstIndex;
+       CTemplateIndex* pTINext = NULL;
+       while (pTICurrent != NULL)
+       {
+               pTINext = pTICurrent->m_pNextIndex;
+               delete pTICurrent;
+               pTICurrent = pTINext;
+       }
+}
+
+void CTemplateMapper::DeleteWin(HWND hWnd)
+{
+       return;
+       CTemplateIndex* pTIPrevious = NULL;
+       CTemplateIndex* pTICurrent = m_pFirstIndex;
+       CTemplateIndex* pTINext = NULL;
+       while (pTICurrent != NULL)
+       {
+               pTINext = pTICurrent->m_pNextIndex;
+               if (pTICurrent->m_hWnd == hWnd)
+               {
+                       if (pTIPrevious == NULL)
+                       {
+                               delete pTICurrent;
+                               m_pFirstIndex = pTINext;
+                       }
+                       else
+                       {
+                               delete pTICurrent;
+                               pTIPrevious->m_pNextIndex = pTINext;
+                       }
+               }
+       }
+}
diff --git a/Sound/scheme.h b/Sound/scheme.h
new file mode 100644 (file)
index 0000000..6c6de4c
--- /dev/null
@@ -0,0 +1,108 @@
+// scheme.h : header file
+//
+// Copyright (c) 1998 Microsoft Corporation. All rights reserved.
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _SCHEME_H
+#define _SCHEME_H
+
+
+
+static SCHEME Schemes[NUM_SCHEMES] = 
+{
+/*             {L"Euro Dance",
+               L"Mix.sty",
+               L"shell.dls",
+               L"mix.per",
+               {L"mix1.tpl", L"mix2.tpl", L"mix3.tpl", L"mix4.tpl",L"mix5.tpl"},
+               {
+               L"Closeapp",            //DME_WINDOWCLOSE       
+               L"Maxwindow",           //DME_MAXIMIZE          
+               L"Minwindow",           //DME_MINIMIZE          
+               L"Maxwindow",           //DME_RESTORE           
+               L"Scrollbar",           //DME_SCROLL                    
+               L"Movemenu" ,           //DME_WINDOWMOVE                
+               L"Movemenu",            //DME_WINDOWSIZE                
+               L"Movemenu",            //DME_MENUPOPUP         
+               L"Movemenu",            //DME_MENUSELECT                
+               L"Keyboard",            //DME_KEYRETURN         
+               L"Keyboard",            //DME_KEYBACKSPACE      
+               L"Keyboard",            //DME_KEYSPACE          
+               L"Keyboard",            //DME_KEYGENERIC
+               L"Startmenu",           //DME_STARTBUTTON
+               L"",                            //DME_MOUSELBDOWN
+               L"",                            //DME_MOUSELBUP
+               L"",                            //DME_MOUSELDBLCLK
+               L"",                            //DME_MOUSERBDOWN
+               L"",                            //DME_MOUSERBUP
+               L"",                            //DME_MOUSERDBLCLK
+               L"Openapp"                      //DME_APPOPEN
+               }
+       }
+       */
+       {L"Adult Contemporary",
+               L"Style1.sty",
+               L"",
+               L"ChordMap1.cdm",
+               {L"test1.tpl", L"test1.tpl", L"test1.tpl", L"test1.tpl",L"test1.tpl"},
+               {
+               L"gamestartbutton",             //DME_WINDOWCLOSE       
+               L"gameabort"                    //DME_MAXIMIZE          
+/*             L"win min",                     //DME_MINIMIZE          
+               L"win max",             //DME_RESTORE           
+               L"scroll",                      //DME_SCROLL                    
+               L"win min",             //DME_WINDOWMOVE                
+               L"win min",             //DME_WINDOWSIZE                
+               L"menu mvt",            //DME_MENUPOPUP         
+               L"menu mvt",            //DME_MENUSELECT                
+               L"scroll",                      //DME_KEYRETURN         
+               L"",                            //DME_KEYBACKSPACE      
+               L"",                            //DME_KEYSPACE          
+               L"",                            //DME_KEYGENERIC
+               L"start menu",          //DME_STARTBUTTON
+               L"",                            //DME_MOUSELBDOWN
+               L"",                            //DME_MOUSELBUP
+               L"",                            //DME_MOUSELDBLCLK
+               L"",                            //DME_MOUSERBDOWN
+               L"",                            //DME_MOUSERBUP
+               L"",                            //DME_MOUSERDBLCLK
+               L"app open"                     //DME_APPOPEN
+               */
+               }
+       }
+       /*      {L"New Age",
+               L"MinimalD.sty",
+               L"",
+               L"Minimal.per",
+               {L"Minimal1.tpl", L"Minimal2.tpl",L"Minimal3.tpl", L"Minimal4.tpl",L"Minimal5.tpl"},
+               {
+               L"OpenApp",                     //DME_WINDOWCLOSE       
+               L"CloseApp"                     //DME_WINDOWMOVE                
+
+               L"MaxWindow",           //DME_MAXIMIZE          
+               L"MinWindow",           //DME_MINIMIZE          
+               L"MaxWindow",           //DME_RESTORE           
+               L"MinWindow",           //DME_SCROLL                    
+               L"CloseApp",            //DME_WINDOWMOVE                
+               L"CloseApp",            //DME_WINDOWSIZE                
+               L"CloseApp",            //DME_MENUPOPUP         
+               L"CloseApp",            //DME_MENUSELECT                
+               L"Placeholder2",        //DME_KEYRETURN         
+               L"Placeholder1",        //DME_KEYBACKSPACE      
+               L"Placeholder1",        //DME_KEYSPACE          
+               L"Placeholder3",        //DME_KEYGENERIC
+               L"OpenApp",                     //DME_STARTBUTTON
+               L"",                            //DME_MOUSELBDOWN
+               L"",                            //DME_MOUSELBUP
+               L"",                            //DME_MOUSELDBLCLK
+               L"",                            //DME_MOUSERBDOWN
+               L"",                            //DME_MOUSERBUP
+               L"",                            //DME_MOUSERDBLCLK
+               L"OpenApp"                      //DME_APPOPEN
+               }
+       }
+*/
+};
+#endif
+/////////////////////////////////////////////////////////////////////////////
+
diff --git a/genx.exe b/genx.exe
new file mode 100644 (file)
index 0000000..00d2944
Binary files /dev/null and b/genx.exe differ
diff --git a/project/.picasa.ini b/project/.picasa.ini
new file mode 100644 (file)
index 0000000..cf0c569
--- /dev/null
@@ -0,0 +1,2 @@
+[Picasa]
+name=project
diff --git a/project/Author.DRW b/project/Author.DRW
new file mode 100644 (file)
index 0000000..9f43f60
Binary files /dev/null and b/project/Author.DRW differ
diff --git a/project/Author.bmp b/project/Author.bmp
new file mode 100644 (file)
index 0000000..5793d12
Binary files /dev/null and b/project/Author.bmp differ
diff --git a/project/BuildMethod.html b/project/BuildMethod.html
new file mode 100644 (file)
index 0000000..95e0dd4
--- /dev/null
@@ -0,0 +1,16 @@
+<h2>BCC55\82É\82æ\82é\81A\83r\83\8b\83h\95û\96@</h2>
+<p>\82±\82Ì\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82Í\81A
+<ul>
+<li><a href="http://www.borland.co.jp" >Borland C++ Compiler\81@5.5</a></li>
+<li>DirectX8SDK</li>
+<li><a href="http://www.geocities.com/foetsch/">Michael Fotsch\82³\82ñ\82Ì\83y\81[\83W</a>\82É\82 \82é\81A<a href="http://www.geocities.com/foetsch/borlibs/index.htm">BCC\97pDirectX8\83C\83\93\83|\81[\83g\83\89\83C\83u\83\89\83\8a</a></li>
+</ul>
+\82ð\8eg\97p\82µ\82Ä\83r\83\8b\83h\82³\82ê\82Ä\82¢\82Ü\82·\81B</p>
+<p>
+\83A\81[\83J\83C\83u\83t\83@\83C\83\8b\82Í\81A\95\81\92Ê\82É\89ð\93\80\82µ\82Ü\82·\82Æ\81A\88È\89º\82Ì\82æ\82¤\82È\8aK\91w\8d\\91¢\82É\82È\82Á\82Ä\82¢\82Ü\82·\81B<br/>
+<img src="images/folder.png"><br/>
+source\83f\83B\83\8c\83N\83g\83\8a\81i\96{\91Ì\81j\82¨\82æ\82Ñsource\sfglib\81i\83\89\83C\83u\83\89\83\8aDLL\81j\83f\83B\83\8c\83N\83g\83\8a\82É\81ABCC55\97p\82ÌMAKEFILE\82ª\93ü\82Á\82Ä\82¢\82Ü\82·\81B<br/>
+lib\83f\83B\83\8c\83N\83g\83\8a\82É\82Í\81A<a href="http://www.geocities.com/foetsch/">Michael Fotsch\82³\82ñ\82Ì\83y\81[\83W</a>\82É\82 \82é\81A<a href="http://www.geocities.com/foetsch/borlibs/index.htm">BCC\97pDirectX8\83C\83\93\83|\81[\83g\83\89\83C\83u\83\89\83\8a</a>\82Æ\81Asfglib.lib\83t\83@\83C\83\8b\82ª\93ü\82Á\82Ä\82¢\82Ü\82·\81B<br/>
+\95\81\92Ê\82ÉDX8SDK(c:\mssdk)\81ABCC(c:\borland)\82ª\83C\83\93\83X\83g\81[\83\8b\82³\82ê\82Ä\82¢\82ê\82Î\81AMS-DOS\83v\83\8d\83\93\83v\83g\82©\82ç\8ae\83f\83B\83\8c\83N\83g\83\8a\82É\88Ú\93®\82µ\81Amake\82Å\83r\83\8b\83h\82Å\82«\82é\82Í\82¸\82Å\82·\81B<br/>
+source\sfglib\82Ì\95û\82ð\90æ\82É\83r\83\8b\83h\82µ\82Ä\82­\82¾\82³\82¢\81B<br/>
+</p>
diff --git a/project/CVS/Entries b/project/CVS/Entries
new file mode 100644 (file)
index 0000000..52c6f8a
--- /dev/null
@@ -0,0 +1,41 @@
+/Author.DRW/1.1.1.1/Fri May 11 10:14:02 2001/-kb/
+/Author.bmp/1.1.1.1/Fri May 11 10:14:02 2001/-kb/
+/ENE_XG.MID/1.1.1.1/Fri May 11 10:14:02 2001/-kb/
+/FloppyCopy.bat/1.1.1.1/Fri May 11 10:14:04 2001//
+/FloppyRestore.bat/1.1.1.1/Fri May 11 10:14:02 2001//
+/Font1.bmp/1.1.1.1/Fri May 11 10:14:04 2001/-kb/
+/Font2.bmp/1.1.1.1/Fri May 11 10:14:04 2001/-kb/
+/HomePageCopy.bat/1.1.1.1/Fri May 11 10:14:02 2001//
+/LFNDOS.TXT/1.1.1.1/Fri May 11 10:14:04 2001//
+/Style1.sty/1.1.1.1/Fri May 11 10:14:02 2001/-kb/
+/WIN32B55.MAK/1.1.1.1/Fri May 11 10:14:04 2001//
+/blank.bmp/1.1.1.1/Fri May 11 10:14:04 2001/-kb/
+/chrfile.dat/1.1.1.1/Fri May 11 10:14:04 2001//
+/debug.bat/1.1.1.1/Fri May 11 10:14:02 2001//
+/episode.dat/1.1.1.1/Fri May 11 10:14:04 2001//
+/fdcopy.bat/1.1.1.1/Fri May 11 10:14:02 2001//
+/flip.lst/1.1.1.1/Fri May 11 10:14:02 2001//
+/font.dat/1.1.1.1/Fri May 11 10:14:04 2001//
+/genx.mak/1.1.1.1/Fri May 11 10:14:02 2001//
+/highscore.dat/1.1.1.1/Fri May 11 10:14:04 2001//
+/icon1.ico/1.1.1.1/Fri May 11 10:14:02 2001/-kb/
+/make.log/1.1.1.1/Fri May 11 10:14:02 2001//
+/make.txt/1.1.1.1/Fri May 11 10:14:02 2001//
+/sf1.dat/1.1.1.1/Fri May 11 10:14:04 2001//
+/test.X/1.1.1.1/Fri May 11 10:14:04 2001//
+/test.map/1.1.1.1/Fri May 11 10:14:02 2001//
+/test2.dat/1.1.1.1/Fri May 11 10:14:04 2001//
+/test1.dis/1.2/Tue May 29 01:13:32 2001//
+/resource.h/1.2/Tue May 29 09:27:52 2001//
+/genx.rc/1.1.1.1/Tue May 29 09:27:52 2001//
+/sourcefilelist.wsf/1.2/Fri Jun 22 20:28:54 2001//
+/test.dis/1.8/Wed Jun 13 02:20:06 2001//
+/err.txt/1.3/Fri Jul 06 21:43:50 2001//
+D/sfglib////
+D/s2001////
+/BuildMethod.html/1.1/Sun Oct 28 01:39:20 2001//
+/MAKEFILE/1.8/Sun Oct 28 21:45:04 2001//
+/WinMain.cpp/1.7/Sun Oct 28 21:45:06 2001//
+/buildcopy.bat/1.1/Sat Oct 27 23:47:24 2001//
+/game.dat/1.3/Sat Jul 21 22:54:28 2001//
+/genx.plg/1.13/Sun Oct 28 14:10:42 2001//
diff --git a/project/CVS/Entries.Log b/project/CVS/Entries.Log
new file mode 100644 (file)
index 0000000..74f0a02
--- /dev/null
@@ -0,0 +1,2 @@
+A D/s2001editor////
+A D/s2001editor////
diff --git a/project/CVS/Repository b/project/CVS/Repository
new file mode 100644 (file)
index 0000000..5191b60
--- /dev/null
@@ -0,0 +1 @@
+project
diff --git a/project/CVS/Root b/project/CVS/Root
new file mode 100644 (file)
index 0000000..df6650f
--- /dev/null
@@ -0,0 +1 @@
+:local:c:\home
diff --git a/project/ChordMap1.cdm b/project/ChordMap1.cdm
new file mode 100644 (file)
index 0000000..baffab0
Binary files /dev/null and b/project/ChordMap1.cdm differ
diff --git a/project/EA01_h.txt b/project/EA01_h.txt
new file mode 100644 (file)
index 0000000..bf1d129
--- /dev/null
@@ -0,0 +1,7 @@
+\r#if !defined(AFX_EA01_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_)\r#define AFX_EA01_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_\r\r#if _MSC_VER > 1000\r#pragma once\r#endif 
+\r#include "AbstractEnemy.h"\rnamespace sf {\r    namespace application {\r                namespace enemy {\r\rclass EA01 : public AbstractEnemy\r{\rpublic:\r 
+       EA01();\r        virtual ~EA01();\r       
+       void initialize();\r     
+       void move(void);\r       void hit(Character * const pDest);\r     void allBomb(void);\r    
+       static void load(void);\r        static void unload(void);\r      static Character * const create(float x,float y ,float z,sf::application::scene::Game * const pGame,int index);\r        
+       sf::application::hit::Interface * const hitObj(void){return &mHitRect;};\rprivate:\r      enum State {\r           MOVE,\r          SHOOT,\r         DEAD\r   } mState;\r\r     void die(void);\r\r       int mDirCount;\r float mDirSpeed;\r       sf::application::hit::HitRect mHitRect;\r        sf::system::console::ObjRectangle mObj;\r        sf::system::console::ObjRectangle mObjFoot;\r\r   static sf::system::console::sprite::PSprite mspSprite[2];\r      static const sf::system::console::sprite::Info msSpriteInfo[2];\r\r       static const int SCORE; \r       \r       bool mbHit;\r    int mShootCount;\r       int mShootTimer;\r       float   mDeltaTime;\r    float   mDeltaTimeRev;\r float mSpeed;\r  float mDirBackup;\r      int mAnimTimer;\r        int mAnimSpeed;\r\r};\r            }\r      }\r}\r\r#endif 
diff --git a/project/ENE_XG.MID b/project/ENE_XG.MID
new file mode 100644 (file)
index 0000000..b7fb7f9
Binary files /dev/null and b/project/ENE_XG.MID differ
diff --git a/project/FloppyCopy.PIF b/project/FloppyCopy.PIF
new file mode 100644 (file)
index 0000000..efc82e7
Binary files /dev/null and b/project/FloppyCopy.PIF differ
diff --git a/project/FloppyCopy.bat b/project/FloppyCopy.bat
new file mode 100644 (file)
index 0000000..a336b66
--- /dev/null
@@ -0,0 +1 @@
+fdcopy.bat < fdcopy.in
diff --git a/project/FloppyRestore.PIF b/project/FloppyRestore.PIF
new file mode 100644 (file)
index 0000000..214ae6b
Binary files /dev/null and b/project/FloppyRestore.PIF differ
diff --git a/project/FloppyRestore.bat b/project/FloppyRestore.bat
new file mode 100644 (file)
index 0000000..429b17e
--- /dev/null
@@ -0,0 +1 @@
+xcopy a:\*.* "c:\my documents\genx\project" /D
diff --git a/project/Font1.bmp b/project/Font1.bmp
new file mode 100644 (file)
index 0000000..dd65d8f
Binary files /dev/null and b/project/Font1.bmp differ
diff --git a/project/Font2.bmp b/project/Font2.bmp
new file mode 100644 (file)
index 0000000..14e2a07
Binary files /dev/null and b/project/Font2.bmp differ
diff --git a/project/GENX.TR2 b/project/GENX.TR2
new file mode 100644 (file)
index 0000000..781d508
--- /dev/null
@@ -0,0 +1 @@
+Turbo Debugger restart file
\ No newline at end of file
diff --git a/project/HomePageCopy.PIF b/project/HomePageCopy.PIF
new file mode 100644 (file)
index 0000000..9616253
Binary files /dev/null and b/project/HomePageCopy.PIF differ
diff --git a/project/HomePageCopy.bat b/project/HomePageCopy.bat
new file mode 100644 (file)
index 0000000..61f3f2d
--- /dev/null
@@ -0,0 +1,6 @@
+xcopy "c:\my documents\genx\project\*.cpp" c:\inetpub\wwwroot\source\game /D
+xcopy "c:\my documents\genx\project\*.h" c:\inetpub\wwwroot\source\game /D
+xcopy "c:\my documents\genx\project\*.rc" c:\inetpub\wwwroot\source\game /D
+xcopy "c:\my documents\genx\project\MAKEFILE" c:\inetpub\wwwroot\source\game /D
+xcopy "c:\my documents\genx\project\*.ico" c:\inetpub\wwwroot\source\game /D
+xcopy "c:\my documents\genx\project\*.bmp" c:\inetpub\wwwroot\source\game /D
diff --git a/project/InputImpl.html b/project/InputImpl.html
new file mode 100644 (file)
index 0000000..7f4ef1c
--- /dev/null
@@ -0,0 +1,689 @@
+<html><head>
+<title>InputImpl.cpp</title>
+</head>
+<body><pre>
+<p>InputImpl.cpp</p>
+<font color="green">//@STATE=\8dì\90¬\92\86</font>
+<font color="green">//@DESCRIPTION ---------------------------------------------------------------</font>
+<font color="green">//  InputImpl \92\8a\8fÛ\83N\83\89\83X\82Ì\8bï\8fÛ\81i\8eÀ\91\95\81j\83N\83\89\83X</font>
+<font color="green">//  \83T\83\93\83v\83\8b\82©\82ç\83p\83N\83\8a\82Ü\82­\82Á\82Ä\82Ü\82·\81B    </font>
+<font color="green">//  \97\9a\97ð:</font>
+<font color="green">// $Log: InputImpl.cpp,v $</font>
+<font color="green">// Revision 1.5  2001/07/09 20:30:08  fujiwara</font>
+<font color="green">// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý</font>
+<font color="green">//</font>
+<font color="green">// Revision 1.4  2001/07/01 21:30:34  fujiwara</font>
+<font color="green">// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ</font>
+<font color="green">//</font>
+<font color="green">// Revision 1.3  2001/07/01 01:03:44  fujiwara</font>
+<font color="green">// const \82Ì\8c©\92¼\82µ</font>
+<font color="green">// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß</font>
+<font color="green">//</font>
+<font color="green">// Revision 1.2  2001/05/29 01:12:45  fujiwara</font>
+<font color="green">// \8eG\8b\9b\83L\83\83\83\89(\94ò\8ds\95¨\81j\82Ì\8dì\90¬\81B\94z\92u\83G\83f\83B\83^\82Ì\83o\83O\8fC\90³</font>
+<font color="green">//</font>
+<font color="green">// Revision 1.1  2001/05/12 01:07:33  fujiwara</font>
+<font color="green">// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á</font>
+<font color="green">//</font>
+<font color="green">//  2001/01/29 \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p\83\89\83C\83u\83\89\83\8a\82Ì\92Ç\89Á </font>
+<font color="green">//@DESCRIPTION_END -----------------------------------------------------------</font>
+<font color="green">//@AUTHOR=S.F.</font>
+<font color="green">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</font>
+<font color="green">///////////////////////////////////////////////////////////////////////////////</font>
+<font color="blue">#pragma</font> warning( disable : 4786 )   <font color="green">//STL\82Ì\8cx\8d\90\8aO\82µ</font>
+
+<font color="green">// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p</font>
+<font color="blue">#include</font> "sfdebug.h"
+
+<font color="blue">#define</font> WIN32_LEAN_AND_MEAN
+<font color="blue">#define</font> _WIN32_WINNT  0x0400
+<font color="blue">#include</font> "math.h"
+<font color="blue">#include</font> &lt;list&gt;
+<font color="blue">#include</font> &lt;queue&gt;
+<font color="blue">#include</font> &lt;memory&gt;
+<font color="blue">#include</font> &lt;map&gt;
+
+<font color="blue">#include</font> "windows.h"
+<font color="blue">#include</font> "windowsx.h"
+<font color="blue">#include</font> "d3d8.h"
+<font color="blue">#include</font> "d3dx8.h"
+<font color="blue">#include</font> "dmusici.h"
+<font color="blue">#include</font> "dinput.h"
+<font color="blue">#include</font> "dxerr8sf.h"
+
+<font color="green">// PROJECT INCLUDES</font>
+<font color="green">//</font>
+
+<font color="blue">#include</font> "exception.h"
+<font color="blue">#include</font> "resource.h"
+<font color="blue">#include</font> "<font color="DarkRed">System</font>.h"
+<font color="blue">#include</font> "Console.h"
+<font color="blue">#include</font> "Obj.h"
+<font color="blue">#include</font> "singleton.h"
+<font color="blue">#include</font> "AbstractSprite.h"
+<font color="blue">#include</font> "ConsoleImpl.h"    
+<font color="blue">#include</font> "<font color="Brown">SoundImpl</font>.h"
+
+<font color="blue">#ifdef</font> _DEBUG
+<font color="blue">#define</font> new DEBUG_NEW
+<font color="blue">#endif</font>
+
+<font color="blue">#include</font> "<font color="Brown">InputImpl</font>.h"
+<font color="blue">#include</font> "<font color="DarkRed">Scene</font>.h"
+<font color="blue">#include</font> "MainApp.h"
+<font color="blue">#include</font> "<font color="Brown">SystemImpl</font>.h"
+
+<font color="green">//////////////////////////////////////////////////////////////////////</font>
+<font color="green">// \8d\\92z/\8fÁ\96Å</font>
+<font color="green">//////////////////////////////////////////////////////////////////////</font>
+
+<font color="blue">using</font> <font color="blue">namespace</font> <font color="darkblue">sf</font>::<font color="darkblue">system</font>::<font color="darkblue">input</font>;
+
+<font color="green">// \83f\83t\83H\83\8b\83g\83R\83\93\83X\83g\83\89\83N\83^ ---------------------------------------------------</font>
+<font color="Brown">InputImpl</font>::InputImpl()
+{
+
+}
+
+<font color="green">// \83R\83\93\83X\83g\83\89\83N\83^ -------------------------------------------------------------</font>
+<font color="Brown">InputImpl</font>::InputImpl(HWND hwnd)
+{
+    mHWND = hwnd;
+<font color="green">//  initialize();       </font>
+}
+
+<font color="green">// \83f\83X\83g\83\89\83N\83^ ---------------------------------------------------------------</font>
+<font color="Brown">InputImpl</font>::~InputImpl()
+{
+    uninitialize();
+}<font color="green">// ~InputImpl()</font>
+
+<font color="green">// \8f\89\8aú\89» ---------------------------------------------------------------------</font>
+<font color="blue">void</font> <font color="Brown">InputImpl</font>::initialize(void)
+{
+
+    mpDI = NULL;
+    mpJoystick = NULL;
+    mpKeyboard = NULL;
+    mbEnabled = false;
+    
+    mbLeft = false;
+    mbRight = false;
+    mbUp = false;
+    mbDown = false;
+
+    mbButtonA = false;
+    mbButtonB = false;
+    mbButtonC = false;
+    mbButtonD = false;
+
+    mbStart = false;
+    mbExit = false;
+
+    mbBeforeLeft = false;
+    mbBeforeRight = false;
+    mbBeforeUp = false;
+    mbBeforeDown = false;
+
+    mbBeforeButtonA = false;
+    mbBeforeButtonB = false;
+    mbBeforeButtonC = false;
+    mbBeforeButtonD = false;
+
+    mbBeforeStart = false;
+    mbBeforeExit = false;
+<font color="green">//  uninitialize();</font>
+    mbEnabled = false;
+    mbMouseCursor = false;
+
+    HRESULT hr;
+
+
+    <font color="green">// DirectInput \83I\83u\83W\83F\83N\83g\82Ì\90\90¬</font>
+    <font color="blue">if</font>( FAILED( hr = DirectInput8Create( GetModuleHandle(NULL), DIRECTINPUT_VERSION, 
+                                         IID_IDirectInput8, (VOID**)&amp;mpDI, NULL ) ) )
+    {   <font color="blue">std</font>::string tmp("DirectInput8Create() Error : ");
+        tmp += DXGetErrorString8(hr);
+        tmp += " ";
+        throw FatalErrorException(tmp,__FILE__,__LINE__);
+    }
+
+    <font color="green">// Joystick\82Ì\8f\89\8aú\89» </font>
+    <font color="blue">try</font> {
+        initJoystick();
+    } <font color="blue">catch</font> (RecoverbleErrorException e)
+    {
+        <font color="blue">if</font>(mpJoystick != NULL){
+            mpJoystick-&gt;Release();
+            mpJoystick = NULL;
+        }
+    } <font color="blue">catch</font> (...){
+        throw;
+    }
+
+
+    <font color="green">// KeyBoard\82Ì\8f\89\8aú\89»</font>
+
+    <font color="blue">try</font> {
+        initKeyboard();
+    } <font color="blue">catch</font> (RecoverbleErrorException e) {
+        <font color="blue">if</font>(mpKeyboard != NULL)
+        {
+            mpKeyboard-&gt;Release();
+            mpKeyboard = NULL;
+        }
+
+    } <font color="blue">catch</font> (...){
+        throw;
+    }
+
+    <font color="green">// \93ü\97Í\83f\83o\83C\83X\82ª\91\8dÝ\82µ\82È\82¢\8fê\8d\87\82Í\81A\83G\83\89\81[\82Å\8fI\97¹\82·\82é\81B</font>
+
+    <font color="blue">if</font>(NULL == mpJoystick &amp;& NULL == mpKeyboard)
+    {
+        throw FatalErrorException("<font color="Brown">InputImpl</font> Device Not Found\r\n",__FILE__,__LINE__);
+    };
+
+    addWindowMessageMap();
+
+    mbEnabled = true;
+}<font color="green">// intialize()</font>
+
+<font color="green">// \8fI\97¹ -----------------------------------------------------------------------</font>
+<font color="blue">void</font> <font color="Brown">InputImpl</font>::uninitialize(void)
+{
+    KeyboardListenerList::iterator it = mKeyboardListenerList.begin();
+    
+    <font color="blue">while</font>(it != mKeyboardListenerList.end())
+    {
+        <font color="blue">if</font>(*it != NULL){
+            (*it)-&gt;keyboardTalkerIsDeleted();
+<font color="green">//          ++it;</font>
+        }
+        it = mKeyboardListenerList.erase(it);
+    }
+
+    it = mKeyboardListenerQ.begin();
+    
+    <font color="blue">while</font>(it != mKeyboardListenerQ.end())
+    {
+        <font color="blue">if</font>(*it != NULL){
+            (*it)-&gt;keyboardTalkerIsDeleted();
+
+        }
+        it = mKeyboardListenerQ.erase(it);
+    }
+
+    MouseListenerList::iterator itm = mMouseListenerList.begin();
+
+    <font color="blue">while</font>(itm != mMouseListenerList.end())
+    {
+        <font color="blue">if</font>(*itm != NULL){
+            (*itm)-&gt;mouseTalkerIsDeleted();
+<font color="green">//          ++itm;</font>
+        }
+        itm = mMouseListenerList.erase(itm);
+    }
+
+    itm = mMouseListenerQ.begin();
+
+    <font color="blue">while</font>(itm != mMouseListenerQ.end())
+    {
+        <font color="blue">if</font>(*itm != NULL){
+            (*itm)-&gt;mouseTalkerIsDeleted();
+<font color="green">//          ++itm;</font>
+        }
+        itm = mMouseListenerQ.erase(itm);
+    }
+
+    <font color="blue">if</font>(mpJoystick){
+        mpJoystick-&gt;Release();
+        mpJoystick = NULL;
+    }
+
+    <font color="blue">if</font>(mpKeyboard){
+        mpKeyboard-&gt;Release();
+        mpKeyboard = NULL;
+    }
+    
+    <font color="blue">if</font>(mpDI){
+        mpDI-&gt;Release();
+        mpDI = NULL;
+    }
+
+}<font color="green">// uninitialize()</font>
+
+<font color="green">// \83W\83\87\83C\83X\83e\83B\83b\83N\83f\83o\83C\83X\97ñ\8b\93\97p\83R\81[\83\8b\83o\83b\83N ---------------------------------</font>
+BOOL <font color="Brown">InputImpl</font>::enumJoysticksCallback(<font color="blue">const</font> DIDEVICEINSTANCE *pdidInstance)
+{
+    HRESULT hr;
+
+    <font color="green">// Obtain an interface to the enumerated joystick.</font>
+    hr = mpDI-&gt;CreateDevice( pdidInstance->guidInstance, &amp;mpJoystick, NULL );
+
+    <font color="green">// If it failed, then we can't use this joystick. (Maybe the user unplugged</font>
+    <font color="green">// it while we were in the middle of enumerating it.)</font>
+    <font color="blue">if</font>( FAILED(hr) ) 
+        <font color="blue">return</font> DIENUM_CONTINUE;
+
+    <font color="green">// Stop enumeration. Note: we're just taking the first joystick we get. You</font>
+    <font color="green">// could store all the enumerated joysticks and let the user pick.</font>
+    <font color="blue">return</font> DIENUM_STOP;
+}
+
+
+<font color="green">// \83W\83\87\83C\83X\83e\83B\83b\83N\82Ì\8f\89\8aú\89» ---------------------------------------------------</font>
+<font color="blue">void</font> <font color="Brown">InputImpl</font>::initJoystick(void)
+{
+
+    HRESULT hr = E_FAIL;
+
+    <font color="green">// DirectInput\83f\83o\83C\83X\82Ì\97ñ\8b\93</font>
+    <font color="blue">if</font>( FAILED(hr = mpDI-&gt;EnumDevices( DI8DEVCLASS_GAMECTRL, 
+                                         enumJoysticksCallback,
+                                         (VOID*)this, DIEDFL_ATTACHEDONLY ) ) )
+    {   
+        throw RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+    }
+
+    <font color="green">// Make sure we got a joystick</font>
+    <font color="blue">if</font>( NULL == mpJoystick )
+    {   throw RecoverbleErrorException(" NULL == mpJoystick",__FILE__,__LINE__);}
+
+    <font color="blue">if</font>( FAILED(mpJoystick-&gt;SetDataFormat( &amp;c_dfDIJoystick2 ) ) )
+    {   
+        throw RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+    }
+
+    <font color="green">// Set the cooperative level to let DInputImpl know how this device should</font>
+    <font color="green">// interact with the system and with other DInputImpl applications.</font>
+    <font color="blue">if</font>( FAILED(mpJoystick-&gt;SetCooperativeLevel( mHWND, DISCL_EXCLUSIVE | 
+                                                             DISCL_FOREGROUND ) ) )
+    {   
+        throw RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);}
+
+    <font color="green">// Determine how many axis the joystick has (so we don't error out setting</font>
+    <font color="green">// properties for unavailable axis)</font>
+    mDIJoystickDevCaps.dwSize = sizeof(DIDEVCAPS);
+    <font color="blue">if</font> ( FAILED(mpJoystick-&gt;GetCapabilities(&amp;mDIJoystickDevCaps) ) )
+    {   
+        throw RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+    
+    }
+
+    
+    <font color="green">// Enumerate the axes of the joyctick and set the range of each axis. Note:</font>
+    <font color="green">// we could just use the defaults, but we're just trying to show an example</font>
+    <font color="green">// of enumerating device objects (axes, buttons, etc.).</font>
+    <font color="blue">if</font> ( FAILED(mpJoystick-&gt;EnumObjects( enumAxesCallback, 
+                                                (VOID*)this, DIDFT_AXIS ) ) )
+    {   
+        throw RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+    
+    }
+}<font color="green">// InitJoystick()</font>
+
+<font color="green">// \83W\83\87\83C\83X\83e\83B\83b\83N\82Ì\90Ý\92è\83R\81[\83\8b\83o\83b\83N\81@-------------------------------------------------</font>
+BOOL <font color="Brown">InputImpl</font>::enumAxesCallback( <font color="blue">const</font> DIDEVICEOBJECTINSTANCE* pdidoi)
+{
+
+    DIPROPRANGE diprg; 
+    diprg.diph.dwSize       = sizeof(DIPROPRANGE); 
+    diprg.diph.dwHeaderSize = sizeof(DIPROPHEADER); 
+    diprg.diph.dwHow        = DIPH_BYID; 
+    diprg.diph.dwObj        = pdidoi-&gt;dwType; <font color="green">// Specify the enumerated axis</font>
+    diprg.lMin              = -1000; 
+    diprg.lMax              = +1000; 
+    
+    <font color="green">// Set the range for the axis</font>
+    <font color="blue">if</font>( FAILED( mpJoystick-&gt;SetProperty( DIPROP_RANGE, &amp;diprg.diph ) ) )
+    {
+        <font color="blue">return</font> DIENUM_STOP;
+    }
+
+    <font color="blue">return</font> DIENUM_CONTINUE;
+}<font color="green">// enumAxesCallback </font>
+
+<font color="green">// \83L\81[\83{\81[\83h\83f\83o\83C\83X\82Ì\8f\89\8aú\89» -------------------------------------------------</font>
+<font color="blue">void</font> <font color="Brown">InputImpl</font>::initKeyboard(void)
+{
+    HRESULT hr = E_FAIL;
+
+    <font color="green">// \83L\81[\83{\81[\83h\83f\83o\83C\83X\82Ì\8dì\90¬</font>
+    <font color="blue">if</font>( FAILED( hr = mpDI-&gt;CreateDevice( GUID_SysKeyboard, &amp;mpKeyboard, NULL ) ) )
+    {   <font color="green">//system::Factory::getInstance()-&gt;outputError(DXGetErrorString8(hr));</font>
+        throw RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+    }
+    
+    <font color="blue">if</font>( FAILED( hr = mpKeyboard-&gt;SetDataFormat( &amp;c_dfDIKeyboard ) ) )
+    {
+        <font color="green">//system::Factory::getInstance()-&gt;outputError(DXGetErrorString8(hr));</font>
+        throw RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+    }
+    
+    <font color="green">// \8b¦\92²\83\8c\83x\83\8b\82Ì\90Ý\92è </font>
+    <font color="blue">if</font>(FAILED(mpKeyboard-&gt;SetCooperativeLevel( mHWND, DISCL_NONEXCLUSIVE | DISCL_FOREGROUND )))
+    {
+        throw RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+    }
+
+    <font color="green">// Acquire the newly created device</font>
+    mpKeyboard-&gt;Acquire();
+}<font color="green">// initKeyboard</font>
+
+<font color="green">// \83L\81[\83{\81[\83h\81E\83W\83\87\83C\83X\83e\83B\83b\83N\82Ì\8c»\8dÝ\82Ì\8fó\91Ô\82ð\8eæ\93¾ -----------------------------</font>
+<font color="blue">void</font> <font color="Brown">InputImpl</font>::update(void)
+{
+    HRESULT hr = E_FAIL;
+    <font color="blue">bool</font> b_joystick = false;
+    <font color="blue">bool</font> b_keyboard = false;
+    
+    <font color="green">// \83W\83\87\83C\83X\83e\83B\83b\83N\82Ì\8c»\8dÝ\8fó\91Ô\82ð\8eæ\93¾ //</font>
+    <font color="blue">if</font>(mpJoystick){
+        mpJoystick-&gt;Poll();
+        hr = mpJoystick-&gt;GetDeviceState(sizeof(DIJOYSTATE2),(LPVOID)&amp;mDIJoyState);
+        <font color="blue">if</font>(FAILED(hr)){
+            mpJoystick-&gt;Acquire();
+            <font color="blue">while</font>( hr == DIERR_INPUTLOST ) 
+                hr = mpJoystick-&gt;Acquire();
+        } <font color="blue">else</font> {
+            b_joystick = true;
+        }
+        
+
+    } 
+
+    <font color="green">// \83L\81[\83{\81[\83h\82Ì\8c»\8dÝ\8fó\91Ô\82ð\8eæ\93¾ //</font>
+    <font color="blue">if</font>(mpKeyboard){
+<font color="green">//      ZeroMemory( &amp;mDIKeys, sizeof(mDIKeys) );</font>
+        hr = mpKeyboard-&gt;GetDeviceState(sizeof(mDIKeys),(LPVOID)&amp;mDIKeys);
+        <font color="blue">if</font>(FAILED(hr)){
+<font color="blue">#ifdef</font> _DEBUG
+            OutputDebugString(DXGetErrorString8(hr));
+<font color="blue">#endif</font>
+            mpKeyboard-&gt;Acquire();
+            <font color="blue">while</font>( hr == DIERR_INPUTLOST ) 
+                hr = mpKeyboard-&gt;Acquire();
+        } <font color="blue">else</font> {
+            b_keyboard = true;
+        }
+    }
+
+    <font color="green">//</font>
+    mbBeforeLeft = mbLeft;
+    mbBeforeRight = mbRight;
+    mbBeforeUp = mbUp;
+    mbBeforeDown = mbDown;
+
+    mbBeforeButtonA = mbButtonA;
+    mbBeforeButtonB = mbButtonB;
+    mbBeforeButtonC = mbButtonC;
+    mbBeforeButtonD = mbButtonD;
+
+    mbBeforeStart = mbStart;
+    mbBeforeExit = mbExit;
+
+    mbLeft = mbRight = mbUp = mbDown = false;
+    mbButtonA = mbButtonB = mbButtonC = mbButtonD = false;
+    mbStart = mbExit = false;
+    
+
+    <font color="blue">if</font>(b_joystick){
+        
+        <font color="blue">if</font>(mDIJoyState.lX &gt; 300){
+            mbRight = true;
+        } <font color="blue">else</font> {
+            <font color="blue">if</font>(mDIJoyState.lX &lt; -300)
+            {
+
+                mbLeft = true;
+            }
+        }
+            
+        <font color="blue">if</font>(mDIJoyState.lY &gt; 300)
+            mbDown = true;
+        <font color="blue">else</font> 
+            <font color="blue">if</font>(mDIJoyState.lY &lt; -300)
+                mbUp = true;
+
+        <font color="blue">if</font>(mDIJoyState.rgbButtons[0])
+        {
+            mbButtonA = true;
+            mbStart = true;
+        }
+
+        <font color="blue">if</font>(mDIJoyState.rgbButtons[1])
+            mbButtonB = true;
+        
+        <font color="blue">if</font>(mDIJoyState.rgbButtons[2])
+            mbButtonC =  true;
+        
+        <font color="blue">if</font>(mDIJoyState.rgbButtons[3])
+            mbButtonD =  true;
+    }
+
+    <font color="blue">if</font>(b_keyboard){
+        
+        <font color="blue">if</font>(mDIKeys[DIK_LEFT] &amp; 0x80)
+            mbLeft = true;
+
+        <font color="blue">if</font>(mDIKeys[DIK_RIGHT] &amp; 0x80)
+            mbRight = true;
+
+        <font color="blue">if</font>(mDIKeys[DIK_UP] &amp; 0x80)
+            mbUp = true;
+
+        <font color="blue">if</font>(mDIKeys[DIK_DOWN] &amp; 0x80)
+            mbDown =  true;
+
+        <font color="blue">if</font>(mDIKeys[DIK_Z] &amp; 0x80)
+            mbButtonA = true;
+        
+        <font color="blue">if</font>(mDIKeys[DIK_X] &amp; 0x80)
+            mbButtonB = true;
+        
+        <font color="blue">if</font>(mDIKeys[DIK_C] &amp; 0x80)
+            mbButtonC = true;
+        
+        <font color="blue">if</font>(mDIKeys[DIK_V] &amp; 0x80)
+            mbButtonD = true;
+        
+        <font color="blue">if</font>(mDIKeys[DIK_SPACE] &amp; 0x80)
+            mbStart = true;
+
+        <font color="blue">if</font>(mDIKeys[DIK_ESCAPE] &amp; 0x80)
+            mbExit = true;
+
+    }
+
+    <font color="green">// \83C\83x\83\93\83g\83\8a\83X\83i\81[Q\81¨\83C\83x\83\93\83g\83\8a\83X\83i\81[\83\8a\83X\83g\82Ö //</font>
+    MouseListenerList::iterator it = mMouseListenerQ.begin();
+    
+    <font color="blue">while</font>(it != mMouseListenerQ.end())
+    {
+        <font color="blue">if</font>(*it != NULL){
+            mMouseListenerList.push_back(*it);
+        }
+        it = mMouseListenerQ.erase(it);
+
+    }
+
+    KeyboardListenerList::iterator itk = mKeyboardListenerQ.begin();
+
+    <font color="blue">while</font>(itk != mKeyboardListenerQ.end())
+    {
+        <font color="blue">if</font>(*itk != NULL){
+            mKeyboardListenerList.push_back(*itk);
+        }
+        itk = mKeyboardListenerQ.erase(itk);
+    }
+}<font color="green">// update() </font>
+
+LRESULT     <font color="Brown">InputImpl</font>::onSetCursor(<font color="blue">const</font> HWND hwnd, <font color="blue">const</font> WPARAM wParam, <font color="blue">const</font> LPARAM lParam)
+{
+    <font color="blue">if</font>(<font color="darkblue">system</font>::Factory::getInstance()-&gt;isActive() &amp;& !mouseCursorVisibility())
+    {
+        SetCursor(NULL);<font color="green">//\83}\83E\83X\83J\81[\83\\83\8b\82ð\8fÁ\82·\81B</font>
+        <font color="blue">return</font> 0;
+    }
+    <font color="blue">return</font> DefWindowProc (hwnd, WM_SETCURSOR,wParam, lParam);
+}<font color="green">// onSetCursor()</font>
+
+<font color="green">// \83}\83E\83X\82Ì\8d\83{\83^\83\93\82ª\89\9f\82³\82ê\82½ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|</font>
+LRESULT     <font color="Brown">InputImpl</font>::onLButtonDown(<font color="blue">const</font> HWND hwnd, <font color="blue">const</font> WPARAM wParam, <font color="blue">const</font> LPARAM lParam)
+{
+    <font color="blue">return</font> callMouseListenerMethod(hwnd,wParam,lParam,<font color="darkblue">input</font>::<font color="darkblue">mouse</font>::<font color="DarkRed">Listener</font>::leftButtonDown);
+}<font color="green">// onLButtonDown()</font>
+
+<font color="green">// \83}\83E\83X\82Ì\8d\83{\83^\83\93\82ª\97£\82³\82ê\82½ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|</font>
+LRESULT     <font color="Brown">InputImpl</font>::onLButtonUp(<font color="blue">const</font> HWND hwnd, <font color="blue">const</font> WPARAM wParam, <font color="blue">const</font> LPARAM lParam)
+{
+    <font color="blue">return</font> callMouseListenerMethod(hwnd,wParam,lParam,<font color="darkblue">input</font>::<font color="darkblue">mouse</font>::<font color="DarkRed">Listener</font>::leftButtonUp);
+}<font color="green">// onLButtonUp()</font>
+
+<font color="green">// \83}\83E\83X\82Ì\8d\83{\83^\83\93\82ª\83_\83u\83\8b\83N\83\8a\83b\83N\82³\82ê\82½\81@\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|</font>
+LRESULT     <font color="Brown">InputImpl</font>::onLButtonDoubleClick(<font color="blue">const</font> HWND hwnd, <font color="blue">const</font> WPARAM wParam, <font color="blue">const</font> LPARAM lParam)
+{
+    <font color="blue">return</font> callMouseListenerMethod(hwnd,wParam,lParam,<font color="darkblue">input</font>::<font color="darkblue">mouse</font>::<font color="DarkRed">Listener</font>::leftButtonDoubleClick);
+}<font color="green">// onLButtonDoubleClick()</font>
+
+<font color="green">// \83}\83E\83X\82Ì\89E\83{\83^\83\93\82ª\97£\82³\82ê\82½ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|</font>
+LRESULT     <font color="Brown">InputImpl</font>::onRButtonDown(<font color="blue">const</font> HWND hwnd, <font color="blue">const</font> WPARAM wParam, <font color="blue">const</font> LPARAM lParam)
+{
+    <font color="blue">return</font> callMouseListenerMethod(hwnd,wParam,lParam,<font color="darkblue">input</font>::<font color="darkblue">mouse</font>::<font color="DarkRed">Listener</font>::rightButtonDown);
+}<font color="green">// onRButtonDown()</font>
+
+<font color="green">// \83}\83E\83X\82Ì\89E\83{\83^\83\93\82ª\89\9f\82³\82ê\82½ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|</font>
+LRESULT     <font color="Brown">InputImpl</font>::onRButtonUp(<font color="blue">const</font> HWND hwnd, <font color="blue">const</font> WPARAM wParam, <font color="blue">const</font> LPARAM lParam)
+{
+    <font color="blue">return</font> callMouseListenerMethod(hwnd,wParam,lParam,<font color="darkblue">input</font>::<font color="darkblue">mouse</font>::<font color="DarkRed">Listener</font>::rightButtonUp);
+}<font color="green">// onRButtonUp()</font>
+
+<font color="green">// \83}\83E\83X\82Ì\89E\83{\83^\83\93\82ª\83_\83u\83\8b\83N\83\8a\83b\83N\82³\82ê\82½\81@\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|</font>
+LRESULT     <font color="Brown">InputImpl</font>::onRButtonDoubleClick(<font color="blue">const</font> HWND hwnd, <font color="blue">const</font> WPARAM wParam, <font color="blue">const</font> LPARAM lParam)
+{
+    <font color="blue">return</font> callMouseListenerMethod(hwnd,wParam,lParam,<font color="darkblue">input</font>::<font color="darkblue">mouse</font>::<font color="DarkRed">Listener</font>::rightButtonDoubleClick);
+}<font color="green">// onRButtonDoubleClick()</font>
+
+<font color="green">// \83}\83E\83X\82ª\93®\82¢\82½\81@\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|</font>
+LRESULT     <font color="Brown">InputImpl</font>::onMouseMove(<font color="blue">const</font> HWND hwnd, <font color="blue">const</font> WPARAM wParam, <font color="blue">const</font> LPARAM lParam)
+{
+    <font color="blue">return</font> callMouseListenerMethod(hwnd,wParam,lParam,<font color="darkblue">input</font>::<font color="darkblue">mouse</font>::<font color="DarkRed">Listener</font>::mouseMove);
+}<font color="green">// onMouseMove()</font>
+
+<font color="green">// \83z\83C\81[\83\8b\82ª\93®\82¢\82½\81@\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|</font>
+LRESULT     <font color="Brown">InputImpl</font>::onMouseWheel(<font color="blue">const</font> HWND hwnd, <font color="blue">const</font> WPARAM wParam, <font color="blue">const</font> LPARAM lParam)
+{
+    <font color="blue">return</font> callMouseListenerMethod(hwnd,wParam,lParam,<font color="darkblue">input</font>::<font color="darkblue">mouse</font>::<font color="DarkRed">Listener</font>::mouseWheel);
+}<font color="green">// onMouseWheel()</font>
+
+<font color="green">// MouseListener\82Ì\83\81\83\\83b\83h\82ð\8cÄ\82Ñ\8fo\82· \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|</font>
+LRESULT <font color="Brown">InputImpl</font>::callMouseListenerMethod(<font color="blue">const</font> HWND hwnd, <font color="blue">const</font> WPARAM wParam, <font color="blue">const</font> LPARAM lParam,<font color="blue">void</font>(<font color="darkblue">mouse</font>::<font color="DarkRed">Listener</font>::* pMethod)(<font color="blue">const</font> <font color="blue">int</font>,<font color="blue">const</font> <font color="blue">int</font>,<font color="blue">const</font> DWORD))
+{
+    <font color="blue">using</font> <font color="blue">namespace</font> <font color="darkblue">sf</font>::<font color="darkblue">system</font>::<font color="darkblue">input</font>;
+
+    <font color="blue">if</font>(mMouseListenerList.size() == 0)
+        <font color="blue">return</font> 0;
+
+    POINT pt;
+    
+    pt.x = LOWORD(lParam);
+    pt.y = HIWORD(lParam);
+    
+    ClientToScreen(hwnd,&amp;pt);
+
+    DWORD mkey = 0;
+
+    <font color="blue">if</font>(MK_CONTROL &amp; wParam)
+        mkey |= <font color="darkblue">mouse</font>::MKEY_CONTROL;
+    
+    <font color="blue">if</font>(MK_SHIFT &amp; wParam)
+        mkey |= <font color="darkblue">mouse</font>::MKEY_SHIFT;
+
+    mkey |= (wParam &amp; 0xffff0000);
+
+    
+    MouseListenerList::iterator it = mMouseListenerList.begin();
+    
+    <font color="blue">while</font>(it != mMouseListenerList.end())
+    {
+        <font color="blue">if</font>(*it == NULL){
+            it = mMouseListenerList.erase(it);
+        } <font color="blue">else</font> {
+            <font color="blue">if</font>((*it)-&gt;isListeningMouse()){
+                ((*it)-&gt;*pMethod)(pt.x,pt.y,mkey);
+            }
+            ++it;
+        }
+    }
+
+    <font color="blue">return</font> 0;
+}<font color="green">// callListener</font>
+
+<font color="green">// \83L\81[\89\9f\89º\8e\9e\82Ì\8f\88\97\9d -----------------------------------------------------------</font>
+LRESULT <font color="Brown">InputImpl</font>::onKeyDown(<font color="blue">const</font> HWND hwnd, <font color="blue">const</font> WPARAM wParam, <font color="blue">const</font> LPARAM lParam)
+{
+    DWORD extKey = 0;
+
+    <font color="green">// \82Æ\82è\82 \82¦\82¸\81AESC\83L\81[\82ª\89\9f\82³\82ê\82½\82ç\8fI\97¹\82·\82é\82æ\82¤\82É\82µ\82Ä\82¢\82é</font>
+    <font color="blue">switch</font>(wParam)
+    {
+    <font color="blue">case</font> 'Q':
+        PostMessage( hwnd, WM_CLOSE, 0, 0L );
+        break;
+    <font color="blue">default</font>:
+
+        <font color="blue">if</font>(GetAsyncKeyState(VK_SHIFT))
+            extKey |= <font color="darkblue">keyboard</font>::SHIFT;
+
+        <font color="blue">if</font>(GetAsyncKeyState(VK_CONTROL))
+            extKey |= <font color="darkblue">keyboard</font>::CONTROL;
+
+        
+        KeyboardListenerList::iterator it = mKeyboardListenerList.begin();
+    
+        <font color="blue">while</font>(it != mKeyboardListenerList.end())
+        {
+            <font color="blue">if</font>(*it == NULL){
+                it = mKeyboardListenerList.erase(it);
+            } <font color="blue">else</font> {
+                <font color="blue">if</font>((*it)-&gt;isListeningKeyboard()){
+                        (*it)-&gt;keyDown(wParam,extKey);
+                }
+                ++it;
+            }
+        }
+
+    }
+    <font color="blue">return</font> 0; <font color="green">// WM_KEYDOWN</font>
+}<font color="green">// onKeyDown</font>
+
+<font color="green">// \83L\81[\82ª\97£\82³\82ê\82½\8e\9e\82Ì\8f\88\97\9d -----------------------------------------------------------</font>
+LRESULT <font color="Brown">InputImpl</font>::onKeyUp(<font color="blue">const</font> HWND hwnd, <font color="blue">const</font> WPARAM wParam, <font color="blue">const</font> LPARAM lParam)
+{
+    <font color="blue">return</font> 0;
+}<font color="green">// onKeyUp</font>
+
+<font color="green">// \83E\83B\83\93\83h\83E\83\81\83b\83Z\81[\83W\83n\83\93\83h\83\89\82ðSystemImpl\82É\93o\98\81|\81|\81|\81|\81|\81|\81|\81|</font>
+<font color="blue">void</font> <font color="Brown">InputImpl</font>::addWindowMessageMap()
+{
+    <font color="Brown">SystemImpl</font> *pSys = dynamic_cast&lt;<font color="Brown">SystemImpl</font> *&gt;(<font color="darkblue">system</font>::Factory::getInstance());
+
+    pSys-&gt;addWindowMessage(WM_SETCURSOR, new WindowMessageImpl&lt;<font color="Brown">InputImpl</font>>(this,&amp;<font color="Brown">InputImpl</font>::onSetCursor));
+    pSys-&gt;addWindowMessage(WM_LBUTTONDOWN,new WindowMessageImpl&lt;<font color="Brown">InputImpl</font>>(this,&amp;<font color="Brown">InputImpl</font>::onLButtonDown));
+    pSys-&gt;addWindowMessage(WM_LBUTTONUP,new WindowMessageImpl&lt;<font color="Brown">InputImpl</font>>(this,&amp;<font color="Brown">InputImpl</font>::onLButtonUp));
+    pSys-&gt;addWindowMessage(WM_LBUTTONDBLCLK,new WindowMessageImpl&lt;<font color="Brown">InputImpl</font>>(this,&amp;<font color="Brown">InputImpl</font>::onLButtonDoubleClick));
+
+    pSys-&gt;addWindowMessage(WM_RBUTTONDOWN,new WindowMessageImpl&lt;<font color="Brown">InputImpl</font>>(this,&amp;<font color="Brown">InputImpl</font>::onRButtonDown));
+    pSys-&gt;addWindowMessage(WM_RBUTTONUP,new WindowMessageImpl&lt;<font color="Brown">InputImpl</font>>(this,&amp;<font color="Brown">InputImpl</font>::onRButtonUp));
+    pSys-&gt;addWindowMessage(WM_RBUTTONDBLCLK,new WindowMessageImpl&lt;<font color="Brown">InputImpl</font>>(this,&amp;<font color="Brown">InputImpl</font>::onRButtonDoubleClick));
+
+    pSys-&gt;addWindowMessage(WM_MOUSEMOVE,new WindowMessageImpl&lt;<font color="Brown">InputImpl</font>>(this,&amp;<font color="Brown">InputImpl</font>::onMouseMove));
+    pSys-&gt;addWindowMessage(WM_MOUSEWHEEL,new WindowMessageImpl&lt;<font color="Brown">InputImpl</font>>(this,&amp;<font color="Brown">InputImpl</font>::onMouseWheel));
+
+    pSys-&gt;addWindowMessage(WM_KEYDOWN,new WindowMessageImpl&lt;<font color="Brown">InputImpl</font>>(this,&amp;<font color="Brown">InputImpl</font>::onKeyDown));
+    pSys-&gt;addWindowMessage(WM_KEYUP,new WindowMessageImpl&lt;<font color="Brown">InputImpl</font>>(this,&amp;<font color="Brown">InputImpl</font>::onKeyUp));
+
+}
+</pre></body>
+</html>
diff --git a/project/LFNDOS.TXT b/project/LFNDOS.TXT
new file mode 100644 (file)
index 0000000..a4e67f3
--- /dev/null
@@ -0,0 +1,240 @@
+
+         LFN(Long File Name)\91Î\89\9e DOS \83\82\81[\83h\82Ì\8d\\92z\95û\96@  Ver.1.00
+                      Copyright (C) 2000  K.Takata
+
+
+\82P\81DLFN \91Î\89\9e DOS \83\82\81[\83h\82Ì\8aT\97v
+\81@\92Ê\8fí\82Ì Win9x \82Ì MS-DOS \83\82\81[\83h\82Å\82Í LFN \82ð\88µ\82¤\82±\82Æ\82ª\82Å\82«\82Ü\82¹\82ñ\82ª\81A\88È\89º\82É
+\8e¦\82·\95û\96@\82Å\8aÂ\8b«\82ð\8d\\92z\82·\82é\82±\82Æ\82Å\81ADOS \83\82\81[\83h\82Å LFN \82ð\88µ\82¤\82±\82Æ\82ª\82Å\82«\82é\82æ\82¤
+\82É\82È\82è\82Ü\82·\81B\82±\82Ì LFN \91Î\89\9e DOS \83\82\81[\83h\82É\95K\97v\82È\83f\83B\83X\83N\97e\97Ê\82Í 4\81`5MB \92ö\93x\82Å
+\82·\81B\81i\82¤\82Ü\82­\82¢\82¯\82Î\83t\83\8d\83b\83s\81[\82Å\8bN\93®\82³\82¹\82é\82±\82Æ\82à\89Â\94\\82©\82à\82µ\82ê\82Ü\82¹\82ñ\81B\81j
+Win9x \82ª\8bN\93®\82µ\82È\82­\82È\82Á\82½\82Æ\82«\82Ì\8fC\95\9c\97p\82Ì\8aÂ\8b«\82Æ\82µ\82Ä\8eg\82¤\82È\82Ç\82Ì\97\98\97p\96@\82ª\8dl\82¦\82ç
+\82ê\82Ü\82·\81Bcopy \82È\82Ç\82Ì\95W\8f\80\82Ì\83R\83}\83\93\83h\82Å LFN \82ª\88µ\82¦\82é\82Ì\82Å\81A\95\81\92Ê\82Ì DOS \83\82\81[\83h
+\82É\94ä\82×\82Ä\81ALFN \82ð\8eg\82Á\82½\83t\83@\83C\83\8b\82Ì\91\80\8dì\82ª\8ai\92i\82É\8ay\82É\82È\82è\82Ü\82·\81B
+\81@\82±\82Ì\95û\96@\82Ì\83I\83\8a\83W\83i\83\8b\82Í Andrew Schulman \82Ì\81uWindows95 \93à\95\94\89ð\90Í\81v\82É\8bL\82³
+\82ê\82Ä\82¢\82é\82»\82¤\82Å\82·\82ª\81A\82±\82Ì\96{\82Í\8aù\82É\90â\94Å\82Æ\82È\82Á\82Ä\82¢\82é\82Ì\82Å\8e\84\8e©\90g\82Í\8am\94F\82µ\82Ä\82¢\82Ü
+\82¹\82ñ\81B\88È\89º\82É\8e¦\82·\95û\96@\82Í @nifty \82Ì\96^\8f\8a\82Å\82½\82Ü\82½\82Ü\8c©\82Â\82¯\82½\95\8fÍ\82ð\8c³\82É\81A\8e\84\8e©\90g
+\82ª\8e\8e\8ds\8dö\8cë\82ð\8ds\82Á\82Ä\8fo\97\88\8fã\82ª\82Á\82½\95û\96@\82Å\82·\81B\93®\8dì\8am\94F\82Í Win95 OSR2(PC-98),
+Win98 SE(PC/AT) \82Å\8ds\82Á\82Ä\82¢\82Ü\82·\81B
+
+
+
+\82Q\81DLFN \91Î\89\9e DOS \83\82\81[\83h\82Ì\8d\\92z
+\81@\88È\89º\82Å\82Í Win9x \82ª a: \82É\83C\83\93\83X\83g\81[\83\8b\82³\82ê\82Ä\82¨\82è\81ALFN \91Î\89\9e DOS \83\82\81[\83h\82Í b:
+\82©\82ç\8bN\93®\82³\82¹\82é\82à\82Ì\82Æ\82µ\82Ä\98b\82ð\90i\82ß\82Ü\82·\81B\81i\8e©\95ª\82Ì\8aÂ\8b«\82É\8d\87\82í\82¹\82Ä\83h\83\89\83C\83u\96¼\82ð
+\93Ç\82Ý\91Ö\82¦\82Ä\82­\82¾\82³\82¢\81B\81j
+
+b:\vmm32 \82Æ\82¢\82¤\83f\83B\83\8c\83N\83g\83\8a\82ð\8dì\82è\81A\82»\82Ì\92\86\82É\95K\97v\82È\83t\83@\83C\83\8b\82ð\93ü\82ê\82é\82±\82Æ\82É
+\82µ\82Ü\82·\81B\88È\89º\82Ì\95\94\95ª\82ð lfndos.bat \82Æ\82¢\82¤\96¼\91O\82Å\95Û\91\82µ\82Ä\8eÀ\8ds\82·\82ê\82Î\8ay\82Å\82µ\82å\82¤\81B
+\81i\82à\82¿\82ë\82ñ\83h\83\89\83C\83u\96¼\82Ì\95\94\95ª\82Í\8e©\95ª\82Ì\8aÂ\8b«\82É\8d\87\82í\82¹\82Ä\8f\91\82«\8a·\82¦\82Ä\82­\82¾\82³\82¢\81B\81j
+
+------------------------------------------------------------------------
+@echo off
+rem \83f\83B\83\8c\83N\83g\83\8a\82ð\8dì\90¬
+mkdir b:\vmm32
+mkdir b:\vmm32\iosubsys
+mkdir b:\vmm32\vmm32
+
+rem VxD \83t\83@\83C\83\8b\82ð\83R\83s\81[
+copy a:\windows\system\*.vxd        b:\vmm32
+copy a:\windows\system\iosubsys\*.* b:\vmm32\iosubsys
+copy a:\windows\system\vmm32\*.*    b:\vmm32\vmm32
+
+rem \83f\83o\83C\83X\83h\83\89\83C\83o\82È\82Ç\82ð\83R\83s\81[
+copy a:\windows\himem.sys           b:\vmm32
+copy a:\windows\ifshlp.sys          b:\vmm32
+copy a:\windows\win.com             b:\vmm32
+copy a:\windows\system.ini          b:\vmm32
+copy a:\windows\ios.ini             b:\vmm32
+copy a:\windows\command.com         b:\vmm32\krnl386.exe
+
+rem \83\8c\83W\83X\83g\83\8a\82ð\83R\83s\81[
+attrib -s -h a:\windows\system.dat
+attrib -s -h a:\windows\user.dat
+copy a:\windows\system.dat          b:\vmm32
+copy a:\windows\user.dat            b:\vmm32
+attrib +s +h a:\windows\system.dat
+attrib +s +h a:\windows\user.dat
+
+rem \88È\89º\82Ì\83t\83@\83C\83\8b\82ª\82È\82¢\82Æ\93ú\96{\8cê\82Ì LFN \82ª\88µ\82¦\82È\82¢
+copy a:\windows\system\unicode.bin  b:\vmm32
+------------------------------------------------------------------------
+
+\8fã\8bL\82Ì\82æ\82¤\82É\82·\82ê\82Î\95K\97v\82È\83t\83@\83C\83\8b\82ª b:\vmm32 \82É\83R\83s\81[\82³\82ê\82Ü\82·\81B
+
+
+attrib -r -s -h b:\msdos.sys \82Æ\82µ\82Ä b:\msdos.sys \82ð\95Ò\8fW\89Â\94\\82É\82µ\82Ä\82©\82ç\83e
+\83L\83X\83g\83G\83f\83B\83^\82È\82Ç\82Å\88È\89º\82Ì\82æ\82¤\82É\8f\91\82«\8a·\82¦\82Ü\82·\81B\82±\82±\82Å\82à\82à\82¿\82ë\82ñ\83h\83\89\83C\83u\96¼
+\82ð\8e©\95ª\82Ì\8aÂ\8b«\82É\8d\87\82í\82¹\82Ä\8f\91\82«\8a·\82¦\82é\95K\97v\82ª\82 \82è\82Ü\82·\81B
+
+------------------------------------------------------------------------
+;SYS
+[Paths]
+WinDir=B:\VMM32
+WinBootDir=B:\VMM32
+HostWinBootDrv=B
+
+[Options]
+BootGUI=0
+;\88È\89º\8fÈ\97ª
+------------------------------------------------------------------------
+
+\88È\8fã\82Å\82Ð\82Æ\82Ü\82¸\8aÂ\8b«\8d\\92z\82Í\8fI\82í\82è\82Å\82·\81B
+
+
+b: \82©\82ç\8dÄ\8bN\93®\82µ\82Ä\81A\83v\83\8d\83\93\83v\83g\82ª\95\\8e¦\82³\82ê\82½\82ç\81A
+B:\> win
+\82 \82é\82¢\82Í
+B:\> \vmm32\win
+\82Æ\82µ\82Ä\81Awin.com \82ð\8bN\93®\82µ\82Ä\82­\82¾\82³\82¢\81B\82µ\82Î\82ç\82­\82µ\82Ä\8dÄ\82Ñ\83v\83\8d\83\93\83v\83g\82ª\95\\8e¦\82³\82ê
+\82½\82ç LFN \82ª\8eg\82¦\82é\82æ\82¤\82É\82È\82Á\82Ä\82¢\82Ü\82·\81BLFN \82ª\8eg\82í\82ê\82Ä\82¢\82é\83t\83@\83C\83\8b\82ª\82 \82é\83f
+\83B\83\8c\83N\83g\83\8a\82Å dir \82ð\8eÀ\8ds\82µ\82Ä\82Ý\82Ü\82µ\82å\82¤\81B\82¿\82á\82ñ\82Æ\89E\91¤\82É LFN \82ª\95\\8e¦\82³\82ê\82é\82Í
+\82¸\82Å\82·\81B\82È\82¨\8aÂ\8b«\82É\82à\8añ\82è\82Ü\82·\82ª\81A\82±\82Ì\82Æ\82« DOS \97p\83h\83\89\83C\83o\82ð\91g\82Ý\8d\9e\82ñ\82Å\82¢\82È
+\82¢\82É\82à\8aÖ\82í\82ç\82¸ CD-ROM \83h\83\89\83C\83u\82â\81APC \83J\81[\83h\8co\97R\82Å\90Ú\91±\82µ\82Ä\82¢\82é\83h\83\89\83C\83u\82È
+\82Ç\82ª\8eg\82¦\82é\82æ\82¤\82É\82È\82Á\82Ä\82¢\82é\82Í\82¸\82Å\82·\81B\81i\82½\82¾\82µ\83z\83b\83g\83v\83\89\83O\82É\82Í\91Î\89\9e\82µ\82Ä\82¢\82Ü
+\82¹\82ñ\81B\81j
+
+LFN \91Î\89\9e DOS \83\82\81[\83h\82©\82ç\94²\82¯\82é\82É\82Í exit \82Æ\93ü\97Í\82µ\82Ä\82­\82¾\82³\82¢\81B\83\\83t\83g\83E\83F\83A
+\93I\82É\93d\8c¹\82ð\90Ø\82é\82±\82Æ\82ª\82Å\82«\82é\83p\83\\83R\83\93\82Å\82Í\81ALFN \91Î\89\9e DOS \83\82\81[\83h\82©\82ç\94²\82¯\82é\82Æ
+\93¯\8e\9e\82É\8f\9f\8eè\82É\93d\8c¹\82ª\90Ø\82ê\82Ü\82·\81B
+
+
+
+\82R\81DLFN \91Î\89\9e DOS \83\82\81[\83h\82Ì\83`\83\85\81[\83j\83\93\83O
+\81@\82Q\81D\82Å\8dì\90¬\82µ\82½\8aÂ\8b«\82É\82Í\82©\82È\82è\82Ì\96³\91Ê\82ª\82 \82è\82Ü\82·\81B\82±\82±\82Å\82Í\82»\82Ì\96³\91Ê\82ð\8fÈ\82­\95û
+\96@\82È\82Ç\82ð\90à\96¾\82µ\82Ü\82·\81B
+
+
+3.1.\83\8c\83W\83X\83g\83\8a\82Ì\83`\83\85\81[\83j\83\93\83O
+\81@Win9x \82Ì\83\8c\83W\83X\83g\83\8a\82Í \90\94MB \82 \82è\82Ü\82·\82ª\81ALFN \91Î\89\9e DOS \83\82\81[\83h\82Å\95K\97v\82È\95\94\95ª
+\82Í\82±\82Ì\93à\82Ì\82Ù\82ñ\82Ì\88ê\95\94\82Å\82·\81B\88È\89º\82Ì\8dì\8bÆ\82Å\83\8c\83W\83X\83g\83\8a\82Ì\83T\83C\83Y\82ð\96ñ 10\95ª\82Ì 1 \82É
+\82·\82é\82±\82Æ\82ª\89Â\94\\82Å\82·\81B
+
+DOS \83\82\81[\83h\82Å\8bN\93®\82µ\82Ä\82©\82ç\88È\89º\82Ì\82æ\82¤\82É\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢\81B\8cë\82Á\82Ä\96{\97\88\82Ì
+Windows \82Ì\83\8c\83W\83X\83g\83\8a\82ð\94j\89ó\82µ\82Ä\82µ\82Ü\82í\82È\82¢\82æ\82¤\82É\81A\95K\82¸ /l \82Æ /r \82Å LFN \91Î
+\89\9e DOS \83\82\81[\83h\82Ì\83\8c\83W\83X\83g\83\8a\82Ì\8fê\8f\8a\82ð\8ew\92è\82µ\82Ä\82¨\82«\82Ü\82µ\82å\82¤\81B\82Ü\82½ Windows \82Æ
+LFN \91Î\89\9e DOS \83\82\81[\83h\82Ì\97¼\95û\82Ì\83\8c\83W\83X\83g\83\8a\82Ì\83o\83b\83N\83A\83b\83v\82ð\8eæ\82Á\82Ä\82¨\82«\82Ü\82µ\82å\82¤\81B
+
+------------------------------------------------------------------------
+regedit /l:b:\vmm32\system.dat /r:b:\vmm32\user.dat /d \81¨
+        HKEY_LOCAL_MACHINE\SOFTWARE
+
+regedit /l:b:\vmm32\system.dat /r:b:\vmm32\user.dat /e lfndos.reg \81¨
+        HKEY_LOCAL_MACHINE
+
+regedit /l:b:\vmm32\system.dat /r:b:\vmm32\user.dat /c lfndos.reg
+------------------------------------------------------------------------
+
+\81i\92\8d\81j  \92·\82¢\82Ì\82Å"\81¨"\82Ì\95\94\95ª\82Å\90Ü\82è\95Ô\82µ\82Ä\82¢\82Ü\82·\81B\8eÀ\8dÛ\82É\82Í"\81¨"\82Ì\82 \82Æ\82à\82»\82Ì\82Ü
+        \82Ü\91±\82¯\82Ä\93ü\97Í\82µ\82Ä\82­\82¾\82³\82¢\81B
+
+\82Ü\82¸ HKEY_LOCAL_MACHINE\SOFTWARE \82Ì\95\94\95ª\82ª\95K\97v\82È\82¢\82Ì\82Å\8dí\8f\9c\82µ\82Ü\82·\81B\81i\8aÂ\8b«
+\82É\82æ\82Á\82Ä\82Í HKEY_LOCAL_MACHINE\Software \82Æ\82¢\82¤\82æ\82¤\82É\81A\91å\95\8e\9a\8f¬\95\8e\9a\82ª\88á\82Á
+\82Ä\82¢\82é\8fê\8d\87\82ª\82 \82è\82Ü\82·\82ª\81A\8aÖ\8cW\82È\82¢\82æ\82¤\82Å\82·\81B\81j
+
+\83\8c\83W\83X\83g\83\8a\82Ì HKEY_LOCAL_MACHINE \82Ì\95\94\95ª\82ð lfndos.reg \82É\8f\91\82«\8fo\82µ\82Ä\82©\82ç\81A\83\8c
+\83W\83X\83g\83\8a\82Ì\8dÄ\8d\\92z\82ð\8ds\82¤\82±\82Æ\82Å\83T\83C\83Y\82Í \96ñ300\81`400KB \82Ü\82Å\8f¬\82³\82­\82È\82è\82Ü\82·\81B\8dÄ
+\8d\\92z\8cã\82Í system.dat \82Í\83o\83b\83N\83A\83b\83v\82ð\8eæ\82Á\82Ä\82¨\82¢\82½\95û\82ª\82æ\82¢\82Å\82µ\82å\82¤\81B
+user.dat \82Ì\95û\82Í\8dí\8f\9c\82µ\82Ä\82µ\82Ü\82Á\82Ä\8d\\82¢\82Ü\82¹\82ñ\81Blfndos.reg \82à\95K\97v\82 \82è\82Ü\82¹\82ñ\81B
+
+
+3.2.\97]\95ª\82È VxD \83t\83@\83C\83\8b\82Ì\8dí\8f\9c
+\81@\82Q\81D\82Å\82Í \windows\system \82É\82 \82é\82·\82×\82Ä\82Ì VxD \83t\83@\83C\83\8b\82ð \vmm32 \82É\83R\83s\81[
+\82µ\82Ü\82µ\82½\82ª\81A\82»\82Ì\92\86\82É\82Í LFN \91Î\89\9e DOS \83\82\81[\83h\82Å\82Í\8eg\82í\82ê\82È\82¢\83t\83@\83C\83\8b\82à\8aÜ\82Ü\82ê
+\82Ä\82¢\82Ü\82·\81B\95K\97v\82È\82¢\83t\83@\83C\83\8b\82É\82Í\82Ü\82¸\81ADirectX \8aÖ\8cW\82Ì\83t\83@\83C\83\8b\82ª\82 \82è\82Ü\82·\81B
+ddraw.vxd, dsound.vxd, dinput.vxd, joyhid.vxd \82È\82Ç\82ª\82»\82ê\82É\93\96\82½\82è\82Ü\82·\81B\83f
+\83B\83X\83v\83\8c\83C\83h\83\89\83C\83o\82à\95K\97v\82 \82è\82Ü\82¹\82ñ\81B\82±\82ê\82ç\82Ì\83t\83@\83C\83\8b\82Í\8dí\8f\9c\82µ\82Ä\82µ\82Ü\82Á\82Ä\96â
+\91è\82 \82è\82Ü\82¹\82ñ\81B
+
+\91¼\82É\82Í\81A
+    netbeui.vxd
+    nwredir.vxd
+    wsock.vxd
+    wshtcp.vxd
+    wsipx.vxd
+    afvxd.vxd
+    pppmac.vxd
+    vgateway.vxd
+    nwsp.vxd
+    paralink.vxd
+    nesa.vxd
+    lpt.vxd
+    lptenum.vxd
+    serial.vxd
+    serenum.vxd
+    serwave.vxd
+    unimodem.vxd
+    p1284.vxd
+    ser8251.vxd
+    ser8251f.vxd
+\82È\82Ç\82Ì\83t\83@\83C\83\8b\82ª\8dí\8f\9c\82µ\82Ä\96â\91è\82È\82¢\82Æ\8ev\82í\82ê\82Ü\82·\81B\82±\82ê\82ç\82Í\83l\83b\83g\83\8f\81[\83N\8aÖ\98A\82â\81A
+\83V\83\8a\83A\83\8b\81E\83p\83\89\83\8c\83\8b\83|\81[\83g\81A\83\82\83f\83\80\8aÖ\98A\82Ì VxD \83t\83@\83C\83\8b\82¾\82Æ\8ev\82í\82ê\82Ü\82·\81B\82à\82µ
+VxD \83t\83@\83C\83\8b\82ð\8dí\8f\9c\82µ\82½\82½\82ß\82É LFN \91Î\89\9e DOS \83\82\81[\83h\82ª\8bN\93®\82µ\82È\82­\82È\82Á\82½\8fê\8d\87\82Í\81A
+\82à\82¤\88ê\93x\82»\82Ì\83t\83@\83C\83\8b\82ð\83R\83s\81[\82µ\92¼\82µ\82Ä\82­\82¾\82³\82¢\81B\81i\8bt\82É\81A\83l\83b\83g\83\8f\81[\83N\82ð\8eg\82¤
+\82É\82Í\8fã\8bL\82Ì\83t\83@\83C\83\8b\88È\8aO\82É\8ag\92£\8eq\82ª .386 \82Ì\83t\83@\83C\83\8b\82Æ LAN \83J\81[\83h\82Ì\83h\83\89\83C\83o
+\82à\83R\83s\81[\82µ\82Ä\82¨\82­\95K\97v\82ª\82 \82è\82Ü\82·\81B\82½\82¾\82µ\81A\82»\82ê\82Å\8eÀ\8dÛ\82É\83l\83b\83g\83\8f\81[\83N\82ª\8eg\82¦\82é
+\82Ì\82©\8am\94F\82Í\82µ\82Ä\82¢\82Ü\82¹\82ñ\81B\81j
+
+
+3.3.\8aÂ\8b«\95Ï\90\94\82Ì\90Ý\92è
+\81@LFN \91Î\89\9e DOS \83\82\81[\83h\82Å\8bN\93®\82µ\82½\8fê\8d\87\81A\82È\82º\82©\8aÂ\8b«\95Ï\90\94\82ª\90Ý\92è\82³\82ê\82Ü\82¹\82ñ\81B\8aÂ
+\8b«\95Ï\90\94\82ð\90Ý\92è\82·\82é\82½\82ß\82Ì\83o\83b\83`\83t\83@\83C\83\8b\82ð\83\8b\81[\83g\83f\83B\83\8c\83N\83g\83\8a\82É env.bat \82Æ\82Å
+\82à\82µ\82Ä\97p\88Ó\82µ\82Ä\82¨\82­\82Æ\82¢\82¢\82©\82à\82µ\82ê\82Ü\82¹\82ñ\81B\82 \82é\82¢\82Í command.com \82ð\81Acommand
+/k \env.bat \82Æ\82µ\82Ä\8cÄ\82Ñ\8fo\82·\8eÀ\8ds\83t\83@\83C\83\8b\82ð\8dì\82Á\82Ä\82»\82ê\82ð krnl386.exe \82Æ\83\8a\83l
+\81[\83\80\82µ\82Ä\82¨\82¯\82Î\81A\8e©\93®\93I\82É\8aÂ\8b«\95Ï\90\94\82ª\90Ý\92è\82³\82ê\82Ü\82·\81B
+
+
+
+\82S\81DLFN \91Î\89\9e DOS \83\82\81[\83h\82Å\93®\8dì\82·\82é\83\\83t\83g
+\81@LFN \91Î\89\9e DOS \83\82\81[\83h\82Å\82Í int 21h AX=71xxh \8cn\82Ì\83t\83@\83\93\83N\83V\83\87\83\93\82ð\97\98\97p\82·\82é
+\83\\83t\83g\82Å LFN \82ð\88µ\82¤\82±\82Æ\82ª\82Å\82«\82é\82æ\82¤\82É\82È\82è\82Ü\82·\81B\97v\82·\82é\82É Win9x \82Ì DOS \91\8b
+\82Å LFN \82ð\88µ\82¤\82±\82Æ\82ª\82Å\82«\82é DOS \83v\83\8d\83O\83\89\83\80\82Í\81A\82»\82Ì\82Ü\82Ü LFN \91Î\89\9e DOS \83\82\81[\83h
+\82Å LFN \82ð\88µ\82¤\82±\82Æ\82ª\82Å\82«\82Ü\82·\81BWin9x \82Ì\95W\8f\80\83R\83}\83\93\83h\82ª LFN \82ð\88µ\82¦\82é\82Ù\82©\81A\83t
+\83\8a\81[\83\\83t\83g\82Å\82Í MIEL \82â K-Launcher \82È\82Ç\82Ì\83\\83t\83g\82ª LFN \82ð\88µ\82¦\82Ü\82·\81B\82Ü\82½\81A
+\90Ù\8dì\82Ì LFN library \82ð\97\98\97p\82µ\82Ä\8dì\90¬\82³\82ê\82½\83\\83t\83g\82Å\82à LFN \82ð\88µ\82¤\82±\82Æ\82ª\82Å\82«\82Ü
+\82·\81B
+\81@LFN \91Î\89\9e DOS \83\82\81[\83h\82Í\81A\8eÀ\82Í\94¼\95ª Windows \82ª\93®\8dì\82µ\82Ä\82¢\82é\82æ\82¤\82È\8fó\91Ô\82È\82Ì\82Å\81A
+\8cë\93®\8dì\82·\82é\83\\83t\83g\82à\91\8dÝ\82µ\82Ü\82·\81B\90Ù\8dì\82Ì Exsel \82à\8c»\83o\81[\83W\83\87\83\93(Ver.1.12)\82Å\82Í
+Windows \82ª\93®\8dì\82µ\82Ä\82¢\82é\82Æ\8cë\82Á\82Ä\94»\92f\82µ\82Ä\81AWindows \97p\82Ì\83v\83\8d\83O\83\89\83\80\82ð\8eÀ\8ds\82µ\82æ
+\82¤\82Æ\82µ\82Ä\82µ\82Ü\82¢\82Ü\82·\81Bint 2fh AX=1600h \82È\82Ç\82ð\97\98\97p\82µ\82Ä Windows \82ª\93®\8dì\82µ\82Ä\82¢
+\82é\82©\82ð\94»\92f\82µ\82Ä\82¢\82é\83v\83\8d\83O\83\89\83\80\82Í\93¯\97l\82É\8cë\93®\8dì\82·\82é\89Â\94\\90«\82ª\82 \82è\82Ü\82·\81B
+
+
+
+\82T\81D\95t\91®\83c\81[\83\8b\82É\8aÖ\82µ\82Ä
+\81@lfndos.bat, krnl386.exe, execdw.asm \82É\8aÖ\82·\82é\90à\96¾\82Å\82·\81B
+
+
+5.1.lfndos.bat
+\81@\82Q\81D\82Å\8fÐ\89î\82µ\82½ lfndos.bat \82É\8f­\82µ\8eè\82ð\89Á\82¦\82½\82à\82Ì\82Å\82·\81Ba:\windows \82É
+Win9x \82ª\83C\83\93\83X\83g\81[\83\8b\82µ\82Ä\82 \82è\81Ab:\vmm32 \82É LFN \91Î\89\9e DOS \83\82\81[\83h\82ð\8d\\92z\82·\82é
+\8fê\8d\87\81A
+ > lfndos a: b:
+\82Æ\82·\82é\82±\82Æ\82Å\81A\95K\97v\82È\83t\83@\83C\83\8b\82ª\83R\83s\81[\82³\82ê\82Ü\82·\81B
+
+
+5.2.krnl386.exe
+\81@3.3.\82Å\90à\96¾\82µ\82½\81A\8aÂ\8b«\95Ï\90\94\82ð\90Ý\92è\82·\82é\82½\82ß\82Ì\83v\83\8d\83O\83\89\83\80\82Å\82·\81B\82±\82ê\82ð \vmm32
+\82É\83R\83s\81[\82µ\82Ä\81A\83\8b\81[\83g\83f\83B\83\8c\83N\83g\83\8a\82É\8aÂ\8b«\95Ï\90\94\82ð\90Ý\92è\82·\82é\82½\82ß\82Ì\83o\83b\83`\83t\83@\83C\83\8b
+\82ð env.bat \82Æ\82¢\82¤\96¼\91O\82Å\97p\88Ó\82µ\82Ä\82¨\82­\82Æ\81ALFN \91Î\89\9e DOS \83\82\81[\83h\8bN\93®\8e\9e\82É\81A\8e©\93®
+\93I\82É\8aÂ\8b«\95Ï\90\94\82ª\90Ý\92è\82³\82ê\82Ü\82·\81B\90Ù\8dì\82Ì Exsel Ver.1.12 \82ð\8c³\82É\8dì\82Á\82½\83v\83\8d\83O\83\89\83\80
+\82Å\82·\81Bexecdw.asm \82ª\83\\81[\83X\83t\83@\83C\83\8b\82Å\82·\81B
+ > lcc -o krnl386.exe -a execdw.asm -k-Fc
+\82Æ\82µ\82Ä\83R\83\93\83p\83C\83\8b\82µ\82Ä\82 \82è\82Ü\82·\81B
+
+
+
+\82U\81D\92\8d\88Ó\8e\96\8d\80\81A\82»\82Ì\91¼
+\81E\82±\82Ì\95\8fÍ\82Ì\88µ\82¢\82Í\83t\83\8a\81[\83\\83t\83g\83E\83F\83A\82Æ\93¯\97l\82Æ\82µ\82Ü\82·\81B
+\81E\82±\82Ì\95\8fÍ\82Ì\92\98\8dì\8c \82Í\92\98\8eÒ\82Å\82 \82é\8e\84 K.Takata\81i\8d\82\93\8cª\81j\82É\8bA\91®\82µ\82Ü\82·\81B
+\81E\82±\82Ì\95\8fÍ\82É\8f\91\82¢\82Ä\82 \82é\82±\82Æ\82ð\8ds\82Á\82½\82±\82Æ\82Å\89½\82ç\82©\82Ì\96â\91è\82ª\94­\90\82µ\82Ä\82à\92\98\8eÒ\82Í\88ê
+  \90Ø\82Ì\90Ó\94C\82ð\95\89\82¢\82Ü\82¹\82ñ\81B\8ae\8e©\82Ì\90Ó\94C\82É\82¨\82¢\82Ä\8ds\82Á\82Ä\82­\82¾\82³\82¢\81B
+\81E\82±\82Ì\95\8fÍ\82ð\88ê\90Ø\95Ï\8dX\82µ\82È\82¢\8cÀ\82è\94z\95z\81^\93]\8dÚ\82Í\8e©\97R\82Å\82·\81B
+
+
+        \92\98\8eÒ   : K.Takata\81i\8d\82\93\8cª\81j
+        E-mail : kentkt@anet.ne.jp, HZL03275@nifty.ne.jp
+        URL    : http://webs.to/ken/
+                 http://member.nifty.ne.jp/k-takata/
+
+
diff --git a/project/MAKEFILE b/project/MAKEFILE
new file mode 100644 (file)
index 0000000..ebc9508
--- /dev/null
@@ -0,0 +1,130 @@
+#//@STATE=\8a®\90¬
+#//@DESCRIPTION
+# Borland C++ 5.5\97p\83\81\83C\83N\83t\83@\83C\83\8b
+#$Log: MAKEFILE,v $
+#Revision 1.8  2001/10/28 21:45:04  fujiwara
+#DLL\82É\95ª\8a\84
+#
+#Revision 1.7  2001/07/09 20:30:08  fujiwara
+#\97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+#
+#Revision 1.6  2001/07/01 01:03:44  fujiwara
+#const \82Ì\8c©\92¼\82µ
+#\94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+#
+#Revision 1.5  2001/06/10 21:17:01  fujiwara
+#\83^\81[\83Q\83b\83g\92Ç\89Á\81i\92n\8fã\97p\81j
+#
+#Revision 1.4  2001/05/29 01:12:35  fujiwara
+#\8eG\8b\9b\83L\83\83\83\89(\94ò\8ds\95¨\81j\82Ì\8dì\90¬\81B\94z\92u\83G\83f\83B\83^\82Ì\83o\83O\8fC\90³
+#
+#Revision 1.3  2001/05/13 20:04:24  fujiwara
+#\83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+#\8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+#
+#Revision 1.2  2001/05/12 01:35:32  fujiwara
+#(none)
+#
+#//@DESCRIPTION_END
+#//@AUTHOR=S.F.
+
+
+CC   = bcc32
+RC   = brc32
+AS   = tasm32
+CXX  = bcc32 -P
+CPP  = bcc32 -P
+CPP32 = cpp32
+
+LINKER = ilink32
+LINK   = ilink32
+LIBRARIAN = tlib /P128
+
+# \83R\83\93\83p\83C\83\8b\83I\83u\83W\83F\83N\83g\90\90¬\90æ\83f\83B\83\8c\83N\83g\83\8a\82ð\91\8a\91Î\83p\83X\82Å\8ew\92è
+OUT = ..\obj
+INT = .
+PRODUCT = ..
+
+#\8c\9f\8dõ\83p\83X\82Ì\90Ý\92è
+.path.obj = $(OUT)
+.path.cpp  = $(INT)
+.path.h    = $(INT)
+
+# \83C\83\93\83N\83\8b\81[\83h\83t\83@\83C\83\8b\82Ì\83p\83X
+# SDK\82â\8aJ\94­\8aÂ\8b«\82Ö\82Ì\83p\83X
+INCLUDEPATH = $(PRODUCT)\lib\;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib
+# \83\89\83C\83u\83\89\83\8a\82Ö\82Ì\83p\83X
+LIBPATH = $(PRODUCT)\lib\;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;
+#
+!ifdef _DEBUG
+CFLAGS = -c -v -Od  -WM- -H -Hs -5 -a8 -W -I$(INCLUDEPATH) -L$(LIBPATH) -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n$(OUT)
+!else
+CFLAGS = -c -O2 -WM- -H -Hs -5 -a8 -W -I$(INCLUDEPATH) -L$(LIBPATH) -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n$(OUT)
+!endif
+CFLAGS1 = -VM
+CFLAGS1 = $(CFLAGS1) -Dsinf=(float)sin
+CFLAGS1 = $(CFLAGS1) -Dcosf=(float)cos
+CFLAGS1 = $(CFLAGS1) -Dasinf=(float)asin
+CFLAGS1 = $(CFLAGS1) -Dacosf=(float)acos
+CFLAGS1 = $(CFLAGS1) -Dsqrtf=(float)sqrt
+CFLAGS1 = $(CFLAGS1) -Dexpf=(float)exp
+CFLAGS1 = $(CFLAGS1) -D_BORLAND
+!ifdef _DEBUG
+       CFLAGS1 = $(CFLAGS1) -D_DEBUG
+!endif
+
+CFLAGS = $(CFLAGS) $(CFLAGS1)
+
+RCFLAGS = -r -i$(INCLUDEPATH)
+!ifdef _DEBUG
+LINKFLAGS = -Tpe -aa -v -r -c -L$(LIBPATH)  /j$(OUT) /I$(OUT)
+!else
+LINKFLAGS = -Tpe -aa -r -c -x -L$(LIBPATH)  /j$(OUT) /I$(OUT)
+!endif
+LINKLIBS = ..\lib\sfglib.lib c_dinput.lib import32.lib cw32.lib dinput8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib dxerr8bor.lib winmm.lib
+
+.cpp.obj:
+       $(CC) $(CFLAGS) $<
+
+.h.obj:
+       $(CC) $(CFLAGS) $&.cpp
+
+.rc.res:
+  $(RC) $(RCFLAGS) $&.rc  -fo$(OUT)\$&
+
+
+PROJ    = genx
+EXE     = $(PROJ).exe
+OBJS    = WinMain.obj
+OBJS    = $(OBJS) MainApp.obj Scene.obj SceneAuthor.obj
+OBJS    = $(OBJS) Fade.obj AbstractScene.obj title.obj
+OBJS    = $(OBJS) Start.obj Game.obj Over.obj Character.obj MyShip.obj
+OBJS    = $(OBJS) BGEditor.obj Hit.Obj dispositioncontrol.obj AbstractCharacter.obj MyBullets.obj 
+OBJS    = $(OBJS) Enemys.obj ZK01.obj Explosion.obj Effects.obj DispositionEditor.obj EnemyBullets.obj
+OBJS    = $(OBJS) EB01.obj ea01.obj armys.obj abstractenemy.obj target.obj zk02.obj mygroundbullets.obj
+
+
+
+RESOURCE_OBJ = $(PROJ).res
+
+## DEFS = $(PROJ).def
+
+       
+$(OUT)\$(EXE): {$(OUT)}$(OBJS) {$(OUT)}$(RESOURCE_OBJ)
+  $(LINKER) $(LINKFLAGS) c0w32.obj $(OBJS),$*,,$(LINKLIBS),$(DEFS),$(OUT)\$(RESOURCE_OBJ)
+       copy $(OUT)\$(EXE) $(PRODUCT)
+
+MAKEFILE: $(OUT)\$(EXE)
+
+MainApp.obj: MainApp.cpp MainApp.h
+Scene.obj: Scene.h Scene.cpp
+
+all: $(OUT)\$(EXE)
+
+clean:
+       del $(OUT)\*.obj 
+       del $(OUT)\*.i?? 
+       del     $(OUT)\*.t?? 
+       del $(OUT)\*.res 
+       del $(OUT)\$(EXE)
+
diff --git a/project/RCa65593 b/project/RCa65593
new file mode 100644 (file)
index 0000000..532482d
Binary files /dev/null and b/project/RCa65593 differ
diff --git a/project/Style1.sty b/project/Style1.sty
new file mode 100644 (file)
index 0000000..43add8c
Binary files /dev/null and b/project/Style1.sty differ
diff --git a/project/Thumbs.db b/project/Thumbs.db
new file mode 100644 (file)
index 0000000..7a0822d
Binary files /dev/null and b/project/Thumbs.db differ
diff --git a/project/UpgradeLog.XML b/project/UpgradeLog.XML
new file mode 100644 (file)
index 0000000..0c7b1a4
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type='text/xsl' href='_UpgradeReport_Files/UpgradeReport.xslt'?><UpgradeLog>
+<Properties><Property Name="Solution" Value="genx">
+</Property><Property Name="ソリューション ファイル" Value="C:\Users\satoshi\Documents\genx\project\genx.sln">
+</Property><Property Name="ユーザー オプション ファイル" Value="C:\Users\satoshi\Documents\genx\project\genx.suo">
+</Property><Property Name="Date" Value="2008年6月28日">
+</Property><Property Name="Time" Value="22:28">
+</Property></Properties><Event ErrorLevel="0" Project="" Source="genx.sln" Description="ファイルは正常に C:\Users\satoshi\Documents\genx\project\genx.sln.old としてバックアップされました。">
+</Event><Event ErrorLevel="0" Project="" Source="genx.suo" Description="ファイルは正常に C:\Users\satoshi\Documents\genx\project\genx.suo.old としてバックアップされました。">
+</Event><Event ErrorLevel="0" Project="genx" Source="genx.vcproj" Description="シングル スレッドのランタイム ライブラリ スイッチ (/MLd, /ML) が C++ コンパイラから削除されました。プロジェクトは、マルチ スレッドのランタイム ライブラリ スイッチ (/MTd, /MT) を使用するように、自動的に変換されました。">
+</Event><Event ErrorLevel="1" Project="genx" Source="genx.vcproj" Description="C/C++ コンパイラ スイッチ /YX は現在サポートされていません。/YX はプロジェクト設置から削除されました。">
+</Event><Event ErrorLevel="0" Project="genx" Source="genx.vcproj" Description="ローカルの IIS サーバーへの Web 配置はサポートされなくなりました。Web 配置ビルド ツールはプロジェクト設定から削除されました。">
+</Event><Event ErrorLevel="0" Project="genx" Source="genx.vcproj" Description="Visual C++ では、C および C++ ライブラリの安全性が向上しています。これには、新しい関数や強化された関数、追加のチェック機能や検証機能、および内部設計の変更が含まれます。これらのライブラリは、既定で有効になっています。プロジェクトをビルドするときに、安全ではない関数やパラメータに関する警告が表示される可能性があります。通常、この警告にはより安全なコーディング方法や関数が示されます。コードをより安全にするために、これらの警告に従って修正することをお勧めします。詳細については、ドキュメントの「CRT のセキュリティ強化」および「Checked Iterators」を参照してください。">
+</Event><Event ErrorLevel="0" Project="genx" Source="genx.vcproj" Description="C/C++ コンパイラの既定の設定は、ISO 標準の C++ により準拠するように編集されました。変更には、ループ スコープに対して標準 C++ を適用したり、wchar_t をネイティブ型としてサポートすることなどが含まれます。これらの変更によって、既存のコードが、コードへの変更、またはビルドされたときのコンパイラ オプションを含まずに、コンパイルされることがなくなる可能性があります。">
+</Event><Event ErrorLevel="1" Project="genx" Source="genx.vcproj" Description="Visual C++ プロジェクトが埋め込み (既定で) Windows SxS マニフェストを生成する必要条件によって、プロジェクト内のマニフェスト ファイルは、マニフェスト ツールで自動的にビルドされるようになります。正常動作のために、場合によってはビルドを変更する必要があります。たとえば、すべてのマニフェスト ファイルに含まれる依存関係情報を、ソース コードからインクルードされたヘッダー ファイル内で、&quot;#pragma コメント (リンカ、&quot;&lt;依存関係をここに挿入&gt;&quot;)&quot; に変換することをお勧めします。プロジェクトが、リソース (.rc) ファイルをとおして RT_MANIFEST リソース セクションにマニフェストを埋め込んでいる場合、その行をコメント アウトしないと、正しくビルドされない可能性があります。">
+</Event><Event ErrorLevel="1" Project="genx" Source="genx.vcproj" Description="C++ コンパイラの準拠の変更によって、プロジェクトがビルドする前にコード変更が必要になる場合があります。C++ コンパイラの旧バージョンは、メンバ関数名 (例: MemberFunctionName) によるメンバ関数ポインタの指定を許可していました。C++ 標準では、演算子のアドレスを使用した完全修飾名 (例: &amp;ClassName::MemberFunctionName) が必要です。プロジェクトが Windows フォーム デザイナで使用されたフォームやコントロールを含む場合は、デザイナが生成したコードがデリゲート構築で規格外の構文を使ったため (イベント ハンドラを使用して)、InitializeComponent でコード変更をしなければならない可能性があります。">
+</Event><Event ErrorLevel="1" Project="genx" Source="genx.vcproj" Description="このアプリケーションは、Windows Vista のユーザー アカウント制御 (UAC) 機能に関連する設定を含むように更新されました。既定で、UAC を有効にして Windows Vista 上でアプリケーションを実行すると、起動したプロセスと同じ特権で実行するようにマークされます。このマークによって、アプリケーションの仮想化による実行も無効になります。プロジェクトのプロパティ ページから UAC 関連の設定を変更できます。">
+</Event><Event ErrorLevel="0" Project="genx" Source="genx.vcproj" Description="プロジェクト ファイルは正常に 'C:\Users\satoshi\Documents\genx\project\genx.vcproj.7.10.old' としてバックアップされました。">
+</Event><Event ErrorLevel="0" Project="genx" Source="genx.vcproj" Description="プロジェクトは正常にアップグレードされました。">
+</Event><Event ErrorLevel="3" Project="genx" Source="genx.vcproj" Description="Converted">
+</Event><Event ErrorLevel="0" Project="s2001" Source="s2001\s2001.vcproj" Description="ローカルの IIS サーバーへの Web 配置はサポートされなくなりました。Web 配置ビルド ツールはプロジェクト設定から削除されました。">
+</Event><Event ErrorLevel="1" Project="s2001" Source="s2001\s2001.vcproj" Description="C/C++ コンパイラ スイッチ /YX は現在サポートされていません。/YX はプロジェクト設置から削除されました。">
+</Event><Event ErrorLevel="0" Project="s2001" Source="s2001\s2001.vcproj" Description="Visual C++ では、C および C++ ライブラリの安全性が向上しています。これには、新しい関数や強化された関数、追加のチェック機能や検証機能、および内部設計の変更が含まれます。これらのライブラリは、既定で有効になっています。プロジェクトをビルドするときに、安全ではない関数やパラメータに関する警告が表示される可能性があります。通常、この警告にはより安全なコーディング方法や関数が示されます。コードをより安全にするために、これらの警告に従って修正することをお勧めします。詳細については、ドキュメントの「CRT のセキュリティ強化」および「Checked Iterators」を参照してください。">
+</Event><Event ErrorLevel="0" Project="s2001" Source="s2001\s2001.vcproj" Description="C/C++ コンパイラの既定の設定は、ISO 標準の C++ により準拠するように編集されました。変更には、ループ スコープに対して標準 C++ を適用したり、wchar_t をネイティブ型としてサポートすることなどが含まれます。これらの変更によって、既存のコードが、コードへの変更、またはビルドされたときのコンパイラ オプションを含まずに、コンパイルされることがなくなる可能性があります。">
+</Event><Event ErrorLevel="1" Project="s2001" Source="s2001\s2001.vcproj" Description="Visual C++ プロジェクトが埋め込み (既定で) Windows SxS マニフェストを生成する必要条件によって、プロジェクト内のマニフェスト ファイルは、マニフェスト ツールで自動的にビルドされるようになります。正常動作のために、場合によってはビルドを変更する必要があります。たとえば、すべてのマニフェスト ファイルに含まれる依存関係情報を、ソース コードからインクルードされたヘッダー ファイル内で、&quot;#pragma コメント (リンカ、&quot;&lt;依存関係をここに挿入&gt;&quot;)&quot; に変換することをお勧めします。プロジェクトが、リソース (.rc) ファイルをとおして RT_MANIFEST リソース セクションにマニフェストを埋め込んでいる場合、その行をコメント アウトしないと、正しくビルドされない可能性があります。">
+</Event><Event ErrorLevel="1" Project="s2001" Source="s2001\s2001.vcproj" Description="C++ コンパイラの準拠の変更によって、プロジェクトがビルドする前にコード変更が必要になる場合があります。C++ コンパイラの旧バージョンは、メンバ関数名 (例: MemberFunctionName) によるメンバ関数ポインタの指定を許可していました。C++ 標準では、演算子のアドレスを使用した完全修飾名 (例: &amp;ClassName::MemberFunctionName) が必要です。プロジェクトが Windows フォーム デザイナで使用されたフォームやコントロールを含む場合は、デザイナが生成したコードがデリゲート構築で規格外の構文を使ったため (イベント ハンドラを使用して)、InitializeComponent でコード変更をしなければならない可能性があります。">
+</Event><Event ErrorLevel="1" Project="s2001" Source="s2001\s2001.vcproj" Description="このアプリケーションは、Windows Vista のユーザー アカウント制御 (UAC) 機能に関連する設定を含むように更新されました。既定で、UAC を有効にして Windows Vista 上でアプリケーションを実行すると、起動したプロセスと同じ特権で実行するようにマークされます。このマークによって、アプリケーションの仮想化による実行も無効になります。プロジェクトのプロパティ ページから UAC 関連の設定を変更できます。">
+</Event><Event ErrorLevel="0" Project="s2001" Source="s2001\s2001.vcproj" Description="プロジェクト ファイルは正常に 'C:\Users\satoshi\Documents\genx\project\s2001\s2001.vcproj.7.10.old' としてバックアップされました。">
+</Event><Event ErrorLevel="0" Project="s2001" Source="s2001\s2001.vcproj" Description="プロジェクトは正常にアップグレードされました。">
+</Event><Event ErrorLevel="3" Project="s2001" Source="s2001\s2001.vcproj" Description="Converted">
+</Event><Event ErrorLevel="1" Project="s2001Editor" Source="s2001Editor\s2001Editor.vcproj" Description="C/C++ コンパイラ スイッチ /YX は現在サポートされていません。/YX はプロジェクト設置から削除されました。">
+</Event><Event ErrorLevel="0" Project="s2001Editor" Source="s2001Editor\s2001Editor.vcproj" Description="ローカルの IIS サーバーへの Web 配置はサポートされなくなりました。Web 配置ビルド ツールはプロジェクト設定から削除されました。">
+</Event><Event ErrorLevel="0" Project="s2001Editor" Source="s2001Editor\s2001Editor.vcproj" Description="Visual C++ では、C および C++ ライブラリの安全性が向上しています。これには、新しい関数や強化された関数、追加のチェック機能や検証機能、および内部設計の変更が含まれます。これらのライブラリは、既定で有効になっています。プロジェクトをビルドするときに、安全ではない関数やパラメータに関する警告が表示される可能性があります。通常、この警告にはより安全なコーディング方法や関数が示されます。コードをより安全にするために、これらの警告に従って修正することをお勧めします。詳細については、ドキュメントの「CRT のセキュリティ強化」および「Checked Iterators」を参照してください。">
+</Event><Event ErrorLevel="0" Project="s2001Editor" Source="s2001Editor\s2001Editor.vcproj" Description="C/C++ コンパイラの既定の設定は、ISO 標準の C++ により準拠するように編集されました。変更には、ループ スコープに対して標準 C++ を適用したり、wchar_t をネイティブ型としてサポートすることなどが含まれます。これらの変更によって、既存のコードが、コードへの変更、またはビルドされたときのコンパイラ オプションを含まずに、コンパイルされることがなくなる可能性があります。">
+</Event><Event ErrorLevel="1" Project="s2001Editor" Source="s2001Editor\s2001Editor.vcproj" Description="Visual C++ プロジェクトが埋め込み (既定で) Windows SxS マニフェストを生成する必要条件によって、プロジェクト内のマニフェスト ファイルは、マニフェスト ツールで自動的にビルドされるようになります。正常動作のために、場合によってはビルドを変更する必要があります。たとえば、すべてのマニフェスト ファイルに含まれる依存関係情報を、ソース コードからインクルードされたヘッダー ファイル内で、&quot;#pragma コメント (リンカ、&quot;&lt;依存関係をここに挿入&gt;&quot;)&quot; に変換することをお勧めします。プロジェクトが、リソース (.rc) ファイルをとおして RT_MANIFEST リソース セクションにマニフェストを埋め込んでいる場合、その行をコメント アウトしないと、正しくビルドされない可能性があります。">
+</Event><Event ErrorLevel="1" Project="s2001Editor" Source="s2001Editor\s2001Editor.vcproj" Description="C++ コンパイラの準拠の変更によって、プロジェクトがビルドする前にコード変更が必要になる場合があります。C++ コンパイラの旧バージョンは、メンバ関数名 (例: MemberFunctionName) によるメンバ関数ポインタの指定を許可していました。C++ 標準では、演算子のアドレスを使用した完全修飾名 (例: &amp;ClassName::MemberFunctionName) が必要です。プロジェクトが Windows フォーム デザイナで使用されたフォームやコントロールを含む場合は、デザイナが生成したコードがデリゲート構築で規格外の構文を使ったため (イベント ハンドラを使用して)、InitializeComponent でコード変更をしなければならない可能性があります。">
+</Event><Event ErrorLevel="1" Project="s2001Editor" Source="s2001Editor\s2001Editor.vcproj" Description="このアプリケーションは、Windows Vista のユーザー アカウント制御 (UAC) 機能に関連する設定を含むように更新されました。既定で、UAC を有効にして Windows Vista 上でアプリケーションを実行すると、起動したプロセスと同じ特権で実行するようにマークされます。このマークによって、アプリケーションの仮想化による実行も無効になります。プロジェクトのプロパティ ページから UAC 関連の設定を変更できます。">
+</Event><Event ErrorLevel="0" Project="s2001Editor" Source="s2001Editor\s2001Editor.vcproj" Description="プロジェクト ファイルは正常に 'C:\Users\satoshi\Documents\genx\project\s2001Editor\s2001Editor.vcproj.7.10.old' としてバックアップされました。">
+</Event><Event ErrorLevel="0" Project="s2001Editor" Source="s2001Editor\s2001Editor.vcproj" Description="プロジェクトは正常にアップグレードされました。">
+</Event><Event ErrorLevel="3" Project="s2001Editor" Source="s2001Editor\s2001Editor.vcproj" Description="Converted">
+</Event><Event ErrorLevel="0" Project="s2001scene" Source="s2001scene\s2001scene.vcproj" Description="ローカルの IIS サーバーへの Web 配置はサポートされなくなりました。Web 配置ビルド ツールはプロジェクト設定から削除されました。">
+</Event><Event ErrorLevel="1" Project="s2001scene" Source="s2001scene\s2001scene.vcproj" Description="C/C++ コンパイラ スイッチ /YX は現在サポートされていません。/YX はプロジェクト設置から削除されました。">
+</Event><Event ErrorLevel="0" Project="s2001scene" Source="s2001scene\s2001scene.vcproj" Description="Visual C++ では、C および C++ ライブラリの安全性が向上しています。これには、新しい関数や強化された関数、追加のチェック機能や検証機能、および内部設計の変更が含まれます。これらのライブラリは、既定で有効になっています。プロジェクトをビルドするときに、安全ではない関数やパラメータに関する警告が表示される可能性があります。通常、この警告にはより安全なコーディング方法や関数が示されます。コードをより安全にするために、これらの警告に従って修正することをお勧めします。詳細については、ドキュメントの「CRT のセキュリティ強化」および「Checked Iterators」を参照してください。">
+</Event><Event ErrorLevel="0" Project="s2001scene" Source="s2001scene\s2001scene.vcproj" Description="C/C++ コンパイラの既定の設定は、ISO 標準の C++ により準拠するように編集されました。変更には、ループ スコープに対して標準 C++ を適用したり、wchar_t をネイティブ型としてサポートすることなどが含まれます。これらの変更によって、既存のコードが、コードへの変更、またはビルドされたときのコンパイラ オプションを含まずに、コンパイルされることがなくなる可能性があります。">
+</Event><Event ErrorLevel="1" Project="s2001scene" Source="s2001scene\s2001scene.vcproj" Description="Visual C++ プロジェクトが埋め込み (既定で) Windows SxS マニフェストを生成する必要条件によって、プロジェクト内のマニフェスト ファイルは、マニフェスト ツールで自動的にビルドされるようになります。正常動作のために、場合によってはビルドを変更する必要があります。たとえば、すべてのマニフェスト ファイルに含まれる依存関係情報を、ソース コードからインクルードされたヘッダー ファイル内で、&quot;#pragma コメント (リンカ、&quot;&lt;依存関係をここに挿入&gt;&quot;)&quot; に変換することをお勧めします。プロジェクトが、リソース (.rc) ファイルをとおして RT_MANIFEST リソース セクションにマニフェストを埋め込んでいる場合、その行をコメント アウトしないと、正しくビルドされない可能性があります。">
+</Event><Event ErrorLevel="1" Project="s2001scene" Source="s2001scene\s2001scene.vcproj" Description="C++ コンパイラの準拠の変更によって、プロジェクトがビルドする前にコード変更が必要になる場合があります。C++ コンパイラの旧バージョンは、メンバ関数名 (例: MemberFunctionName) によるメンバ関数ポインタの指定を許可していました。C++ 標準では、演算子のアドレスを使用した完全修飾名 (例: &amp;ClassName::MemberFunctionName) が必要です。プロジェクトが Windows フォーム デザイナで使用されたフォームやコントロールを含む場合は、デザイナが生成したコードがデリゲート構築で規格外の構文を使ったため (イベント ハンドラを使用して)、InitializeComponent でコード変更をしなければならない可能性があります。">
+</Event><Event ErrorLevel="1" Project="s2001scene" Source="s2001scene\s2001scene.vcproj" Description="このアプリケーションは、Windows Vista のユーザー アカウント制御 (UAC) 機能に関連する設定を含むように更新されました。既定で、UAC を有効にして Windows Vista 上でアプリケーションを実行すると、起動したプロセスと同じ特権で実行するようにマークされます。このマークによって、アプリケーションの仮想化による実行も無効になります。プロジェクトのプロパティ ページから UAC 関連の設定を変更できます。">
+</Event><Event ErrorLevel="0" Project="s2001scene" Source="s2001scene\s2001scene.vcproj" Description="プロジェクト ファイルは正常に 'C:\Users\satoshi\Documents\genx\project\s2001scene\s2001scene.vcproj.7.10.old' としてバックアップされました。">
+</Event><Event ErrorLevel="0" Project="s2001scene" Source="s2001scene\s2001scene.vcproj" Description="プロジェクトは正常にアップグレードされました。">
+</Event><Event ErrorLevel="3" Project="s2001scene" Source="s2001scene\s2001scene.vcproj" Description="Converted">
+</Event><Event ErrorLevel="1" Project="sfglib" Source="sfglib\sfglib.vcproj" Description="C/C++ コンパイラ スイッチ /YX は現在サポートされていません。/YX はプロジェクト設置から削除されました。">
+</Event><Event ErrorLevel="0" Project="sfglib" Source="sfglib\sfglib.vcproj" Description="ローカルの IIS サーバーへの Web 配置はサポートされなくなりました。Web 配置ビルド ツールはプロジェクト設定から削除されました。">
+</Event><Event ErrorLevel="0" Project="sfglib" Source="sfglib\sfglib.vcproj" Description="Visual C++ では、C および C++ ライブラリの安全性が向上しています。これには、新しい関数や強化された関数、追加のチェック機能や検証機能、および内部設計の変更が含まれます。これらのライブラリは、既定で有効になっています。プロジェクトをビルドするときに、安全ではない関数やパラメータに関する警告が表示される可能性があります。通常、この警告にはより安全なコーディング方法や関数が示されます。コードをより安全にするために、これらの警告に従って修正することをお勧めします。詳細については、ドキュメントの「CRT のセキュリティ強化」および「Checked Iterators」を参照してください。">
+</Event><Event ErrorLevel="0" Project="sfglib" Source="sfglib\sfglib.vcproj" Description="C/C++ コンパイラの既定の設定は、ISO 標準の C++ により準拠するように編集されました。変更には、ループ スコープに対して標準 C++ を適用したり、wchar_t をネイティブ型としてサポートすることなどが含まれます。これらの変更によって、既存のコードが、コードへの変更、またはビルドされたときのコンパイラ オプションを含まずに、コンパイルされることがなくなる可能性があります。">
+</Event><Event ErrorLevel="1" Project="sfglib" Source="sfglib\sfglib.vcproj" Description="Visual C++ プロジェクトが埋め込み (既定で) Windows SxS マニフェストを生成する必要条件によって、プロジェクト内のマニフェスト ファイルは、マニフェスト ツールで自動的にビルドされるようになります。正常動作のために、場合によってはビルドを変更する必要があります。たとえば、すべてのマニフェスト ファイルに含まれる依存関係情報を、ソース コードからインクルードされたヘッダー ファイル内で、&quot;#pragma コメント (リンカ、&quot;&lt;依存関係をここに挿入&gt;&quot;)&quot; に変換することをお勧めします。プロジェクトが、リソース (.rc) ファイルをとおして RT_MANIFEST リソース セクションにマニフェストを埋め込んでいる場合、その行をコメント アウトしないと、正しくビルドされない可能性があります。">
+</Event><Event ErrorLevel="1" Project="sfglib" Source="sfglib\sfglib.vcproj" Description="C++ コンパイラの準拠の変更によって、プロジェクトがビルドする前にコード変更が必要になる場合があります。C++ コンパイラの旧バージョンは、メンバ関数名 (例: MemberFunctionName) によるメンバ関数ポインタの指定を許可していました。C++ 標準では、演算子のアドレスを使用した完全修飾名 (例: &amp;ClassName::MemberFunctionName) が必要です。プロジェクトが Windows フォーム デザイナで使用されたフォームやコントロールを含む場合は、デザイナが生成したコードがデリゲート構築で規格外の構文を使ったため (イベント ハンドラを使用して)、InitializeComponent でコード変更をしなければならない可能性があります。">
+</Event><Event ErrorLevel="1" Project="sfglib" Source="sfglib\sfglib.vcproj" Description="このアプリケーションは、Windows Vista のユーザー アカウント制御 (UAC) 機能に関連する設定を含むように更新されました。既定で、UAC を有効にして Windows Vista 上でアプリケーションを実行すると、起動したプロセスと同じ特権で実行するようにマークされます。このマークによって、アプリケーションの仮想化による実行も無効になります。プロジェクトのプロパティ ページから UAC 関連の設定を変更できます。">
+</Event><Event ErrorLevel="0" Project="sfglib" Source="sfglib\sfglib.vcproj" Description="プロジェクト ファイルは正常に 'C:\Users\satoshi\Documents\genx\project\sfglib\sfglib.vcproj.7.10.old' としてバックアップされました。">
+</Event><Event ErrorLevel="0" Project="sfglib" Source="sfglib\sfglib.vcproj" Description="プロジェクトは正常にアップグレードされました。">
+</Event><Event ErrorLevel="3" Project="sfglib" Source="sfglib\sfglib.vcproj" Description="Converted">
+</Event><Event ErrorLevel="0" Project="" Source="genx.sln" Description="ソリューションは正常に変換されました">
+</Event><Event ErrorLevel="3" Project="" Source="genx.sln" Description="Converted">
+</Event></UpgradeLog>
\ No newline at end of file
diff --git a/project/UpgradeLog2.XML b/project/UpgradeLog2.XML
new file mode 100644 (file)
index 0000000..a0d10ee
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type='text/xsl' href='_UpgradeReport_Files/UpgradeReport.xslt'?><UpgradeLog>
+<Properties><Property Name="Solution" Value="genx">
+</Property><Property Name="ソリューション ファイル" Value="H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\genx.sln">
+</Property><Property Name="ユーザー オプション ファイル" Value="H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\genx.suo">
+</Property><Property Name="Date" Value="2011年6月16日">
+</Property><Property Name="Time" Value="7:25">
+</Property><Property Name="ログ番号" Value="2">
+</Property></Properties><Event ErrorLevel="2" Project="" Source="genx.sln" Description="バックアップ ファイル H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\genx.sln.old の作成中にエラーが発生しました">
+</Event><Event ErrorLevel="2" Project="" Source="genx.suo" Description="バックアップ ファイル H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\genx.suo.old の作成中にエラーが発生しました">
+</Event><Event ErrorLevel="0" Project="genx" Source="genx.vcproj" Description="Converting project file 'H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\genx.vcproj'.">
+</Event><Event ErrorLevel="1" Project="genx" Source="genx.vcproj" Description="VCWebServiceProxyGeneratorTool is no longer supported. The tool has been removed from your project settings.">
+</Event><Event ErrorLevel="1" Project="genx" Source="genx.vcproj" Description="MSB8012: $(TargetPath) ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\.\Release\genx.exe') does not match the Linker's OutputFile property value '.\Release/genx.exe' ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\Release/genx.exe') in project configuration 'Release|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Link.OutputFile).">
+</Event><Event ErrorLevel="1" Project="genx" Source="genx.vcproj" Description="MSB8012: $(TargetPath) ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\.\Debug\genx.exe') does not match the Linker's OutputFile property value '.\Debug/genx.exe' ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\Debug/genx.exe') in project configuration 'Debug|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Link.OutputFile).">
+</Event><Event ErrorLevel="0" Project="genx" Source="genx.vcproj" Description="Done converting to new project file 'H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\genx.vcxproj'.">
+</Event><Event ErrorLevel="3" Project="genx" Source="genx.vcproj" Description="Converted">
+</Event><Event ErrorLevel="0" Project="s2001" Source="s2001\s2001.vcproj" Description="Converting project file 'H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\s2001\s2001.vcproj'.">
+</Event><Event ErrorLevel="1" Project="s2001" Source="s2001\s2001.vcproj" Description="VCWebServiceProxyGeneratorTool is no longer supported. The tool has been removed from your project settings.">
+</Event><Event ErrorLevel="1" Project="s2001" Source="s2001\s2001.vcproj" Description="MSB8012: $(TargetPath) ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\s2001\.\Release\s2001.dll') does not match the Linker's OutputFile property value '.\Release/s2001.dll' ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\Release/s2001.dll') in project configuration 'Release|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Link.OutputFile).">
+</Event><Event ErrorLevel="1" Project="s2001" Source="s2001\s2001.vcproj" Description="MSB8012: $(TargetPath) ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\s2001\.\Debug\s2001.dll') does not match the Linker's OutputFile property value '.\Debug/s2001.dll' ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\Debug/s2001.dll') in project configuration 'Debug|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Link.OutputFile).">
+</Event><Event ErrorLevel="0" Project="s2001" Source="s2001\s2001.vcproj" Description="Done converting to new project file 'H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\s2001\s2001.vcxproj'.">
+</Event><Event ErrorLevel="3" Project="s2001" Source="s2001\s2001.vcproj" Description="Converted">
+</Event><Event ErrorLevel="0" Project="s2001Editor" Source="s2001Editor\s2001Editor.vcproj" Description="Converting project file 'H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\s2001Editor\s2001Editor.vcproj'.">
+</Event><Event ErrorLevel="1" Project="s2001Editor" Source="s2001Editor\s2001Editor.vcproj" Description="VCWebServiceProxyGeneratorTool is no longer supported. The tool has been removed from your project settings.">
+</Event><Event ErrorLevel="1" Project="s2001Editor" Source="s2001Editor\s2001Editor.vcproj" Description="MSB8012: $(TargetPath) ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\s2001Editor\.\Debug\s2001Editor.dll') does not match the Linker's OutputFile property value '.\Debug/s2001Editor.dll' ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\Debug/s2001Editor.dll') in project configuration 'Debug|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Link.OutputFile).">
+</Event><Event ErrorLevel="1" Project="s2001Editor" Source="s2001Editor\s2001Editor.vcproj" Description="MSB8012: $(TargetPath) ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\s2001Editor\.\Release\s2001Editor.dll') does not match the Linker's OutputFile property value '.\Release/s2001Editor.dll' ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\Release/s2001Editor.dll') in project configuration 'Release|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Link.OutputFile).">
+</Event><Event ErrorLevel="0" Project="s2001Editor" Source="s2001Editor\s2001Editor.vcproj" Description="Done converting to new project file 'H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\s2001Editor\s2001Editor.vcxproj'.">
+</Event><Event ErrorLevel="3" Project="s2001Editor" Source="s2001Editor\s2001Editor.vcproj" Description="Converted">
+</Event><Event ErrorLevel="0" Project="s2001scene" Source="s2001scene\s2001scene.vcproj" Description="Converting project file 'H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\s2001scene\s2001scene.vcproj'.">
+</Event><Event ErrorLevel="1" Project="s2001scene" Source="s2001scene\s2001scene.vcproj" Description="VCWebServiceProxyGeneratorTool is no longer supported. The tool has been removed from your project settings.">
+</Event><Event ErrorLevel="1" Project="s2001scene" Source="s2001scene\s2001scene.vcproj" Description="MSB8012: $(TargetPath) ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\s2001scene\.\Release\s2001scene.dll') does not match the Linker's OutputFile property value '.\Release/s2001scene.dll' ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\Release/s2001scene.dll') in project configuration 'Release|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Link.OutputFile).">
+</Event><Event ErrorLevel="1" Project="s2001scene" Source="s2001scene\s2001scene.vcproj" Description="MSB8012: $(TargetPath) ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\s2001scene\.\Debug\s2001scene.dll') does not match the Linker's OutputFile property value '.\Debug/s2001scene.dll' ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\Debug/s2001scene.dll') in project configuration 'Debug|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Link.OutputFile).">
+</Event><Event ErrorLevel="0" Project="s2001scene" Source="s2001scene\s2001scene.vcproj" Description="Done converting to new project file 'H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\s2001scene\s2001scene.vcxproj'.">
+</Event><Event ErrorLevel="3" Project="s2001scene" Source="s2001scene\s2001scene.vcproj" Description="Converted">
+</Event><Event ErrorLevel="0" Project="sfglib" Source="sfglib\sfglib.vcproj" Description="Converting project file 'H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\sfglib\sfglib.vcproj'.">
+</Event><Event ErrorLevel="1" Project="sfglib" Source="sfglib\sfglib.vcproj" Description="VCWebServiceProxyGeneratorTool is no longer supported. The tool has been removed from your project settings.">
+</Event><Event ErrorLevel="1" Project="sfglib" Source="sfglib\sfglib.vcproj" Description="MSB8012: $(TargetPath) ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\sfglib\.\Debug\sfglib.dll') does not match the Linker's OutputFile property value '.\Debug/sfglib.dll' ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\Debug/sfglib.dll') in project configuration 'Debug|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Link.OutputFile).">
+</Event><Event ErrorLevel="1" Project="sfglib" Source="sfglib\sfglib.vcproj" Description="MSB8012: $(TargetPath) ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\sfglib\.\Release\sfglib.dll') does not match the Linker's OutputFile property value '.\Release/sfglib.dll' ('H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\Release/sfglib.dll') in project configuration 'Release|Win32'. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Link.OutputFile).">
+</Event><Event ErrorLevel="0" Project="sfglib" Source="sfglib\sfglib.vcproj" Description="Done converting to new project file 'H:\satoshi_documents\documents\Visual Studio 2010\Projects\genx\project\sfglib\sfglib.vcxproj'.">
+</Event><Event ErrorLevel="3" Project="sfglib" Source="sfglib\sfglib.vcproj" Description="Converted">
+</Event><Event ErrorLevel="0" Project="" Source="genx.sln" Description="ソリューションは正常に変換されました">
+</Event><Event ErrorLevel="3" Project="" Source="genx.sln" Description="Converted">
+</Event></UpgradeLog>
\ No newline at end of file
diff --git a/project/WIN32B55.MAK b/project/WIN32B55.MAK
new file mode 100644 (file)
index 0000000..0b844da
--- /dev/null
@@ -0,0 +1,240 @@
+## Borland C++ Compiler 5.5 generic make
+## Mc.N (kfb02545@nifty.ne.jp)
+##
+## 00.05.30 : first making 
+##
+
+##################################################
+## generic make setting...
+## If you change default .mak setting, BEGIN-END flag override.
+## note : * is default setting
+##################################################
+
+### <--- BEGIN BEGIN BEGIN ---> ###
+
+## TARGET = CONSOLE  # *CONSOLE, WIN32GUI, WIN32DLL, ... and more
+
+TARGET = WIN32GUI
+
+## MT     = 0        # *0(single thread), 1(multi thread)
+## ALIGN  = 8        # 1(BYTE), 2(WORD), 4(DWORD), *8(QWORD).
+## CPUOPT = 3        # *3(i386), 4(i486), 5(Pentium), 6(PentiumPro)
+
+CPUOPT = 5
+
+## DEBUG  = 0        # *0(release), 1(debug)
+
+DEBUG  = 1
+
+##                   # (note) BCB is not make debug symbol ;-(... You don't have debug.
+## OPTIMIZE = 1      # 0(No optimize), *1(size), 2(speed), 3(size&speed, and more). debug mode is 0.
+
+OPTIMIZE = 2
+
+## PRECOMPILE = 1    # *0(No use), 1(Use pre-compiled header)
+
+PRECOMPILE = 1
+
+## NOPATCHS  = 0     # 1 is no need patchs. default is 0 (under patch included)
+## WINVER    = 0x400 # (patch) Why? BCC5.5 is default 0x500. You need only W2K program?
+## IE_VER    = 0x300 # (patch) Why? BCC5.5 is default 0x501. I think no need IE function.
+## WINNT_VER = 0x400 # (patch)
+
+## BCBMAKEPATH = C:\Borland\Bcc55\bin
+##   If you cannot use default BCB make.exe, you must set Borland bin path.
+
+## ENABLEDIRECTX = 0 # 1 is include directx setting. default is 0
+## DIRECTXPATH = C:\mssdk
+##   If you cannot use default BCB include and lib, you must set directx path.
+##   (note) If you installed Platform SDK too, maybe you have meny error... I don't know ;-(.
+
+### <--- END END END ---> ###
+
+!ifndef BCBMAKEPATH
+BCBMAKEPATH = $(MAKEDIR)
+!endif
+INCLUDEPATH = $(BCBMAKEPATH)\..\include;$(INCLUDEPATH)
+LIBRARYPATH = $(BCBMAKEPATH)\..\lib;$(BCBMAKEPATH)\..\lib\PSDK;$(LIBRARYPATH)
+
+!ifndef ENABLEDIRECTX
+ENABLEDIRECTX = 0
+!endif
+!if $(ENABLEDIRECTX) != 0
+MT = 1
+!ifdef DIRECTXPATH
+INCLUDEPATH = $(DIRECTXPATH)\include;$(INCLUDEPATH)
+LIBRARYPATH = $(DIRECTXPATH)\lib\Borland;$(LIBRARYPATH)
+!else
+  !error [WIN32B55.MAK] You must set DirectX SDK path (DIRECTXPATH)! BCB lib is good for nothing.
+!endif
+!endif
+
+TGTFLG  =
+LIBSUF  =
+TARGSUF =
+LINKSUF =
+LINKSTARTUP =
+
+## multi thread support?
+!ifndef MT
+  MT = 0
+!endif
+!if $(MT) == 0
+  TGTFLG = $(TGTFLG) -WM-
+  LIBSUF =
+!else
+  !message [WIN32B55.MAK] Multi thread library used
+  TGTFLG = $(TGTFLG) -WM
+  LIBSUF = mt
+!endif
+
+## build target
+!ifndef TARGET
+  !message [WIN32B55.MAK] default target build is CONSOLE...
+  TARGET = CONSOLE
+!endif
+!if $(TARGET) == CONSOLE
+  TGTFLG  = $(TGTFLG) -WC
+  LIBSUF  = $(LIBSUF)
+  TARGSUF =
+  LINKSUF = -Tpe -ap
+  LINKSTARTUP = c0x32.obj
+!elif $(TARGET) == WIN32GUI
+  TGTFLG  = $(TGTFLG) -W
+  LIBSUF  = $(LIBSUF)
+  TARGSUF =
+  LINKSUF = -Tpe -aa
+  LINKSTARTUP = c0w32.obj
+!elif $(TARGET) == WIN32DLL
+  TGTFLG = $(TGTFLG) -WD
+  TARGSUF=R
+  LIBSUF=$(LIBSUF)i
+  LINKSUF = -Tpd -aa
+  LINKSTARTUP = c0d32.obj
+!else
+  !error 
+!endif
+
+## Alignment settting ---> DWORD
+!ifndef ALIGN
+  ALIGN = 8
+!endif
+!if !($(ALIGN)==1|| $(ALIGN)==2|| $(ALIGN)==4|| $(ALIGN)==8)
+  !error [WIN32B55.MAK] error found ALIGN.
+!endif
+
+## CPU Optimize ---> i386
+!ifndef CPUOPT
+  CPUOPT = 3
+!endif
+!if $(CPUOPT) < 3 || $(CPUOPT) > 6
+  !error [WIN32B55.MAK] error found CPUOPT.
+!endif
+
+## debug option
+!if $(DEBUG) != 0
+  !message [WIN32B55.MAK] debug build version
+  DEBFLG = -v
+  CDEBUG = -N
+!else
+  !message [WIN32B55.MAK] release build version
+!endif
+
+## Optimize compile
+!ifndef OPTIMIZE
+  OPTIMIZE = 1
+!endif
+!if $(OPTIMIZE) == 0 || $(DEBUG) != 0
+  CFLAGS  = $(CFLAGS) -Od
+!elif $(OPTIMIZE) == 1
+  CFLAGS  = $(CFLAGS) -O1
+!elif $(OPTIMIZE) == 2
+  CFLAGS  = $(CFLAGS) -O2
+!elif $(OPTIMIZE) == 3
+  CFLAGS  = $(CFLAGS) -O1 -O2 -Oi -Oc
+!else
+  !error [WIN32B55.MAK] error found OPTIMIZE.
+!endif
+
+## pre-compiled header
+!ifndef PRECOMPILE
+  PRECOMPILE = 0
+!endif
+!if $(PRECOMPILE) == 1
+  CFLAGS  = $(CFLAGS) -H -Hs
+!endif
+
+## patchs
+!ifndef NOPATCHS
+  NOPATCHS = 0
+!endif
+!if $(NOPATCHS) == 0
+!ifndef WINVER
+  WINVER = 0x400
+  !message [WIN32B55.MAK] default WINVER = 0x400.
+!endif
+
+!ifndef IE_VER
+  IE_VER = 0x300
+  !message [WIN32B55.MAK] default IE version = 0x300.
+!endif
+
+!ifndef WINNT_VER
+  WINNT_VER = 0x400
+  !message [WIN32B55.MAK] default WINNT version = 0x400.
+!endif
+
+PATCHDEF = $(PATCHDEF) -DWINVER=$(WINVER) -D_WIN32_IE=$(IE_VER) -D_WIN32_WINNT=$(WINNT_VER)
+
+!endif # NOPATCHS
+
+##
+## FLAGS
+##
+CFLAGS      = -c $(DEBFLG) $(CDEBUG) $(CFLAGS) -$(CPUOPT) -a$(ALIGN) $(TGTFLG) -I"$(INCLUDEPATH)" -L"$(LIBRARYPATH)" $(PATCHDEF)
+LINKFLAGS   = $(LINKSUF) $(DEBFLG) -c -x -L"$(LIBRARYPATH)"
+LINKLIBS    = import32.lib cw32$(LIBSUF).lib
+RCFLAGS     = -r -i"$(INCLUDEPATH)"
+
+
+!if $(ENABLEDIRECTX) != 0
+CFLAGS = -Vd $(CFLAGS)
+CFLAGS = $(CFLAGS) -Dsinf=(FLOAT)sin
+CFLAGS = $(CFLAGS) -Dcosf=(FLOAT)cos
+CFLAGS = $(CFLAGS) -Dasinf=(FLOAT)asin
+CFLAGS = $(CFLAGS) -Dacosf=(FLOAT)acos
+CFLAGS = $(CFLAGS) -Dsqrtf=(FLOAT)sqrt
+CFLAGS = $(CFLAGS) -Dexpf=(FLOAT)exp
+LINKLIBS = $(LINKLIBS) ole2w32.lib
+LINKLIBS = $(LINKLIBS) d3dim.lib d3drm.lib d3dxof.lib ddraw.lib dplayx.lib dsetup.lib dsound.lib dxguid.lib
+## LINKLIBS = $(LINKLIBS) dinput.lib
+## d3dframe=..\..\lib\borland\d3dframe.lib
+!endif
+
+
+##
+## standard rules
+##
+
+CC   = bcc32
+RC   = brc32
+AS   = tasm32
+CXX  = bcc32 -P
+CPP  = bcc32 -P
+CPP32 = cpp32
+LINKER = ilink32
+LINK   = ilink32
+LIBRARIAN = tlib /P128
+
+.asm.obj:
+  $(AS) $(AFLAGS) -n$(OUT) $&.asm
+
+.c.obj:
+  $(CC) $(CFLAGS) -n$(OUT) $&.c
+
+.cpp.obj:
+  $(CC) $(CFLAGS) -n$(OUT) $&.cpp
+
+.rc.res:
+  $(RC) $(RCFLAGS) $&.rc  -fo$(OUT)$&
+
diff --git a/project/WinMain.cpp b/project/WinMain.cpp
new file mode 100644 (file)
index 0000000..5da3706
--- /dev/null
@@ -0,0 +1,84 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Window\83\81\83C\83\93
+// \82±\82ê\82¾\82¯\82Í\82Í\82¸\82¹\82È\82¢\81D\81D\81D\81B
+//     \97\9a\97ð:
+// $Log: WinMain.cpp,v $
+// Revision 1.7  2001/10/28 21:45:06  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.6  2001/07/09 20:30:10  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.5  2001/07/01 21:30:34  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.4  2001/07/01 01:03:45  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.3  2001/05/13 20:04:24  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.2  2001/05/12 00:48:35  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//     2001/01/29 \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p\83\89\83C\83u\83\89\83\8a\82Ì\92Ç\89Á 
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+#define WINMAIN
+#define WIN32_LEAN_AND_MEAN
+#include "sfdebug.h"
+
+
+#include "windows.h"
+#include "windowsx.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+// WinMain --------------------------------------------------------------------
+typedef int (*WINMAINPROC)(HINSTANCE,HINSTANCE,LPSTR,int);
+
+int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance,
+                                       LPSTR lpszCmdParam, int nCmdShow)
+{
+#ifdef _DEBUG
+#ifndef _BORLAND
+       _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
+#endif
+#endif
+       HINSTANCE hGame = LoadLibrary("s2001.dll");     
+       if(hGame){
+               WINMAINPROC proc = (WINMAINPROC)GetProcAddress(hGame,"S2001Main");
+               if(proc){
+                       return (*proc)(hThisInstance,hPrevInstance,lpszCmdParam,nCmdShow);
+               } else {
+                       return -1;
+/*                     char * pm[1024];
+                               FormatMessage( 
+    FORMAT_MESSAGE_FROM_SYSTEM | 
+    FORMAT_MESSAGE_IGNORE_INSERTS,
+    NULL,
+    GetLastError(),
+
+    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // \83f\83t\83H\83\8b\83g\8c¾\8cê
+
+    (LPTSTR) &pm,
+
+    1024,
+
+    NULL 
+       );
+*/
+               }
+       } else {
+               return -1;
+       }
+};// WinMain
+
diff --git a/project/ZK01_h.html b/project/ZK01_h.html
new file mode 100644 (file)
index 0000000..9020851
--- /dev/null
@@ -0,0 +1,112 @@
+<html><head>
+<title>ZK01.h</title>
+</head>
+<body><pre>
+<p>ZK01.h</p>
+<font color="green">//@STATE=\8dì\90¬\92\86</font>
+<font color="green">//@DESCRIPTION ---------------------------------------------------------------</font>
+<font color="green">// ZK01.h: ZK01 \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X</font>
+<font color="green">//  \97\9a\97ð\81F</font>
+<font color="green">// $Log: ZK01.h,v $</font>
+<font color="green">// Revision 1.8  2001/07/09 20:30:10  fujiwara</font>
+<font color="green">// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý</font>
+<font color="green">//</font>
+<font color="green">// Revision 1.7  2001/07/01 01:03:45  fujiwara</font>
+<font color="green">// const \82Ì\8c©\92¼\82µ</font>
+<font color="green">// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß</font>
+<font color="green">//</font>
+<font color="green">// Revision 1.6  2001/06/03 09:22:32  fujiwara</font>
+<font color="green">// \92n\8fã\93G\83N\83\89\83X\82¨\82æ\82Ñ\8eG\8b\9b\93G\82Ì\94÷\92²\90®</font>
+<font color="green">//</font>
+<font color="green">// Revision 1.5  2001/05/29 01:12:10  fujiwara</font>
+<font color="green">// \8eG\8b\9b\83L\83\83\83\89(\94ò\8ds\95¨\81j\82Ì\8dì\90¬\81B\94z\92u\83G\83f\83B\83^\82Ì\83o\83O\8fC\90³</font>
+<font color="green">//</font>
+<font color="green">// Revision 1.4  2001/05/13 20:04:24  fujiwara</font>
+<font color="green">// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B</font>
+<font color="green">// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g</font>
+<font color="green">//</font>
+<font color="green">// Revision 1.3  2001/05/12 00:48:35  fujiwara</font>
+<font color="green">// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á</font>
+<font color="green">//</font>
+<font color="green">//@DESCRIPTION_END -----------------------------------------------------------</font>
+<font color="green">//@AUTHOR=S.F.</font>
+<font color="green">///////////////////////////////////////////////////////////////////////////////</font>
+
+<font color="blue">#<font color="blue">if</font></font> !defined(AFX_ZK01_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_)
+<font color="blue">#define</font> AFX_ZK01_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_
+
+<font color="blue">#<font color="blue">if</font></font> _MSC_VER &gt; 1000
+<font color="blue">#pragma</font> once
+<font color="blue">#endif</font> <font color="green">// _MSC_VER &gt; 1000</font>
+<font color="blue">#include</font> "AbstractEnemy.h"
+<font color="blue">namespace</font> <font color="darkblue">sf</font> {
+    <font color="blue">namespace</font> <font color="darkblue">application</font> {
+        <font color="blue">namespace</font> enemy {
+
+<font color="blue">class</font> <font color="Brown">ZK01</font> : <font color="blue">public</font> AbstractEnemy
+{
+<font color="blue">public</font>:
+    <font color="green">// LIFECYCLE //</font>
+    <font color="Brown">ZK01</font>();
+    <font color="blue">virtual</font> ~<font color="Brown">ZK01</font>();
+    <font color="green">// OPERATIONS //</font>
+    <font color="blue">void</font> initialize();
+    <font color="green">// \83L\83\83\83\89\83N\83^\81[\88Ú\93®</font>
+    <font color="blue">void</font> move(<font color="blue">void</font>);
+    <font color="blue">void</font> hit(<font color="red">Character</font> * <font color="blue">const</font> pDest);
+    <font color="blue">void</font> allBomb(<font color="blue">void</font>);
+    <font color="green">// \83e\83N\83X\83`\83\83\82È\82Ç\82Ì\83\8d\81[\83h</font>
+    <font color="blue">static</font> <font color="blue">void</font> load(<font color="blue">void</font>);
+    <font color="blue">static</font> <font color="blue">void</font> unload(<font color="blue">void</font>);
+
+    <font color="blue">static</font> <font color="red">Character</font> * <font color="blue">const</font> create(<font color="blue">float</font> x,<font color="blue">float</font> y ,<font color="blue">float</font> z,<font color="darkblue">sf</font>::<font color="darkblue">application</font>::scene::Game * <font color="blue">const</font> pGame,<font color="blue">int</font> index);
+    <font color="green">// ACCESS //</font>
+    <font color="darkblue">sf</font>::<font color="darkblue">application</font>::hit::<font color="red">Interface</font> * <font color="blue">const</font> hitObj(<font color="blue">void</font>){<font color="blue">return</font> &amp;mHitRect;};
+
+    <font color="blue">static</font> <font color="darkblue">sf</font>::<font color="darkblue">system</font>::<font color="darkblue">console</font>::sprite::Sprite * <font color="blue">const</font> pSprite(<font color="blue">void</font>){<font color="blue">return</font> mspSprite.get();};  
+    
+<font color="blue">private</font>:
+    enum State {
+        MOVE,
+        DEAD
+    } mState;
+
+    <font color="blue">void</font> die(<font color="blue">void</font>);
+
+<font color="green">//  float mRadian;</font>
+    <font color="blue">float</font> mDx;
+    <font color="blue">float</font> mDy;
+    <font color="blue">int</font> mDirCount;
+    <font color="blue">float</font> mDirSpeed;
+    
+    <font color="blue">int</font> mAnimCount;
+    <font color="darkblue">sf</font>::<font color="darkblue">application</font>::hit::HitRect mHitRect;
+    
+    <font color="darkblue">sf</font>::<font color="darkblue">system</font>::<font color="darkblue">console</font>::ObjRectangle mObj;
+    
+    <font color="blue">static</font> <font color="darkblue">sf</font>::<font color="darkblue">system</font>::<font color="darkblue">console</font>::sprite::PSprite mspSprite;
+    
+    <font color="blue">static</font> <font color="blue">const</font> <font color="darkblue">sf</font>::<font color="darkblue">system</font>::<font color="darkblue">console</font>::sprite::Info msSpriteInfo;
+    
+    <font color="blue">static</font> <font color="blue">const</font> <font color="blue">int</font> SCORE; 
+    <font color="blue">static</font> <font color="blue">int</font> mBalletTimer;
+    <font color="blue">static</font> <font color="blue">int</font> mBalletTimerInit;
+    
+    <font color="blue">bool</font> mbHit;
+    <font color="blue">bool</font> mbShoot;
+    
+    <font color="blue">int</font> mShootTimer;
+    
+    <font color="blue">float</font> mSpeed;
+    <font color="blue">float</font> mAccel;
+    <font color="blue">float</font> mDeltaTime;
+    <font color="blue">float</font> mDeltaTimeRev;
+
+};
+        }
+    }
+}
+
+<font color="blue">#endif</font> <font color="green">// !defined(AFX_ZK01_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_)</font>
+</pre></body>
+</html>
diff --git a/project/ZK01_h.txt b/project/ZK01_h.txt
new file mode 100644 (file)
index 0000000..8f0a414
--- /dev/null
@@ -0,0 +1,7 @@
+\r#if !defined(AFX_ZK01_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_)\r#define AFX_ZK01_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_\r\r#if _MSC_VER > 1000\r#pragma once\r#endif 
+#include "AbstractEnemy.h"\rnamespace sf {\r     namespace application {\r                namespace enemy {\r\rclass ZK01 : public AbstractEnemy\r{\rpublic:\r 
+       ZK01();\r        virtual ~ZK01();\r       
+       void initialize();\r     
+       void move(void);\r       void hit(Character * const pDest);\r     void allBomb(void);\r    
+       static void load(void);\r        static void unload(void);\r\r     static Character * const create(float x,float y ,float z,sf::application::scene::Game * const pGame,int index);\r        
+       sf::application::hit::Interface * const hitObj(void){return &mHitRect;};\r\r      static sf::system::console::sprite::Sprite * const pSprite(void){return mspSprite.get();};      \r       \rprivate:\r      enum State {\r           MOVE,\r          DEAD\r   } mState;\r\r     void die(void);\r\r       float mDx;\r     float mDy;\r     int mDirCount;\r float mDirSpeed;\r       \r       int mAnimCount;\r        sf::application::hit::HitRect mHitRect;\r        \r       sf::system::console::ObjRectangle mObj;\r        \r       static sf::system::console::sprite::PSprite mspSprite;\r \r       static const sf::system::console::sprite::Info msSpriteInfo;\r   \r       static const int SCORE; \r       static int mBalletTimer;\r       static int mBalletTimerInit;\r   \r       bool mbHit;\r    bool mbShoot;\r  \r       int mShootTimer;\r       \r       float mSpeed;\r  float mAccel;\r  float mDeltaTime;\r      float mDeltaTimeRev;\r\r};\r               }\r      }\r}\r\r#endif 
diff --git a/project/_UpgradeReport_Files/UpgradeReport.css b/project/_UpgradeReport_Files/UpgradeReport.css
new file mode 100644 (file)
index 0000000..fae98af
--- /dev/null
@@ -0,0 +1,207 @@
+BODY
+{
+       BACKGROUND-COLOR: white;
+       FONT-FAMILY: "Verdana", sans-serif;
+       FONT-SIZE: 100%;
+       MARGIN-LEFT: 0px;
+       MARGIN-TOP: 0px
+}
+P
+{
+       FONT-FAMILY: "Verdana", sans-serif;
+       FONT-SIZE: 70%;
+       LINE-HEIGHT: 12pt;
+       MARGIN-BOTTOM: 0px;
+       MARGIN-LEFT: 10px;
+       MARGIN-TOP: 10px
+}
+.note
+{
+       BACKGROUND-COLOR:  #ffffff;
+       COLOR: #336699;
+       FONT-FAMILY: "Verdana", sans-serif;
+       FONT-SIZE: 100%;
+       MARGIN-BOTTOM: 0px;
+       MARGIN-LEFT: 0px;
+       MARGIN-TOP: 0px;
+       PADDING-RIGHT: 10px
+}
+.infotable
+{
+       BACKGROUND-COLOR: #f0f0e0;
+       BORDER-BOTTOM: #ffffff 0px solid;
+       BORDER-COLLAPSE: collapse;
+       BORDER-LEFT: #ffffff 0px solid;
+       BORDER-RIGHT: #ffffff 0px solid;
+       BORDER-TOP: #ffffff 0px solid;
+       FONT-SIZE: 70%;
+       MARGIN-LEFT: 10px
+}
+.issuetable
+{
+       BACKGROUND-COLOR: #ffffe8;
+       BORDER-COLLAPSE: collapse;
+       COLOR: #000000;
+       FONT-SIZE: 100%;
+       MARGIN-BOTTOM: 10px;
+       MARGIN-LEFT: 13px;
+       MARGIN-TOP: 0px
+}
+.issuetitle
+{
+       BACKGROUND-COLOR: #ffffff;
+       BORDER-BOTTOM: #dcdcdc 1px solid;
+       BORDER-TOP: #dcdcdc 1px;
+       COLOR: #003366;
+       FONT-WEIGHT: normal
+}
+.header
+{
+       BACKGROUND-COLOR: #cecf9c;
+       BORDER-BOTTOM: #ffffff 1px solid;
+       BORDER-LEFT: #ffffff 1px solid;
+       BORDER-RIGHT: #ffffff 1px solid;
+       BORDER-TOP: #ffffff 1px solid;
+       COLOR: #000000;
+       FONT-WEIGHT: bold
+}
+.issuehdr
+{
+       BACKGROUND-COLOR: #E0EBF5;
+       BORDER-BOTTOM: #dcdcdc 1px solid;
+       BORDER-TOP: #dcdcdc 1px solid;
+       COLOR: #000000;
+       FONT-WEIGHT: normal
+}
+.issuenone
+{
+       BACKGROUND-COLOR: #ffffff;
+       BORDER-BOTTOM: 0px;
+       BORDER-LEFT: 0px;
+       BORDER-RIGHT: 0px;
+       BORDER-TOP: 0px;
+       COLOR: #000000;
+       FONT-WEIGHT: normal
+}
+.content
+{
+       BACKGROUND-COLOR: #e7e7ce;
+       BORDER-BOTTOM: #ffffff 1px solid;
+       BORDER-LEFT: #ffffff 1px solid;
+       BORDER-RIGHT: #ffffff 1px solid;
+       BORDER-TOP: #ffffff 1px solid;
+       PADDING-LEFT: 3px
+}
+.issuecontent
+{
+       BACKGROUND-COLOR: #ffffff;
+       BORDER-BOTTOM: #dcdcdc 1px solid;
+       BORDER-TOP: #dcdcdc 1px solid;
+       PADDING-LEFT: 3px
+}
+A:link
+{
+       COLOR: #cc6633;
+       TEXT-DECORATION: underline
+}
+A:visited
+{
+       COLOR: #cc6633;
+}
+A:active
+{
+       COLOR: #cc6633;
+}
+A:hover
+{
+       COLOR: #cc3300;
+       TEXT-DECORATION: underline
+}
+H1
+{
+       BACKGROUND-COLOR: #003366;
+       BORDER-BOTTOM: #336699 6px solid;
+       COLOR: #ffffff;
+       FONT-SIZE: 130%;
+       FONT-WEIGHT: normal;
+       MARGIN: 0em 0em 0em -20px;
+       PADDING-BOTTOM: 8px;
+       PADDING-LEFT: 30px;
+       PADDING-TOP: 16px
+}
+H2
+{
+       COLOR: #000000;
+       FONT-SIZE: 80%;
+       FONT-WEIGHT: bold;
+       MARGIN-BOTTOM: 3px;
+       MARGIN-LEFT: 10px;
+       MARGIN-TOP: 20px;
+       PADDING-LEFT: 0px
+}
+H3
+{
+       COLOR: #000000;
+       FONT-SIZE: 80%;
+       FONT-WEIGHT: bold;
+       MARGIN-BOTTOM: -5px;
+       MARGIN-LEFT: 10px;
+       MARGIN-TOP: 20px
+}
+H4
+{
+       COLOR: #000000;
+       FONT-SIZE: 70%;
+       FONT-WEIGHT: bold;
+       MARGIN-BOTTOM: 0px;
+       MARGIN-TOP: 15px;
+       PADDING-BOTTOM: 0px
+}
+UL
+{
+       COLOR: #000000;
+       FONT-SIZE: 70%;
+       LIST-STYLE: square;
+       MARGIN-BOTTOM: 0pt;
+       MARGIN-TOP: 0pt
+}
+OL
+{
+       COLOR: #000000;
+       FONT-SIZE: 70%;
+       LIST-STYLE: square;
+       MARGIN-BOTTOM: 0pt;
+       MARGIN-TOP: 0pt
+}
+LI
+{
+       LIST-STYLE: square;
+       MARGIN-LEFT: 0px
+}
+.expandable
+{
+       CURSOR: hand
+}
+.expanded
+{
+       color: black
+}
+.collapsed
+{
+       DISPLAY: none
+}
+.foot
+{
+BACKGROUND-COLOR: #ffffff;
+BORDER-BOTTOM: #cecf9c 1px solid;
+BORDER-TOP: #cecf9c 2px solid
+}
+.settings
+{
+MARGIN-LEFT: 25PX;
+}
+.help
+{
+TEXT-ALIGN: right;
+margin-right: 10px;
+}
diff --git a/project/_UpgradeReport_Files/UpgradeReport.xslt b/project/_UpgradeReport_Files/UpgradeReport.xslt
new file mode 100644 (file)
index 0000000..5109215
--- /dev/null
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
+
+    <xsl:key name="ProjectKey" match="Event" use="@Project"/>
+
+    <xsl:template match="Events" mode="createProjects">
+        <projects>
+            <xsl:for-each select="Event">
+                <!--xsl:sort select="@Project" order="descending"/-->
+                <xsl:if test="(1=position()) or (preceding-sibling::*[1]/@Project != @Project)">
+
+                    <xsl:variable name="ProjectName" select="@Project"/>
+
+                    <project>
+                        <xsl:attribute name="name">
+                            <xsl:value-of select="@Project"/>
+                        </xsl:attribute> 
+
+                        <xsl:if test="@Project=''">
+                        <xsl:attribute name="solution">
+                            <xsl:value-of select="@Solution"/>
+                        </xsl:attribute> 
+                        </xsl:if>
+
+                        <xsl:for-each select="key('ProjectKey', $ProjectName)">
+                            <!--xsl:sort select="@Source" /-->
+                            <xsl:if test="(1=position()) or (preceding-sibling::*[1]/@Source != @Source)">
+
+                                <source>
+                                    <xsl:attribute name="name">
+                                        <xsl:value-of select="@Source"/>
+                                    </xsl:attribute>
+
+                                    <xsl:variable name="Source">
+                                        <xsl:value-of select="@Source"/>
+                                    </xsl:variable>
+
+                                    <xsl:for-each select="key('ProjectKey', $ProjectName)[ @Source = $Source ]">
+
+                                        <event>
+                                            <xsl:attribute name="error-level">
+                                                <xsl:value-of select="@ErrorLevel"/>
+                                            </xsl:attribute> 
+                                            <xsl:attribute name="description">
+                                                <xsl:value-of select="@Description"/>
+                                            </xsl:attribute> 
+                                        </event>
+                                    </xsl:for-each>
+                                </source>
+                            </xsl:if>
+                        </xsl:for-each>
+
+                    </project>
+                </xsl:if>
+            </xsl:for-each>
+        </projects>
+    </xsl:template>
+
+    <xsl:template match="projects">
+    <xsl:for-each select="project">
+    <xsl:sort select="@Name" order="ascending"/>
+        <h2>
+        <xsl:if test="@solution"><a _locID="Solution">ソリューション</a>: <xsl:value-of select="@solution"/></xsl:if>
+        <xsl:if test="not(@solution)"><a _locID="Project">プロジェクト</a>: <xsl:value-of select="@name"/>
+            <xsl:for-each select="source">
+                <xsl:variable name="Hyperlink" select="@name"/>
+            <xsl:for-each select="event[@error-level='4']">
+             <A class="note"><xsl:attribute name="HREF"><xsl:value-of select="$Hyperlink"/></xsl:attribute><xsl:value-of select="@description"/></A>
+                </xsl:for-each>
+            </xsl:for-each>
+        </xsl:if>
+        </h2>
+
+        <table cellpadding="2" cellspacing="0" width="98%" border="1" bordercolor="white" class="infotable">
+            <tr>
+                <td nowrap="1" class="header" _locID="Filename">ファイル名</td>
+                <td nowrap="1" class="header" _locID="Status">状態</td>
+                <td nowrap="1" class="header" _locID="Errors">エラー</td>
+                <td nowrap="1" class="header" _locID="Warnings">警告</td>
+            </tr>
+
+            <xsl:for-each select="source">
+                <xsl:sort select="@name" order="ascending"/>
+                <xsl:variable name="source-id" select="generate-id(.)"/>
+
+                <xsl:if test="count(event)!=count(event[@error-level='4'])">
+
+                <tr class="row">
+                    <td class="content">
+                        <A HREF="javascript:"><xsl:attribute name="onClick">javascript:document.images['<xsl:value-of select="$source-id"/>'].click()</xsl:attribute><IMG border="0" _locID="IMG.alt" _locAttrData="alt" alt="セクションの展開/折りたたみ" class="expandable" height="11" onclick="changepic()" src="_UpgradeReport_Files/UpgradeReport_Plus.gif" width="9"><xsl:attribute name="name"><xsl:value-of select="$source-id"/></xsl:attribute><xsl:attribute name="child">src<xsl:value-of select="$source-id"/></xsl:attribute></IMG></A> <xsl:value-of select="@name"/> 
+                    </td>
+                    <td class="content">
+                        <xsl:if test="count(event[@error-level='3'])=1">
+                            <xsl:for-each select="event[@error-level='3']">
+                            <xsl:if test="@description='Converted'"><a _locID="Converted1">変換済み</a></xsl:if>
+                            <xsl:if test="@description!='Converted'"><xsl:value-of select="@description"/></xsl:if>
+                            </xsl:for-each>
+                        </xsl:if>
+                        <xsl:if test="count(event[@error-level='3'])!=1 and count(event[@error-level='3' and @description='Converted'])!=0"><a _locID="Converted2">変換済み</a>
+                        </xsl:if>
+                    </td>
+                    <td class="content"><xsl:value-of select="count(event[@error-level='2'])"/></td>
+                    <td class="content"><xsl:value-of select="count(event[@error-level='1'])"/></td>
+                </tr>
+
+                <tr class="collapsed" bgcolor="#ffffff">
+                    <xsl:attribute name="id">src<xsl:value-of select="$source-id"/></xsl:attribute>
+
+                    <td colspan="7">
+                        <table width="97%" border="1" bordercolor="#dcdcdc" rules="cols" class="issuetable">
+                            <tr>
+                                <td colspan="7" class="issuetitle" _locID="ConversionIssues">変換レポート - <xsl:value-of select="@name"/>:</td>
+                            </tr>
+
+                            <xsl:for-each select="event[@error-level!='3']">
+                                <xsl:if test="@error-level!='4'">
+                                <tr>
+                                    <td class="issuenone" style="border-bottom:solid 1 lightgray">
+                                        <xsl:value-of select="@description"/>
+                                    </td>
+                                </tr>
+                                </xsl:if>
+                            </xsl:for-each>
+                        </table>
+                    </td>
+                </tr>
+                </xsl:if>
+            </xsl:for-each>
+
+            <tr valign="top">
+                <td class="foot">
+                    <xsl:if test="count(source)!=1">
+                        <xsl:value-of select="count(source)"/><a _locID="file1"> ファイル</a>
+                    </xsl:if>
+                    <xsl:if test="count(source)=1">
+                        <a _locID="file2">1 ファイル</a>
+                    </xsl:if>
+                </td>
+                <td class="foot">
+                                       <a _locID="Converted3">変換済み</a>: <xsl:value-of select="count(source/event[@error-level='3' and @description='Converted'])"/><BR/>
+                                       <a _locID="NotConverted">変換されませんでした。</a>: <xsl:value-of select="count(source) - count(source/event[@error-level='3' and @description='Converted'])"/>
+                </td>
+                <td class="foot"><xsl:value-of select="count(source/event[@error-level='2'])"/></td>
+                <td class="foot"><xsl:value-of select="count(source/event[@error-level='1'])"/></td>
+            </tr>
+        </table>
+    </xsl:for-each>
+    </xsl:template>
+
+    <xsl:template match="Property">
+        <xsl:if test="@Name!='Date' and @Name!='Time' and @Name!='LogNumber' and @Name!='Solution'">
+        <tr><td nowrap="1"><b><xsl:value-of select="@Name"/>: </b><xsl:value-of select="@Value"/></td></tr>
+        </xsl:if>
+    </xsl:template>
+
+    <xsl:template match="UpgradeLog">
+        <html>
+            <head>
+                <META HTTP-EQUIV="Content-Type" content="text/html; charset=utf-8"/>
+                <link rel="stylesheet" href="_UpgradeReport_Files\UpgradeReport.css"/>
+                <title _locID="ConversionReport0">変換レポート 
+                    <xsl:if test="Properties/Property[@Name='LogNumber']">
+                        <xsl:value-of select="Properties/Property[@Name='LogNumber']/@Value"/>
+                    </xsl:if>
+                </title>
+                <script language="javascript">
+                    function outliner () {
+                        oMe = window.event.srcElement
+                        //get child element
+                        var child = document.all[event.srcElement.getAttribute("child",false)];
+                        //if child element exists, expand or collapse it.
+                        if (null != child)
+                            child.className = child.className == "collapsed" ? "expanded" : "collapsed";
+                    }
+
+                    function changepic() {
+                        uMe = window.event.srcElement;
+                        var check = uMe.src.toLowerCase();
+                        if (check.lastIndexOf("upgradereport_plus.gif") != -1)
+                        {
+                            uMe.src = "_UpgradeReport_Files/UpgradeReport_Minus.gif"
+                        }
+                        else
+                        {
+                            uMe.src = "_UpgradeReport_Files/UpgradeReport_Plus.gif"
+                        }
+                    }
+                </script>
+            </head>
+            <body topmargin="0" leftmargin="0" rightmargin="0" onclick="outliner();">
+                <h1 _locID="ConversionReport">変換レポート - <xsl:value-of select="Properties/Property[@Name='Solution']/@Value"/></h1>
+
+                <p><span class="note">
+                <b _locID="TimeOfConversion">変換時間:</b>  <xsl:value-of select="Properties/Property[@Name='Date']/@Value"/>  <xsl:value-of select="Properties/Property[@Name='Time']/@Value"/><br/>
+                </span></p>
+
+                <xsl:variable name="SortedEvents">
+                    <Events>
+                        <xsl:for-each select="Event">
+                            <xsl:sort select="@Project" order="ascending"/>
+                            <xsl:sort select="@Source" order="ascending"/>
+                            <xsl:sort select="@ErrorLevel" order="ascending"/>
+                            <Event>
+                                <xsl:attribute name="Project"><xsl:value-of select="@Project"/> </xsl:attribute> 
+                                <xsl:attribute name="Solution"><xsl:value-of select="/UpgradeLog/Properties/Property[@Name='Solution']/@Value"/> </xsl:attribute> 
+                                <xsl:attribute name="Source"><xsl:value-of select="@Source"/> </xsl:attribute> 
+                                <xsl:attribute name="ErrorLevel"><xsl:value-of select="@ErrorLevel"/> </xsl:attribute> 
+                                <xsl:attribute name="Description"><xsl:value-of select="@Description"/> </xsl:attribute> 
+                            </Event>
+                        </xsl:for-each>     
+                    </Events>
+                </xsl:variable>
+                
+                <xsl:variable name="Projects">
+                    <xsl:apply-templates select="msxsl:node-set($SortedEvents)/*" mode="createProjects"/>
+                </xsl:variable>
+
+                <xsl:apply-templates select="msxsl:node-set($Projects)/*"/>
+
+                <p></p><p>
+                <table class="note">
+                    <tr>
+                        <td nowrap="1">
+                            <b _locID="ConversionSettings">変換の設定</b>
+                        </td>
+                    </tr>
+                    <xsl:apply-templates select="Properties"/>
+                </table></p>
+            </body>
+        </html>
+    </xsl:template>
+</xsl:stylesheet>
diff --git a/project/_UpgradeReport_Files/UpgradeReport_Minus.gif b/project/_UpgradeReport_Files/UpgradeReport_Minus.gif
new file mode 100644 (file)
index 0000000..17751cb
Binary files /dev/null and b/project/_UpgradeReport_Files/UpgradeReport_Minus.gif differ
diff --git a/project/_UpgradeReport_Files/UpgradeReport_Plus.gif b/project/_UpgradeReport_Files/UpgradeReport_Plus.gif
new file mode 100644 (file)
index 0000000..f6009ca
Binary files /dev/null and b/project/_UpgradeReport_Files/UpgradeReport_Plus.gif differ
diff --git a/project/afxres.h b/project/afxres.h
new file mode 100644 (file)
index 0000000..7127763
--- /dev/null
@@ -0,0 +1,798 @@
+// This is a part of the Microsoft Foundation Classes C++ library.
+// Copyright (C) 1992-1998 Microsoft Corporation
+// All rights reserved.
+//
+// This source code is only intended as a supplement to the
+// Microsoft Foundation Classes Reference and related
+// electronic documentation provided with the library.
+// See these sources for detailed information regarding the
+// Microsoft Foundation Classes product.
+
+#ifndef __AFXRES_H__
+#define __AFXRES_H__
+
+#ifdef RC_INVOKED
+#ifndef _INC_WINDOWS
+#define _INC_WINDOWS
+       #include "winres.h"           // extract from windows header
+#endif
+#endif
+
+#ifdef _AFX_MINREBUILD
+#pragma component(minrebuild, off)
+#endif
+
+#ifdef APSTUDIO_INVOKED
+#define APSTUDIO_HIDDEN_SYMBOLS
+#endif
+
+#ifndef _MFC_VER
+#define _MFC_VER 0x0600
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+// MFC resource types (see Technical note TN024 for implementation details)
+
+#ifndef RC_INVOKED
+#define RT_DLGINIT  MAKEINTRESOURCE(240)
+#define RT_TOOLBAR  MAKEINTRESOURCE(241)
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+
+#ifdef APSTUDIO_INVOKED
+#undef APSTUDIO_HIDDEN_SYMBOLS
+#endif
+
+/////////////////////////////////////////////////////////////////////////////
+// General style bits etc
+
+// Tab Control styles
+#ifndef TCS_MULTILINE // new in later versions of Win32
+#define TCS_MULTILINE       0x0200
+#endif
+
+// ControlBar styles
+#define CBRS_ALIGN_LEFT     0x1000L
+#define CBRS_ALIGN_TOP      0x2000L
+#define CBRS_ALIGN_RIGHT    0x4000L
+#define CBRS_ALIGN_BOTTOM   0x8000L
+#define CBRS_ALIGN_ANY      0xF000L
+
+#define CBRS_BORDER_LEFT    0x0100L
+#define CBRS_BORDER_TOP     0x0200L
+#define CBRS_BORDER_RIGHT   0x0400L
+#define CBRS_BORDER_BOTTOM  0x0800L
+#define CBRS_BORDER_ANY     0x0F00L
+
+#define CBRS_TOOLTIPS       0x0010L
+#define CBRS_FLYBY          0x0020L
+#define CBRS_FLOAT_MULTI    0x0040L
+#define CBRS_BORDER_3D      0x0080L
+#define CBRS_HIDE_INPLACE   0x0008L
+#define CBRS_SIZE_DYNAMIC   0x0004L
+#define CBRS_SIZE_FIXED     0x0002L
+#define CBRS_FLOATING       0x0001L
+
+#if _MFC_VER >= 0x0600
+#define CBRS_GRIPPER        0x00400000L
+#endif
+
+#define CBRS_ORIENT_HORZ    (CBRS_ALIGN_TOP|CBRS_ALIGN_BOTTOM)
+#define CBRS_ORIENT_VERT    (CBRS_ALIGN_LEFT|CBRS_ALIGN_RIGHT)
+#define CBRS_ORIENT_ANY     (CBRS_ORIENT_HORZ|CBRS_ORIENT_VERT)
+
+#if _MFC_VER >= 0x0600
+#define CBRS_ALL            0x0040FFFFL
+#else
+#define CBRS_ALL            0xFFFFL
+#endif
+
+// the CBRS_ style is made up of an alignment style and a draw border style
+//  the alignment styles are mutually exclusive
+//  the draw border styles may be combined
+#define CBRS_NOALIGN        0x00000000L
+#define CBRS_LEFT           (CBRS_ALIGN_LEFT|CBRS_BORDER_RIGHT)
+#define CBRS_TOP            (CBRS_ALIGN_TOP|CBRS_BORDER_BOTTOM)
+#define CBRS_RIGHT          (CBRS_ALIGN_RIGHT|CBRS_BORDER_LEFT)
+#define CBRS_BOTTOM         (CBRS_ALIGN_BOTTOM|CBRS_BORDER_TOP)
+
+/////////////////////////////////////////////////////////////////////////////
+// Standard window components
+
+// Mode indicators in status bar - these are routed like commands
+#define ID_INDICATOR_EXT                0xE700  // extended selection indicator
+#define ID_INDICATOR_CAPS               0xE701  // cap lock indicator
+#define ID_INDICATOR_NUM                0xE702  // num lock indicator
+#define ID_INDICATOR_SCRL               0xE703  // scroll lock indicator
+#define ID_INDICATOR_OVR                0xE704  // overtype mode indicator
+#define ID_INDICATOR_REC                0xE705  // record mode indicator
+#define ID_INDICATOR_KANA               0xE706  // kana lock indicator
+
+#define ID_SEPARATOR                    0   // special separator value
+
+#ifndef RC_INVOKED  // code only
+// Standard control bars (IDW = window ID)
+#define AFX_IDW_CONTROLBAR_FIRST        0xE800
+#define AFX_IDW_CONTROLBAR_LAST         0xE8FF
+
+#define AFX_IDW_TOOLBAR                 0xE800  // main Toolbar for window
+#define AFX_IDW_STATUS_BAR              0xE801  // Status bar window
+#define AFX_IDW_PREVIEW_BAR             0xE802  // PrintPreview Dialog Bar
+#define AFX_IDW_RESIZE_BAR              0xE803  // OLE in-place resize bar
+#if _MFC_VER >= 0x0600
+#define AFX_IDW_REBAR                   0xE804  // COMCTL32 "rebar" Bar
+#define AFX_IDW_DIALOGBAR               0xE805  // CDialogBar
+#endif
+
+// Note: If your application supports docking toolbars, you should
+//  not use the following IDs for your own toolbars.  The IDs chosen
+//  are at the top of the first 32 such that the bars will be hidden
+//  while in print preview mode, and are not likely to conflict with
+//  IDs your application may have used succesfully in the past.
+
+#define AFX_IDW_DOCKBAR_TOP             0xE81B
+#define AFX_IDW_DOCKBAR_LEFT            0xE81C
+#define AFX_IDW_DOCKBAR_RIGHT           0xE81D
+#define AFX_IDW_DOCKBAR_BOTTOM          0xE81E
+#define AFX_IDW_DOCKBAR_FLOAT           0xE81F
+
+// Macro for mapping standard control bars to bitmask (limit of 32)
+#define AFX_CONTROLBAR_MASK(nIDC)   (1L << (nIDC - AFX_IDW_CONTROLBAR_FIRST))
+
+// parts of Main Frame
+#define AFX_IDW_PANE_FIRST              0xE900  // first pane (256 max)
+#define AFX_IDW_PANE_LAST               0xE9ff
+#define AFX_IDW_HSCROLL_FIRST           0xEA00  // first Horz scrollbar (16 max)
+#define AFX_IDW_VSCROLL_FIRST           0xEA10  // first Vert scrollbar (16 max)
+
+#define AFX_IDW_SIZE_BOX                0xEA20  // size box for splitters
+#define AFX_IDW_PANE_SAVE               0xEA21  // to shift AFX_IDW_PANE_FIRST
+#endif //!RC_INVOKED
+
+#ifndef APSTUDIO_INVOKED
+
+// common style for form views
+#define AFX_WS_DEFAULT_VIEW             (WS_CHILD | WS_VISIBLE | WS_BORDER)
+
+#endif //!APSTUDIO_INVOKED
+
+/////////////////////////////////////////////////////////////////////////////
+// Standard app configurable strings
+
+// for application title (defaults to EXE name or name in constructor)
+#define AFX_IDS_APP_TITLE               0xE000
+// idle message bar line
+#define AFX_IDS_IDLEMESSAGE             0xE001
+// message bar line when in shift-F1 help mode
+#define AFX_IDS_HELPMODEMESSAGE         0xE002
+// document title when editing OLE embedding
+#define AFX_IDS_APP_TITLE_EMBEDDING     0xE003
+// company name
+#define AFX_IDS_COMPANY_NAME            0xE004
+// object name when server is inplace
+#define AFX_IDS_OBJ_TITLE_INPLACE       0xE005
+
+/////////////////////////////////////////////////////////////////////////////
+// Standard Commands
+
+// File commands
+#define ID_FILE_NEW                     0xE100
+#define ID_FILE_OPEN                    0xE101
+#define ID_FILE_CLOSE                   0xE102
+#define ID_FILE_SAVE                    0xE103
+#define ID_FILE_SAVE_AS                 0xE104
+#define ID_FILE_PAGE_SETUP              0xE105
+#define ID_FILE_PRINT_SETUP             0xE106
+#define ID_FILE_PRINT                   0xE107
+#define ID_FILE_PRINT_DIRECT            0xE108
+#define ID_FILE_PRINT_PREVIEW           0xE109
+#define ID_FILE_UPDATE                  0xE10A
+#define ID_FILE_SAVE_COPY_AS            0xE10B
+#define ID_FILE_SEND_MAIL               0xE10C
+
+#define ID_FILE_MRU_FIRST               0xE110
+#define ID_FILE_MRU_FILE1               0xE110          // range - 16 max
+#define ID_FILE_MRU_FILE2               0xE111
+#define ID_FILE_MRU_FILE3               0xE112
+#define ID_FILE_MRU_FILE4               0xE113
+#define ID_FILE_MRU_FILE5               0xE114
+#define ID_FILE_MRU_FILE6               0xE115
+#define ID_FILE_MRU_FILE7               0xE116
+#define ID_FILE_MRU_FILE8               0xE117
+#define ID_FILE_MRU_FILE9               0xE118
+#define ID_FILE_MRU_FILE10              0xE119
+#define ID_FILE_MRU_FILE11              0xE11A
+#define ID_FILE_MRU_FILE12              0xE11B
+#define ID_FILE_MRU_FILE13              0xE11C
+#define ID_FILE_MRU_FILE14              0xE11D
+#define ID_FILE_MRU_FILE15              0xE11E
+#define ID_FILE_MRU_FILE16              0xE11F
+#define ID_FILE_MRU_LAST                0xE11F
+
+// Edit commands
+#define ID_EDIT_CLEAR                   0xE120
+#define ID_EDIT_CLEAR_ALL               0xE121
+#define ID_EDIT_COPY                    0xE122
+#define ID_EDIT_CUT                     0xE123
+#define ID_EDIT_FIND                    0xE124
+#define ID_EDIT_PASTE                   0xE125
+#define ID_EDIT_PASTE_LINK              0xE126
+#define ID_EDIT_PASTE_SPECIAL           0xE127
+#define ID_EDIT_REPEAT                  0xE128
+#define ID_EDIT_REPLACE                 0xE129
+#define ID_EDIT_SELECT_ALL              0xE12A
+#define ID_EDIT_UNDO                    0xE12B
+#define ID_EDIT_REDO                    0xE12C
+
+// Window commands
+#define ID_WINDOW_NEW                   0xE130
+#define ID_WINDOW_ARRANGE               0xE131
+#define ID_WINDOW_CASCADE               0xE132
+#define ID_WINDOW_TILE_HORZ             0xE133
+#define ID_WINDOW_TILE_VERT             0xE134
+#define ID_WINDOW_SPLIT                 0xE135
+#ifndef RC_INVOKED      // code only
+#define AFX_IDM_WINDOW_FIRST            0xE130
+#define AFX_IDM_WINDOW_LAST             0xE13F
+#define AFX_IDM_FIRST_MDICHILD          0xFF00  // window list starts here
+#endif //!RC_INVOKED
+
+// Help and App commands
+#define ID_APP_ABOUT                    0xE140
+#define ID_APP_EXIT                     0xE141
+#define ID_HELP_INDEX                   0xE142
+#define ID_HELP_FINDER                  0xE143
+#define ID_HELP_USING                   0xE144
+#define ID_CONTEXT_HELP                 0xE145      // shift-F1
+// special commands for processing help
+#define ID_HELP                         0xE146      // first attempt for F1
+#define ID_DEFAULT_HELP                 0xE147      // last attempt
+
+// Misc
+#define ID_NEXT_PANE                    0xE150
+#define ID_PREV_PANE                    0xE151
+
+// Format
+#define ID_FORMAT_FONT                  0xE160
+
+// OLE commands
+#define ID_OLE_INSERT_NEW               0xE200
+#define ID_OLE_EDIT_LINKS               0xE201
+#define ID_OLE_EDIT_CONVERT             0xE202
+#define ID_OLE_EDIT_CHANGE_ICON         0xE203
+#define ID_OLE_EDIT_PROPERTIES          0xE204
+#define ID_OLE_VERB_FIRST               0xE210     // range - 16 max
+#ifndef RC_INVOKED      // code only
+#define ID_OLE_VERB_LAST                0xE21F
+#endif //!RC_INVOKED
+
+// for print preview dialog bar
+#define AFX_ID_PREVIEW_CLOSE            0xE300
+#define AFX_ID_PREVIEW_NUMPAGE          0xE301      // One/Two Page button
+#define AFX_ID_PREVIEW_NEXT             0xE302
+#define AFX_ID_PREVIEW_PREV             0xE303
+#define AFX_ID_PREVIEW_PRINT            0xE304
+#define AFX_ID_PREVIEW_ZOOMIN           0xE305
+#define AFX_ID_PREVIEW_ZOOMOUT          0xE306
+
+// View commands (same number used as IDW used for control bar)
+#define ID_VIEW_TOOLBAR                 0xE800
+#define ID_VIEW_STATUS_BAR              0xE801
+#if _MFC_VER >= 0x0600
+#define ID_VIEW_REBAR                   0xE804
+#define ID_VIEW_AUTOARRANGE         0xE805
+       // E810 -> E81F must be kept in order for RANGE macros
+#define ID_VIEW_SMALLICON               0xE810
+#define ID_VIEW_LARGEICON               0xE811
+#define ID_VIEW_LIST                   0xE812
+#define ID_VIEW_DETAILS                 0xE813
+#define ID_VIEW_LINEUP                  0xE814
+#define ID_VIEW_BYNAME                  0xE815
+#define AFX_ID_VIEW_MINIMUM              ID_VIEW_SMALLICON
+#define AFX_ID_VIEW_MAXIMUM              ID_VIEW_BYNAME
+#endif
+       // E800 -> E8FF reserved for other control bar commands
+
+// RecordForm commands
+#define ID_RECORD_FIRST                 0xE900
+#define ID_RECORD_LAST                  0xE901
+#define ID_RECORD_NEXT                  0xE902
+#define ID_RECORD_PREV                  0xE903
+
+/////////////////////////////////////////////////////////////////////////////
+// Standard control IDs
+
+#ifdef IDC_STATIC
+#undef IDC_STATIC
+#endif
+#define IDC_STATIC              (-1)     // all static controls
+
+/////////////////////////////////////////////////////////////////////////////
+// Standard string error/warnings
+
+#ifndef RC_INVOKED      // code only
+#define AFX_IDS_SCFIRST                 0xEF00
+#endif //!RC_INVOKED
+
+#define AFX_IDS_SCSIZE                  0xEF00
+#define AFX_IDS_SCMOVE                  0xEF01
+#define AFX_IDS_SCMINIMIZE              0xEF02
+#define AFX_IDS_SCMAXIMIZE              0xEF03
+#define AFX_IDS_SCNEXTWINDOW            0xEF04
+#define AFX_IDS_SCPREVWINDOW            0xEF05
+#define AFX_IDS_SCCLOSE                 0xEF06
+#define AFX_IDS_SCRESTORE               0xEF12
+#define AFX_IDS_SCTASKLIST              0xEF13
+
+#define AFX_IDS_MDICHILD                0xEF1F
+
+#define AFX_IDS_DESKACCESSORY           0xEFDA
+
+// General strings
+#define AFX_IDS_OPENFILE                0xF000
+#define AFX_IDS_SAVEFILE                0xF001
+#define AFX_IDS_ALLFILTER               0xF002
+#define AFX_IDS_UNTITLED                0xF003
+#define AFX_IDS_SAVEFILECOPY            0xF004
+#define AFX_IDS_PREVIEW_CLOSE           0xF005
+#define AFX_IDS_UNNAMED_FILE            0xF006
+#define AFX_IDS_HIDE                    0xF011
+
+// MFC Standard Exception Error messages
+#define AFX_IDP_NO_ERROR_AVAILABLE      0xF020
+#define AFX_IDS_NOT_SUPPORTED_EXCEPTION 0xF021
+#define AFX_IDS_RESOURCE_EXCEPTION      0xF022
+#define AFX_IDS_MEMORY_EXCEPTION        0xF023
+#define AFX_IDS_USER_EXCEPTION          0xF024
+#define AFX_IDS_INVALID_ARG_EXCEPTION   0xF025
+
+// Printing and print preview strings
+#define AFX_IDS_PRINTONPORT             0xF040
+#define AFX_IDS_ONEPAGE                 0xF041
+#define AFX_IDS_TWOPAGE                 0xF042
+#define AFX_IDS_PRINTPAGENUM            0xF043
+#define AFX_IDS_PREVIEWPAGEDESC         0xF044
+#define AFX_IDS_PRINTDEFAULTEXT         0xF045
+#define AFX_IDS_PRINTDEFAULT            0xF046
+#define AFX_IDS_PRINTFILTER             0xF047
+#define AFX_IDS_PRINTCAPTION            0xF048
+#define AFX_IDS_PRINTTOFILE             0xF049
+
+
+// OLE strings
+#define AFX_IDS_OBJECT_MENUITEM         0xF080
+#define AFX_IDS_EDIT_VERB               0xF081
+#define AFX_IDS_ACTIVATE_VERB           0xF082
+#define AFX_IDS_CHANGE_LINK             0xF083
+#define AFX_IDS_AUTO                    0xF084
+#define AFX_IDS_MANUAL                  0xF085
+#define AFX_IDS_FROZEN                  0xF086
+#define AFX_IDS_ALL_FILES               0xF087
+// dynamically changing menu items
+#define AFX_IDS_SAVE_MENU               0xF088
+#define AFX_IDS_UPDATE_MENU             0xF089
+#define AFX_IDS_SAVE_AS_MENU            0xF08A
+#define AFX_IDS_SAVE_COPY_AS_MENU       0xF08B
+#define AFX_IDS_EXIT_MENU               0xF08C
+#define AFX_IDS_UPDATING_ITEMS          0xF08D
+// COlePasteSpecialDialog defines
+#define AFX_IDS_METAFILE_FORMAT         0xF08E
+#define AFX_IDS_DIB_FORMAT              0xF08F
+#define AFX_IDS_BITMAP_FORMAT           0xF090
+#define AFX_IDS_LINKSOURCE_FORMAT       0xF091
+#define AFX_IDS_EMBED_FORMAT            0xF092
+// other OLE utility strings
+#define AFX_IDS_PASTELINKEDTYPE         0xF094
+#define AFX_IDS_UNKNOWNTYPE             0xF095
+#define AFX_IDS_RTF_FORMAT              0xF096
+#define AFX_IDS_TEXT_FORMAT             0xF097
+// OLE datatype format error strings
+#define AFX_IDS_INVALID_CURRENCY        0xF098
+#define AFX_IDS_INVALID_DATETIME        0xF099
+#define AFX_IDS_INVALID_DATETIMESPAN    0xF09A
+
+// General error / prompt strings
+#define AFX_IDP_INVALID_FILENAME        0xF100
+#define AFX_IDP_FAILED_TO_OPEN_DOC      0xF101
+#define AFX_IDP_FAILED_TO_SAVE_DOC      0xF102
+#define AFX_IDP_ASK_TO_SAVE             0xF103
+#define AFX_IDP_FAILED_TO_CREATE_DOC    0xF104
+#define AFX_IDP_FILE_TOO_LARGE          0xF105
+#define AFX_IDP_FAILED_TO_START_PRINT   0xF106
+#define AFX_IDP_FAILED_TO_LAUNCH_HELP   0xF107
+#define AFX_IDP_INTERNAL_FAILURE        0xF108      // general failure
+#define AFX_IDP_COMMAND_FAILURE         0xF109      // command failure
+#define AFX_IDP_FAILED_MEMORY_ALLOC     0xF10A
+#define AFX_IDP_UNREG_DONE              0xF10B
+#define AFX_IDP_UNREG_FAILURE           0xF10C
+#define AFX_IDP_DLL_LOAD_FAILED         0xF10D
+#define AFX_IDP_DLL_BAD_VERSION         0xF10E
+
+// DDV parse errors
+#define AFX_IDP_PARSE_INT               0xF110
+#define AFX_IDP_PARSE_REAL              0xF111
+#define AFX_IDP_PARSE_INT_RANGE         0xF112
+#define AFX_IDP_PARSE_REAL_RANGE        0xF113
+#define AFX_IDP_PARSE_STRING_SIZE       0xF114
+#define AFX_IDP_PARSE_RADIO_BUTTON      0xF115
+#define AFX_IDP_PARSE_BYTE              0xF116
+#define AFX_IDP_PARSE_UINT              0xF117
+#define AFX_IDP_PARSE_DATETIME          0xF118
+#define AFX_IDP_PARSE_CURRENCY          0xF119
+
+// CFile/CArchive error strings for user failure
+#define AFX_IDP_FAILED_INVALID_FORMAT   0xF120
+#define AFX_IDP_FAILED_INVALID_PATH     0xF121
+#define AFX_IDP_FAILED_DISK_FULL        0xF122
+#define AFX_IDP_FAILED_ACCESS_READ      0xF123
+#define AFX_IDP_FAILED_ACCESS_WRITE     0xF124
+#define AFX_IDP_FAILED_IO_ERROR_READ    0xF125
+#define AFX_IDP_FAILED_IO_ERROR_WRITE   0xF126
+
+// OLE errors / prompt strings
+#define AFX_IDP_STATIC_OBJECT           0xF180
+#define AFX_IDP_FAILED_TO_CONNECT       0xF181
+#define AFX_IDP_SERVER_BUSY             0xF182
+#define AFX_IDP_BAD_VERB                0xF183
+#if _MFC_VER >= 0x0600
+#define AFX_IDS_NOT_DOCOBJECT                0xF184
+#endif
+#define AFX_IDP_FAILED_TO_NOTIFY        0xF185
+#define AFX_IDP_FAILED_TO_LAUNCH        0xF186
+#define AFX_IDP_ASK_TO_UPDATE           0xF187
+#define AFX_IDP_FAILED_TO_UPDATE        0xF188
+#define AFX_IDP_FAILED_TO_REGISTER      0xF189
+#define AFX_IDP_FAILED_TO_AUTO_REGISTER 0xF18A
+#define AFX_IDP_FAILED_TO_CONVERT       0xF18B
+#define AFX_IDP_GET_NOT_SUPPORTED       0xF18C
+#define AFX_IDP_SET_NOT_SUPPORTED       0xF18D
+#define AFX_IDP_ASK_TO_DISCARD          0xF18E
+#define AFX_IDP_FAILED_TO_CREATE        0xF18F
+
+// MAPI errors / prompt strings
+#define AFX_IDP_FAILED_MAPI_LOAD        0xF190
+#define AFX_IDP_INVALID_MAPI_DLL        0xF191
+#define AFX_IDP_FAILED_MAPI_SEND        0xF192
+
+#define AFX_IDP_FILE_NONE               0xF1A0
+#define AFX_IDP_FILE_GENERIC            0xF1A1
+#define AFX_IDP_FILE_NOT_FOUND          0xF1A2
+#define AFX_IDP_FILE_BAD_PATH           0xF1A3
+#define AFX_IDP_FILE_TOO_MANY_OPEN      0xF1A4
+#define AFX_IDP_FILE_ACCESS_DENIED      0xF1A5
+#define AFX_IDP_FILE_INVALID_FILE       0xF1A6
+#define AFX_IDP_FILE_REMOVE_CURRENT     0xF1A7
+#define AFX_IDP_FILE_DIR_FULL           0xF1A8
+#define AFX_IDP_FILE_BAD_SEEK           0xF1A9
+#define AFX_IDP_FILE_HARD_IO            0xF1AA
+#define AFX_IDP_FILE_SHARING            0xF1AB
+#define AFX_IDP_FILE_LOCKING            0xF1AC
+#define AFX_IDP_FILE_DISKFULL           0xF1AD
+#define AFX_IDP_FILE_EOF                0xF1AE
+
+#define AFX_IDP_ARCH_NONE               0xF1B0
+#define AFX_IDP_ARCH_GENERIC            0xF1B1
+#define AFX_IDP_ARCH_READONLY           0xF1B2
+#define AFX_IDP_ARCH_ENDOFFILE          0xF1B3
+#define AFX_IDP_ARCH_WRITEONLY          0xF1B4
+#define AFX_IDP_ARCH_BADINDEX           0xF1B5
+#define AFX_IDP_ARCH_BADCLASS           0xF1B6
+#define AFX_IDP_ARCH_BADSCHEMA          0xF1B7
+
+#define AFX_IDS_OCC_SCALEUNITS_PIXELS   0xF1C0
+
+// 0xf200-0xf20f reserved
+
+// font names and point sizes
+#define AFX_IDS_STATUS_FONT             0xF230
+#define AFX_IDS_TOOLTIP_FONT            0xF231
+#define AFX_IDS_UNICODE_FONT            0xF232
+#define AFX_IDS_MINI_FONT               0xF233
+
+// ODBC Database errors / prompt strings
+#ifndef RC_INVOKED      // code only
+#define AFX_IDP_SQL_FIRST                       0xF280
+#endif //!RC_INVOKED
+#define AFX_IDP_SQL_CONNECT_FAIL                0xF281
+#define AFX_IDP_SQL_RECORDSET_FORWARD_ONLY      0xF282
+#define AFX_IDP_SQL_EMPTY_COLUMN_LIST           0xF283
+#define AFX_IDP_SQL_FIELD_SCHEMA_MISMATCH       0xF284
+#define AFX_IDP_SQL_ILLEGAL_MODE                0xF285
+#define AFX_IDP_SQL_MULTIPLE_ROWS_AFFECTED      0xF286
+#define AFX_IDP_SQL_NO_CURRENT_RECORD           0xF287
+#define AFX_IDP_SQL_NO_ROWS_AFFECTED            0xF288
+#define AFX_IDP_SQL_RECORDSET_READONLY          0xF289
+#define AFX_IDP_SQL_SQL_NO_TOTAL                0xF28A
+#define AFX_IDP_SQL_ODBC_LOAD_FAILED            0xF28B
+#define AFX_IDP_SQL_DYNASET_NOT_SUPPORTED       0xF28C
+#define AFX_IDP_SQL_SNAPSHOT_NOT_SUPPORTED      0xF28D
+#define AFX_IDP_SQL_API_CONFORMANCE             0xF28E
+#define AFX_IDP_SQL_SQL_CONFORMANCE             0xF28F
+#define AFX_IDP_SQL_NO_DATA_FOUND               0xF290
+#define AFX_IDP_SQL_ROW_UPDATE_NOT_SUPPORTED    0xF291
+#define AFX_IDP_SQL_ODBC_V2_REQUIRED            0xF292
+#define AFX_IDP_SQL_NO_POSITIONED_UPDATES       0xF293
+#define AFX_IDP_SQL_LOCK_MODE_NOT_SUPPORTED     0xF294
+#define AFX_IDP_SQL_DATA_TRUNCATED              0xF295
+#define AFX_IDP_SQL_ROW_FETCH                   0xF296
+#define AFX_IDP_SQL_INCORRECT_ODBC              0xF297
+#define AFX_IDP_SQL_UPDATE_DELETE_FAILED        0xF298
+#define AFX_IDP_SQL_DYNAMIC_CURSOR_NOT_SUPPORTED    0xF299
+#define AFX_IDP_SQL_FIELD_NOT_FOUND             0xF29A
+#define AFX_IDP_SQL_BOOKMARKS_NOT_SUPPORTED     0xF29B
+#define AFX_IDP_SQL_BOOKMARKS_NOT_ENABLED       0xF29C
+
+#if _MFC_VER >= 0x0600
+// ODBC Database strings
+#define AFX_IDS_DELETED                         0xF29D
+#endif
+
+// DAO Database errors / prompt strings
+#ifndef RC_INVOKED      // code only
+#define AFX_IDP_DAO_FIRST                       0xF2B0
+#endif //!RC_INVOKED
+#define AFX_IDP_DAO_ENGINE_INITIALIZATION       0xF2B0
+#define AFX_IDP_DAO_DFX_BIND                    0xF2B1
+#define AFX_IDP_DAO_OBJECT_NOT_OPEN             0xF2B2
+
+// ICDAORecordset::GetRows Errors
+//  These are not placed in DAO Errors collection
+//  and must be handled directly by MFC.
+#define AFX_IDP_DAO_ROWTOOSHORT                 0xF2B3
+#define AFX_IDP_DAO_BADBINDINFO                 0xF2B4
+#define AFX_IDP_DAO_COLUMNUNAVAILABLE           0xF2B5
+
+/////////////////////////////////////////////////////////////////////////////
+// Strings for ISAPI support
+
+#define AFX_IDS_HTTP_TITLE              0xF2D1
+#define AFX_IDS_HTTP_NO_TEXT            0xF2D2
+#define AFX_IDS_HTTP_BAD_REQUEST        0xF2D3
+#define AFX_IDS_HTTP_AUTH_REQUIRED      0xF2D4
+#define AFX_IDS_HTTP_FORBIDDEN          0xF2D5
+#define AFX_IDS_HTTP_NOT_FOUND          0xF2D6
+#define AFX_IDS_HTTP_SERVER_ERROR       0xF2D7
+#define AFX_IDS_HTTP_NOT_IMPLEMENTED    0xF2D8
+
+/////////////////////////////////////////////////////////////////////////////
+// AFX implementation - control IDs (AFX_IDC)
+
+// Parts of dialogs
+#define AFX_IDC_LISTBOX                 100
+#define AFX_IDC_CHANGE                  101
+
+// for print dialog
+#define AFX_IDC_PRINT_DOCNAME           201
+#define AFX_IDC_PRINT_PRINTERNAME       202
+#define AFX_IDC_PRINT_PORTNAME          203
+#define AFX_IDC_PRINT_PAGENUM           204
+
+// Property Sheet control id's (determined with Spy++)
+#define ID_APPLY_NOW                    0x3021
+#define ID_WIZBACK                      0x3023
+#define ID_WIZNEXT                      0x3024
+#define ID_WIZFINISH                    0x3025
+#define AFX_IDC_TAB_CONTROL             0x3020
+
+/////////////////////////////////////////////////////////////////////////////
+// IDRs for standard components
+
+#ifndef RC_INVOKED  // code only
+// These are really COMMDLG dialogs, so there usually isn't a resource
+// for them, but these IDs are used as help IDs.
+#define AFX_IDD_FILEOPEN                28676
+#define AFX_IDD_FILESAVE                28677
+#define AFX_IDD_FONT                    28678
+#define AFX_IDD_COLOR                   28679
+#define AFX_IDD_PRINT                   28680
+#define AFX_IDD_PRINTSETUP              28681
+#define AFX_IDD_FIND                    28682
+#define AFX_IDD_REPLACE                 28683
+#endif //!RC_INVOKED
+
+// Standard dialogs app should leave alone (0x7801->)
+#define AFX_IDD_NEWTYPEDLG              30721
+#define AFX_IDD_PRINTDLG                30722
+#define AFX_IDD_PREVIEW_TOOLBAR         30723
+
+// Dialogs defined for OLE2UI library
+#define AFX_IDD_INSERTOBJECT            30724
+#define AFX_IDD_CHANGEICON              30725
+#define AFX_IDD_CONVERT                 30726
+#define AFX_IDD_PASTESPECIAL            30727
+#define AFX_IDD_EDITLINKS               30728
+#define AFX_IDD_FILEBROWSE              30729
+#define AFX_IDD_BUSY                    30730
+
+#define AFX_IDD_OBJECTPROPERTIES        30732
+#define AFX_IDD_CHANGESOURCE            30733
+
+// Standard cursors (0x7901->)
+       // AFX_IDC = Cursor resources
+#define AFX_IDC_CONTEXTHELP             30977       // context sensitive help
+#define AFX_IDC_MAGNIFY                 30978       // print preview zoom
+#define AFX_IDC_SMALLARROWS             30979       // splitter
+#define AFX_IDC_HSPLITBAR               30980       // splitter
+#define AFX_IDC_VSPLITBAR               30981       // splitter
+#define AFX_IDC_NODROPCRSR              30982       // No Drop Cursor
+#define AFX_IDC_TRACKNWSE               30983       // tracker
+#define AFX_IDC_TRACKNESW               30984       // tracker
+#define AFX_IDC_TRACKNS                 30985       // tracker
+#define AFX_IDC_TRACKWE                 30986       // tracker
+#define AFX_IDC_TRACK4WAY               30987       // tracker
+#define AFX_IDC_MOVE4WAY                30988       // resize bar (server only)
+
+// Mini frame window bitmap ID
+#define AFX_IDB_MINIFRAME_MENU          30994
+
+// CheckListBox checks bitmap ID
+#define AFX_IDB_CHECKLISTBOX_NT         30995
+#define AFX_IDB_CHECKLISTBOX_95         30996
+
+// AFX standard accelerator resources
+#define AFX_IDR_PREVIEW_ACCEL           30997
+
+// AFX standard ICON IDs (for MFC V1 apps) (0x7A01->)
+#define AFX_IDI_STD_MDIFRAME            31233
+#define AFX_IDI_STD_FRAME               31234
+
+/////////////////////////////////////////////////////////////////////////////
+// AFX OLE control implementation - control IDs (AFX_IDC)
+
+// Font property page
+#define AFX_IDC_FONTPROP                1000
+#define AFX_IDC_FONTNAMES               1001
+#define AFX_IDC_FONTSTYLES              1002
+#define AFX_IDC_FONTSIZES               1003
+#define AFX_IDC_STRIKEOUT               1004
+#define AFX_IDC_UNDERLINE               1005
+#define AFX_IDC_SAMPLEBOX               1006
+
+// Color property page
+#define AFX_IDC_COLOR_BLACK             1100
+#define AFX_IDC_COLOR_WHITE             1101
+#define AFX_IDC_COLOR_RED               1102
+#define AFX_IDC_COLOR_GREEN             1103
+#define AFX_IDC_COLOR_BLUE              1104
+#define AFX_IDC_COLOR_YELLOW            1105
+#define AFX_IDC_COLOR_MAGENTA           1106
+#define AFX_IDC_COLOR_CYAN              1107
+#define AFX_IDC_COLOR_GRAY              1108
+#define AFX_IDC_COLOR_LIGHTGRAY         1109
+#define AFX_IDC_COLOR_DARKRED           1110
+#define AFX_IDC_COLOR_DARKGREEN         1111
+#define AFX_IDC_COLOR_DARKBLUE          1112
+#define AFX_IDC_COLOR_LIGHTBROWN        1113
+#define AFX_IDC_COLOR_DARKMAGENTA       1114
+#define AFX_IDC_COLOR_DARKCYAN          1115
+#define AFX_IDC_COLORPROP               1116
+#define AFX_IDC_SYSTEMCOLORS            1117
+
+// Picture porperty page
+#define AFX_IDC_PROPNAME                1201
+#define AFX_IDC_PICTURE                 1202
+#define AFX_IDC_BROWSE                  1203
+#define AFX_IDC_CLEAR                   1204
+
+/////////////////////////////////////////////////////////////////////////////
+// IDRs for OLE control standard components
+
+// Standard propery page dialogs app should leave alone (0x7E01->)
+#define AFX_IDD_PROPPAGE_COLOR         32257
+#define AFX_IDD_PROPPAGE_FONT          32258
+#define AFX_IDD_PROPPAGE_PICTURE       32259
+
+#define AFX_IDB_TRUETYPE               32384
+
+/////////////////////////////////////////////////////////////////////////////
+// Standard OLE control strings
+
+// OLE Control page strings
+#define AFX_IDS_PROPPAGE_UNKNOWN        0xFE01
+#define AFX_IDS_COLOR_DESKTOP           0xFE04
+#define AFX_IDS_COLOR_APPWORKSPACE      0xFE05
+#define AFX_IDS_COLOR_WNDBACKGND        0xFE06
+#define AFX_IDS_COLOR_WNDTEXT           0xFE07
+#define AFX_IDS_COLOR_MENUBAR           0xFE08
+#define AFX_IDS_COLOR_MENUTEXT          0xFE09
+#define AFX_IDS_COLOR_ACTIVEBAR         0xFE0A
+#define AFX_IDS_COLOR_INACTIVEBAR       0xFE0B
+#define AFX_IDS_COLOR_ACTIVETEXT        0xFE0C
+#define AFX_IDS_COLOR_INACTIVETEXT      0xFE0D
+#define AFX_IDS_COLOR_ACTIVEBORDER      0xFE0E
+#define AFX_IDS_COLOR_INACTIVEBORDER    0xFE0F
+#define AFX_IDS_COLOR_WNDFRAME          0xFE10
+#define AFX_IDS_COLOR_SCROLLBARS        0xFE11
+#define AFX_IDS_COLOR_BTNFACE           0xFE12
+#define AFX_IDS_COLOR_BTNSHADOW         0xFE13
+#define AFX_IDS_COLOR_BTNTEXT           0xFE14
+#define AFX_IDS_COLOR_BTNHIGHLIGHT      0xFE15
+#define AFX_IDS_COLOR_DISABLEDTEXT      0xFE16
+#define AFX_IDS_COLOR_HIGHLIGHT         0xFE17
+#define AFX_IDS_COLOR_HIGHLIGHTTEXT     0xFE18
+#define AFX_IDS_REGULAR                 0xFE19
+#define AFX_IDS_BOLD                    0xFE1A
+#define AFX_IDS_ITALIC                  0xFE1B
+#define AFX_IDS_BOLDITALIC              0xFE1C
+#define AFX_IDS_SAMPLETEXT              0xFE1D
+#define AFX_IDS_DISPLAYSTRING_FONT      0xFE1E
+#define AFX_IDS_DISPLAYSTRING_COLOR     0xFE1F
+#define AFX_IDS_DISPLAYSTRING_PICTURE   0xFE20
+#define AFX_IDS_PICTUREFILTER           0xFE21
+#define AFX_IDS_PICTYPE_UNKNOWN         0xFE22
+#define AFX_IDS_PICTYPE_NONE            0xFE23
+#define AFX_IDS_PICTYPE_BITMAP          0xFE24
+#define AFX_IDS_PICTYPE_METAFILE        0xFE25
+#define AFX_IDS_PICTYPE_ICON            0xFE26
+#define AFX_IDS_COLOR_PPG               0xFE28
+#define AFX_IDS_COLOR_PPG_CAPTION       0xFE29
+#define AFX_IDS_FONT_PPG                0xFE2A
+#define AFX_IDS_FONT_PPG_CAPTION        0xFE2B
+#define AFX_IDS_PICTURE_PPG             0xFE2C
+#define AFX_IDS_PICTURE_PPG_CAPTION     0xFE2D
+#define AFX_IDS_PICTUREBROWSETITLE      0xFE30
+#define AFX_IDS_BORDERSTYLE_0           0xFE31
+#define AFX_IDS_BORDERSTYLE_1           0xFE32
+
+// OLE Control verb names
+#define AFX_IDS_VERB_EDIT               0xFE40
+#define AFX_IDS_VERB_PROPERTIES         0xFE41
+
+// OLE Control internal error messages
+#define AFX_IDP_PICTURECANTOPEN         0xFE83
+#define AFX_IDP_PICTURECANTLOAD         0xFE84
+#define AFX_IDP_PICTURETOOLARGE         0xFE85
+#define AFX_IDP_PICTUREREADFAILED       0xFE86
+
+// Standard OLE Control error strings
+#define AFX_IDP_E_ILLEGALFUNCTIONCALL       0xFEA0
+#define AFX_IDP_E_OVERFLOW                  0xFEA1
+#define AFX_IDP_E_OUTOFMEMORY               0xFEA2
+#define AFX_IDP_E_DIVISIONBYZERO            0xFEA3
+#define AFX_IDP_E_OUTOFSTRINGSPACE          0xFEA4
+#define AFX_IDP_E_OUTOFSTACKSPACE           0xFEA5
+#define AFX_IDP_E_BADFILENAMEORNUMBER       0xFEA6
+#define AFX_IDP_E_FILENOTFOUND              0xFEA7
+#define AFX_IDP_E_BADFILEMODE               0xFEA8
+#define AFX_IDP_E_FILEALREADYOPEN           0xFEA9
+#define AFX_IDP_E_DEVICEIOERROR             0xFEAA
+#define AFX_IDP_E_FILEALREADYEXISTS         0xFEAB
+#define AFX_IDP_E_BADRECORDLENGTH           0xFEAC
+#define AFX_IDP_E_DISKFULL                  0xFEAD
+#define AFX_IDP_E_BADRECORDNUMBER           0xFEAE
+#define AFX_IDP_E_BADFILENAME               0xFEAF
+#define AFX_IDP_E_TOOMANYFILES              0xFEB0
+#define AFX_IDP_E_DEVICEUNAVAILABLE         0xFEB1
+#define AFX_IDP_E_PERMISSIONDENIED          0xFEB2
+#define AFX_IDP_E_DISKNOTREADY              0xFEB3
+#define AFX_IDP_E_PATHFILEACCESSERROR       0xFEB4
+#define AFX_IDP_E_PATHNOTFOUND              0xFEB5
+#define AFX_IDP_E_INVALIDPATTERNSTRING      0xFEB6
+#define AFX_IDP_E_INVALIDUSEOFNULL          0xFEB7
+#define AFX_IDP_E_INVALIDFILEFORMAT         0xFEB8
+#define AFX_IDP_E_INVALIDPROPERTYVALUE      0xFEB9
+#define AFX_IDP_E_INVALIDPROPERTYARRAYINDEX 0xFEBA
+#define AFX_IDP_E_SETNOTSUPPORTEDATRUNTIME  0xFEBB
+#define AFX_IDP_E_SETNOTSUPPORTED           0xFEBC
+#define AFX_IDP_E_NEEDPROPERTYARRAYINDEX    0xFEBD
+#define AFX_IDP_E_SETNOTPERMITTED           0xFEBE
+#define AFX_IDP_E_GETNOTSUPPORTEDATRUNTIME  0xFEBF
+#define AFX_IDP_E_GETNOTSUPPORTED           0xFEC0
+#define AFX_IDP_E_PROPERTYNOTFOUND          0xFEC1
+#define AFX_IDP_E_INVALIDCLIPBOARDFORMAT    0xFEC2
+#define AFX_IDP_E_INVALIDPICTURE            0xFEC3
+#define AFX_IDP_E_PRINTERERROR              0xFEC4
+#define AFX_IDP_E_CANTSAVEFILETOTEMP        0xFEC5
+#define AFX_IDP_E_SEARCHTEXTNOTFOUND        0xFEC6
+#define AFX_IDP_E_REPLACEMENTSTOOLONG       0xFEC7
+
+/////////////////////////////////////////////////////////////////////////////
+
+#ifdef _AFX_MINREBUILD
+#pragma component(minrebuild, on)
+#endif
+
+#endif //__AFXRES_H__
+
+/////////////////////////////////////////////////////////////////////////////
diff --git a/project/blank.bmp b/project/blank.bmp
new file mode 100644 (file)
index 0000000..3bf9cd0
Binary files /dev/null and b/project/blank.bmp differ
diff --git a/project/buildcopy.PIF b/project/buildcopy.PIF
new file mode 100644 (file)
index 0000000..5a4dfd5
Binary files /dev/null and b/project/buildcopy.PIF differ
diff --git a/project/buildcopy.bat b/project/buildcopy.bat
new file mode 100644 (file)
index 0000000..9997cae
--- /dev/null
@@ -0,0 +1,11 @@
+xcopy "c:\my documents\genx\project\*.cpp" c:\s2001\source /D
+xcopy "c:\my documents\genx\project\*.h" c:\s2001\source /D
+xcopy "c:\my documents\genx\project\*.rc" c:\s2001\source /D
+xcopy "c:\my documents\genx\project\MAKEFILE" c:\s2001\source /D
+xcopy "c:\my documents\genx\project\*.ico" c:\s2001\source /D
+
+xcopy "c:\my documents\genx\project\sfglib\*.cpp" c:\s2001\source\sfglib /D
+xcopy "c:\my documents\genx\project\sfglib\*.h" c:\s2001\source\sfglib /D
+xcopy "c:\my documents\genx\project\sfglib\*.rc" c:\s2001\source\sfglib /D
+xcopy "c:\my documents\genx\project\sfglib\MAKEFILE" c:\s2001\source\sfglib /D
+xcopy "c:\my documents\genx\project\sfglib\*.ico" c:\s2001\source\sfglib /D
diff --git a/project/chrfile.dat b/project/chrfile.dat
new file mode 100644 (file)
index 0000000..fb1d637
Binary files /dev/null and b/project/chrfile.dat differ
diff --git a/project/debug.bat b/project/debug.bat
new file mode 100644 (file)
index 0000000..652bb8f
--- /dev/null
@@ -0,0 +1 @@
+make -D_DEBUG
\ No newline at end of file
diff --git a/project/dlldata.c b/project/dlldata.c
new file mode 100644 (file)
index 0000000..f7144cc
--- /dev/null
@@ -0,0 +1,38 @@
+/*********************************************************
+   DllData file -- generated by MIDL compiler 
+
+        DO NOT ALTER THIS FILE
+
+   This file is regenerated by MIDL on every IDL file compile.
+
+   To completely reconstruct this file, delete it and rerun MIDL
+   on all the IDL files in this DLL, specifying this file for the
+   /dlldata command line option
+
+*********************************************************/
+
+#define PROXY_DELEGATION
+
+#include <rpcproxy.h>
+
+#ifdef __cplusplus
+extern "C"   {
+#endif
+
+EXTERN_PROXY_FILE( test )
+
+
+PROXYFILE_LIST_START
+/* Start of list */
+  REFERENCE_PROXY_FILE( test ),
+/* End of list */
+PROXYFILE_LIST_END
+
+
+DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID )
+
+#ifdef __cplusplus
+}  /*extern "C" */
+#endif
+
+/* end of generated dlldata file */
diff --git a/project/episode.dat b/project/episode.dat
new file mode 100644 (file)
index 0000000..57595b6
--- /dev/null
@@ -0,0 +1,28 @@
+//
+//\83G\83s\83\\81[\83h\92è\8b`̧²Ù
+//
+NUMBER_OF_STAGES 1
+//Ì«ÝÄ̧²Ù
+FONT font.dat
+//\83^\83C\83g\83\8b\83X\83v\83\89\83C\83ģ²Ù       
+SPRITE_TITLE title.dat
+//\83^\83C\83g\83\8bBGM̧²Ù      
+BGM_TITLE xms\Growtofa.xm
+BGM_HISCORE xms\Bud.xm
+//\83Q\81[\83\80\83X\83^\81[\83gBGM
+BGM_GAMESTART xms\Fuji01.xm
+//\83Q\81[\83\80\83I\81[\83o\81[BGM
+BGM_GAMEOVER xms\Bud.xm
+//STAGE 1
+SCRIPT script1.dat
+SPRITE chrfile.dat
+ASSEMBLE assemble.dat
+MAP_BMP test2.dat
+MAP testmap2.dat
+MAP2_BMP back2.dat
+MAP2 testmap1.dat
+BGM_BOSS xms\Growtofa.xm
+BGM_MIDDLE_BOSS xms\Littlema.xm
+BGM_NORMAL xms\Elekfunk.xm
+SOUND_EFFECT sf1.dat
+
diff --git a/project/err.txt b/project/err.txt
new file mode 100644 (file)
index 0000000..1c52f40
--- /dev/null
@@ -0,0 +1,415 @@
+MAKE Version 5.2  Copyright (c) 1987, 2000 Borland
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\MainApp.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\MainApp.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8058 .\System.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\Scene.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Scene.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\SceneAuthor.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\SceneAuthor.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\SceneAuthor.cpp 67: \83p\83\89\83\81\81[\83^ 'pParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Author::Author(AuthorParameter *) )
+\8cx\8d\90 W8060 .\SceneAuthor.cpp 102: \82¨\82»\82ç\82­\95s\90³\82È\91ã\93ü(\8aÖ\90\94 Author::move() )
+\8cx\8d\90 W8057 .\SceneAuthor.cpp 185: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Author::endOfScene(Scene * const) )
+\8cx\8d\90 W8057 .\SceneAuthor.cpp 192: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Author::exitKeyPressed(Scene * const) )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\Obj.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Obj.cpp:
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\Obj2D.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Obj2D.cpp:
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\ObjQuadrangle.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\ObjQuadrangle.cpp:
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\ObjRectangle.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\ObjRectangle.cpp:
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\Fade.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Fade.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\AbstractScene.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\AbstractScene.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\title.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Title.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\Title.cpp 108: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Title::endOfScene(Scene * const) )
+\8cx\8d\90 W8057 .\Title.cpp 116: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Title::exitKeyPressed(Scene * const) )
+\8cx\8d\90 W8004 .\Title.cpp 231: 'pscene' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 Title::main() )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\Start.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Start.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\Start.cpp 173: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Start::endOfScene(Scene * const) )
+\8cx\8d\90 W8057 .\Start.cpp 180: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Start::exitKeyPressed(Scene * const) )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\Game.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Game.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\character.h 103: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8070 .\character.h 115: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8027 .\Hit.h 129: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 148: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 168: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 202: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8022 .\DispositionControl.h 200: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8027 .\DispositionControl.h 333: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\AbstractCharacter.h 92: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\Game.cpp 348: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Game::exitKeyPressed(Scene * const) )
+\8cx\8d\90 W8057 .\Game.cpp 379: \83p\83\89\83\81\81[\83^ 'extKeyCode' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Game::keyDown(const unsigned long,const unsigned long) )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\Over.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Over.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\Over.cpp 146: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Over::endOfScene(Scene * const) )
+\8cx\8d\90 W8057 .\Over.cpp 157: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Over::exitKeyPressed(Scene * const) )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\Obj3D.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Obj3D.cpp:
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\Obj3DL.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Obj3DL.cpp:
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\Character.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\character.cpp:
+\8cx\8d\90 W8027 .\character.h 103: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8070 .\character.h 115: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\MyShip.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\MyShip.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\character.h 103: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8070 .\character.h 115: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8027 .\Hit.h 129: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 148: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 168: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 202: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8022 .\DispositionControl.h 200: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8027 .\DispositionControl.h 333: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\AbstractCharacter.h 92: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\MyShip.cpp 279: \83p\83\89\83\81\81[\83^ 'pDest' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Ship::hit(Character * const) )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\Background.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\BackGround.cpp:
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8070 .\BackGround.cpp 132: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Background::unload() )
+\8cx\8d\90 W8004 .\BackGround.cpp 225: 'ey' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 Background::draw() )
+\8cx\8d\90 W8004 .\BackGround.cpp 224: 'ex' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 Background::draw() )
+\8cx\8d\90 W8004 .\BackGround.cpp 222: 'sx' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 Background::draw() )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\Sprite2D.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Sprite2D.cpp:
+\8cx\8d\90 W8058 .\System.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8004 .\Sprite2D.cpp 342: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 Sprite2D::draw(ObjRectangle *) )
+\8cx\8d\90 W8004 .\Sprite2D.cpp 434: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 Sprite2D::draw(ObjQuadrangle *) )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\Sprite3D.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Sprite3D.cpp:
+\8cx\8d\90 W8058 .\System.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8004 .\Sprite3D.cpp 325: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 Sprite3D::draw(Obj3DL *) )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\SpriteMesh.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\SpriteMesh.cpp:
+\8cx\8d\90 W8058 .\System.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8004 .\SpriteMesh.cpp 177: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 SpriteMesh::load(const Info *,const _D3DFORMAT,const unsigned long) )
+\8cx\8d\90 W8004 .\SpriteMesh.cpp 253: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 SpriteMesh::draw(Obj3DL *) )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\AbstractSprite.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\AbstractSprite.cpp:
+\8cx\8d\90 W8058 .\System.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\BGEditor.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\BGEditor.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\character.h 103: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8070 .\character.h 115: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8027 .\hit.h 129: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\hit.h 148: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\hit.h 168: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\hit.h 202: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8022 .\DispositionControl.h 200: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8027 .\DispositionControl.h 333: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\BGEditor.cpp 173: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::exitKeyPressed(Scene * const) )
+\8cx\8d\90 W8057 .\BGEditor.cpp 195: \83p\83\89\83\81\81[\83^ 'screenX' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::mouseWheel(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\BGEditor.cpp 195: \83p\83\89\83\81\81[\83^ 'screenY' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::mouseWheel(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\BGEditor.cpp 209: \83p\83\89\83\81\81[\83^ 'extKeyCode' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::keyDown(const unsigned long,const unsigned long) )
+\8cx\8d\90 W8057 .\BGEditor.cpp 229: \83p\83\89\83\81\81[\83^ 'mkey' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::rightButtonDown(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\BGEditor.cpp 372: \83p\83\89\83\81\81[\83^ 'screenX' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::CellSelector::leftButtonDown(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\BGEditor.cpp 372: \83p\83\89\83\81\81[\83^ 'screenY' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::CellSelector::leftButtonDown(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\BGEditor.cpp 372: \83p\83\89\83\81\81[\83^ 'mkey' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::CellSelector::leftButtonDown(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\BGEditor.cpp 393: \83p\83\89\83\81\81[\83^ 'screenX' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::CellSelector::mouseWheel(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\BGEditor.cpp 393: \83p\83\89\83\81\81[\83^ 'screenY' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::CellSelector::mouseWheel(const int,const int,const unsigned long) )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\Hit.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Hit.cpp:
+\8cx\8d\90 W8027 .\character.h 103: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8070 .\character.h 115: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8027 .\Hit.h 129: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 148: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 168: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 202: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\dispositioncontrol.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\DispositionControl.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\character.h 103: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8070 .\character.h 115: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8027 .\Hit.h 129: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 148: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 168: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 202: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\AbstractCharacter.h 92: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8022 .\DispositionControl.h 200: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8027 .\DispositionControl.h 333: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8066 .\DispositionControl.cpp 185: \8eÀ\8ds\82³\82ê\82È\82¢\83R\81[\83h(\8aÖ\90\94 Controller::findCommand(const std::string &) )
+\8cx\8d\90 W8004 .\DispositionControl.cpp 276: 'pe1' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 Controller::deleteCommand(const float,const float,const float,const TYPE) )
+\8cx\8d\90 W8004 .\DispositionControl.cpp 275: 'pe' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 Controller::deleteCommand(const float,const float,const float,const TYPE) )
+\8cx\8d\90 W8057 .\DispositionControl.cpp 455: \83p\83\89\83\81\81[\83^ 'position' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SetEnemy::exec(const float) )
+\8cx\8d\90 W8057 .\DispositionControl.cpp 559: \83p\83\89\83\81\81[\83^ 'position' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SetArmy::exec(const float) )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\AbstractCharacter.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\AbstractCharacter.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\character.h 103: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8070 .\character.h 115: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8027 .\Hit.h 129: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 148: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 168: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 202: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8022 .\DispositionControl.h 200: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8027 .\DispositionControl.h 333: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\AbstractCharacter.h 92: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\MyBullets.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\MyBullets.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\character.h 103: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8070 .\character.h 115: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8027 .\Hit.h 129: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 148: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 168: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 202: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8022 .\DispositionControl.h 200: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8027 .\DispositionControl.h 333: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\AbstractCharacter.h 92: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8004 .\MyBullets.cpp 157: 'count' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 Bullets::move() )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\Enemys.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Enemys.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\character.h 103: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8070 .\character.h 115: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8027 .\Hit.h 129: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 148: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 168: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 202: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8022 .\DispositionControl.h 200: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8027 .\DispositionControl.h 333: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\AbstractCharacter.h 92: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\ZK01.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\ZK01.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\character.h 103: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8070 .\character.h 115: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8027 .\Hit.h 129: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 148: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 168: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 202: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\AbstractCharacter.h 92: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8022 .\DispositionControl.h 200: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8027 .\DispositionControl.h 333: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\ZK01.cpp 281: \83p\83\89\83\81\81[\83^ 'pDest' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 ZK01::hit(Character * const) )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\Explosion.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Explosion.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\character.h 103: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8070 .\character.h 115: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8027 .\Hit.h 129: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 148: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 168: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 202: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8022 .\DispositionControl.h 200: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8027 .\DispositionControl.h 333: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\AbstractCharacter.h 92: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\Explosion.cpp 183: \83p\83\89\83\81\81[\83^ 'pDest' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Explosion::hit(Character * const) )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\Effects.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Effects.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\character.h 103: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8070 .\character.h 115: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8027 .\Hit.h 129: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 148: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 168: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 202: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\AbstractCharacter.h 92: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8004 .\Effects.cpp 139: 'count' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 Effects::move() )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\DispositionEditor.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\DispositionEditor.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\character.h 103: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8070 .\character.h 115: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8027 .\hit.h 129: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\hit.h 148: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\hit.h 168: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\hit.h 202: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8022 .\DispositionControl.h 200: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8027 .\DispositionControl.h 333: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\DispositionEditor.cpp 174: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 DispositionEditor::endOfScene(Scene * const) )
+\8cx\8d\90 W8057 .\DispositionEditor.cpp 183: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 DispositionEditor::exitKeyPressed(Scene * const) )
+\8cx\8d\90 W8004 .\DispositionEditor.cpp 259: 'max' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 DispositionEditor::keyDown(const unsigned long,const unsigned long) )
+\8cx\8d\90 W8057 .\DispositionEditor.cpp 266: \83p\83\89\83\81\81[\83^ 'mkey' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 DispositionEditor::rightButtonDown(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\DispositionEditor.cpp 285: \83p\83\89\83\81\81[\83^ 'screenX' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 DispositionEditor::leftButtonDown(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\DispositionEditor.cpp 285: \83p\83\89\83\81\81[\83^ 'screenY' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 DispositionEditor::leftButtonDown(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\DispositionEditor.cpp 285: \83p\83\89\83\81\81[\83^ 'mkey' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 DispositionEditor::leftButtonDown(const int,const int,const unsigned long) )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\EnemyBullets.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\EnemyBullets.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\character.h 103: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8070 .\character.h 115: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8027 .\Hit.h 129: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 148: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 168: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 202: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8022 .\DispositionControl.h 200: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8027 .\DispositionControl.h 333: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\AbstractCharacter.h 92: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8004 .\EnemyBullets.cpp 149: 'count' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 Bullets::move() )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\EB01.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\EB01.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\character.h 103: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8070 .\character.h 115: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8027 .\Hit.h 129: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 148: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 168: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 202: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8022 .\DispositionControl.h 200: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8027 .\DispositionControl.h 333: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\AbstractCharacter.h 92: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\EB01.cpp 211: \83p\83\89\83\81\81[\83^ 'pDest' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 EB01::hit(Character * const) )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND .\ea01.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\EA01.cpp:
+\8cx\8d\90 W8027 .\Scene.h 119: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 134: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 146: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Scene.h 159: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\character.h 103: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8070 .\character.h 115: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8027 .\Hit.h 129: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 148: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 168: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\Hit.h 202: for\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8022 .\DispositionControl.h 200: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8027 .\DispositionControl.h 333: while\82ð\8aÜ\82Þ\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢
+\8cx\8d\90 W8027 .\AbstractCharacter.h 92: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\system.h 36: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\83G\83\89\81[ E2285 .\EA01.cpp 178: 'PSprite::operator =(PSprite)' \82É\88ê\92v\82·\82é\82à\82Ì\82ª\8c©\82Â\82©\82ç\82È\82¢(\8aÖ\90\94 EA01::load() )
+\8cx\8d\90 W8057 .\EA01.cpp 361: \83p\83\89\83\81\81[\83^ 'z' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 EA01::create(float,float,float,scene::Game * const,int) )
+*** 1 errors in Compile ***
+
+** error 1 ** deleting .\obj\ea01.obj
diff --git a/project/fdcopy.PIF b/project/fdcopy.PIF
new file mode 100644 (file)
index 0000000..d75d813
Binary files /dev/null and b/project/fdcopy.PIF differ
diff --git a/project/fdcopy.bat b/project/fdcopy.bat
new file mode 100644 (file)
index 0000000..bf748b0
--- /dev/null
@@ -0,0 +1,7 @@
+format a:/q
+xcopy *.cpp a:\
+xcopy *.h a:\ 
+xcopy *.rc a:\ 
+copy makefile a:\
+copy *.mak a:\
+copy *.ico a:\
diff --git a/project/fdcopy.in b/project/fdcopy.in
new file mode 100644 (file)
index 0000000..4987374
--- /dev/null
@@ -0,0 +1,4 @@
+
+
+n
+
diff --git a/project/flip.lst b/project/flip.lst
new file mode 100644 (file)
index 0000000..06d61fd
--- /dev/null
@@ -0,0 +1 @@
+Debug Logging Start!
diff --git a/project/font.dat b/project/font.dat
new file mode 100644 (file)
index 0000000..ae4feac
Binary files /dev/null and b/project/font.dat differ
diff --git a/project/game.dat b/project/game.dat
new file mode 100644 (file)
index 0000000..4b4ac48
--- /dev/null
@@ -0,0 +1,4 @@
+1
+test.map
+test.dis
+sample.sgt
\ No newline at end of file
diff --git a/project/genx b/project/genx
new file mode 100644 (file)
index 0000000..542ee9f
--- /dev/null
@@ -0,0 +1,901 @@
+# Doxyfile 1.2.13
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# General configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
+# by quotes) that should identify the project.
+
+PROJECT_NAME           = s2001
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
+# This could be handy for archiving the generated documentation or 
+# if some version control system is used.
+
+PROJECT_NUMBER         = 
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
+# base path where the generated documentation will be put. 
+# If a relative path is entered, it will be relative to the location 
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = c:/inetpub/wwwroot/s2001
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
+# documentation generated by doxygen is written. Doxygen will use this 
+# information to generate all constant output in the proper language. 
+# The default language is English, other supported languages are: 
+# Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French, 
+# German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, 
+# Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish.
+
+OUTPUT_LANGUAGE        = Japanese
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
+# documentation are documented, even if no documentation was available. 
+# Private class members and static file members will be hidden unless 
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = YES
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file 
+# will be included in the documentation.
+
+EXTRACT_STATIC         = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
+# defined locally in source files will be included in the documentation. 
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
+# undocumented members of documented classes, files or namespaces. 
+# If set to NO (the default) these members will be included in the 
+# various overviews, but no documentation section is generated. 
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
+# undocumented classes that are normally visible in the class hierarchy. 
+# If set to NO (the default) these class will be included in the various 
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
+# include brief member descriptions after the members that are listed in 
+# the file and class documentation (similar to JavaDoc). 
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
+# the brief description of a member or function before the detailed description. 
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
+# Doxygen will generate a detailed section even if there is only a brief 
+# description.
+
+ALWAYS_DETAILED_SEC    = YES
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited 
+# members of a class in the documentation of that class as if those members were 
+# ordinary class members. Constructors, destructors and assignment operators of 
+# the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
+# path before files name in the file list and in the header files. If set 
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
+# can be used to strip a user defined part of the path. Stripping is 
+# only done if one of the specified strings matches the left-hand part of 
+# the path. It is allowed to use relative paths in the argument list.
+
+STRIP_FROM_PATH        = "c:\my documents\genx\project"
+
+# The INTERNAL_DOCS tag determines if documentation 
+# that is typed after a \internal command is included. If the tag is set 
+# to NO (the default) then the documentation will be excluded. 
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
+# doxygen to hide any special comment blocks from generated source code 
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
+# file names in lower case letters. If set to YES upper case letters are also 
+# allowed. This is useful if you have classes or files whose names only differ 
+# in case and if your file system supports case sensitive file names. Windows 
+# users are adviced to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
+# (but less readable) file names. This can be useful is your file systems 
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
+# will show members with their full class and namespace scopes in the 
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
+# will generate a verbatim copy of the header file for each class for 
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = YES
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
+# will put list of the files that are included by a file in the documentation 
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
+# will interpret the first line (until the first dot) of a JavaDoc-style 
+# comment as the brief description. If set to NO, the JavaDoc 
+# comments  will behave just like the Qt-style comments (thus requiring an 
+# explict @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF      = YES
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
+# member inherits the documentation from any documented member that it 
+# reimplements.
+
+INHERIT_DOCS           = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
+# will sort the (detailed) documentation of file and class members 
+# alphabetically by member name. If set to NO the members will appear in 
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
+# tag is set to YES, then doxygen will reuse the documentation of the first 
+# member in the group (if any) for the other members of the group. By default 
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 4
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or 
+# disable (NO) the todo list. This list is created by putting \todo 
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or 
+# disable (NO) the test list. This list is created by putting \test 
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or 
+# disable (NO) the bug list. This list is created by putting \bug 
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# This tag can be used to specify a number of aliases that acts 
+# as commands in the documentation. An alias has the form "name=value". 
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
+# put the command \sideeffect (or @sideeffect) in the documentation, which 
+# will result in a user defined paragraph with heading "Side Effects:". 
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                = 
+
+# The ENABLED_SECTIONS tag can be used to enable conditional 
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       = 
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
+# the initial value of a variable or define consist of for it to appear in 
+# the documentation. If the initializer consists of more lines than specified 
+# here it will be hidden. Use a value of 0 to hide initializers completely. 
+# The appearance of the initializer of individual variables and defines in the 
+# documentation can be controlled using \showinitializer or \hideinitializer 
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 
+# only. Doxygen will then generate output that is more tailored for C. 
+# For instance some of the names that are used will be different. The list 
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
+# at the bottom of the documentation of classes and structs. If set to YES the 
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated 
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are 
+# generated by doxygen. Possible values are YES and NO. If left blank 
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# The WARN_FORMAT tag determines the format of the warning messages that 
+# doxygen can produce. The string should contain the $file, $line, and $text 
+# tags, which will be replaced by the file and line number from which the 
+# warning originated and the warning text.
+
+WARN_FORMAT            = 
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning 
+# and error messages should be written. If left blank the output is written 
+# to stderr.
+
+WARN_LOGFILE           = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain 
+# documented source files. You may enter file names like "myfile.cpp" or 
+# directories like "/usr/src/myproject". Separate the files or directories 
+# with spaces.
+
+#INPUT                  = "j:\project\sfglib" j:/project/s2001scene j:/project/s2001editor j:/project/s2001game j:/project/s2001
+#INPUT                  = ./sfglib ./s2001scene ./s2001editor ./s2001game ./s2001
+INPUT                  = .
+
+# If the value of the INPUT tag contains directories, you can use the 
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank the following patterns are tested: 
+# *.c *.cc *.cxx *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp 
+# *.h++ *.idl
+
+#FILE_PATTERNS          = SYSTEM* INPUT* CONSOLE* SOUND*
+FILE_PATTERNS          = *.cpp *.h
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
+# should be searched for input files as well. Possible values are YES and NO. 
+# If left blank NO is used.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should 
+# excluded from the INPUT source files. This way you can easily exclude a 
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                = 
+
+# If the value of the INPUT tag contains directories, you can use the 
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
+# certain files from those directories.
+
+EXCLUDE_PATTERNS       = 
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or 
+# directories that contain example code fragments that are included (see 
+# the \include command).
+
+EXAMPLE_PATH           = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included.
+
+EXAMPLE_PATTERNS       = 
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
+# searched for input files to be used with the \include or \dontinclude 
+# commands irrespective of the value of the RECURSIVE tag. 
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or 
+# directories that contain image that are included in the documentation (see 
+# the \image command).
+
+IMAGE_PATH             = 
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should 
+# invoke to filter for each input file. Doxygen will invoke the filter program 
+# by executing (via popen()) the command <filter> <input-file>, where <filter> 
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
+# input file. Doxygen will then use the output that the filter program writes 
+# to standard output.
+
+INPUT_FILTER           = "nkf32 -Se "
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
+# INPUT_FILTER) will be used to filter the input files when producing source 
+# files to browse.
+
+FILTER_SOURCE_FILES    = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
+# be generated. Documented entities will be cross-referenced with these sources.
+
+SOURCE_BROWSER         = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body 
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
+# then for each documented function all documented 
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default) 
+# then for each documented function all documented entities 
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
+# of all compounds will be generated. Enable this if the project 
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = NO
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all 
+# classes will be put under the same header in the alphabetical index. 
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = 
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard header.
+
+HTML_HEADER            = 
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard footer.
+
+HTML_FOOTER            = 
+
+# The HTML_STYLESHEET tag can be used to specify a user defined cascading 
+# style sheet that is used by each HTML page. It can be used to 
+# fine-tune the look of the HTML output. If the tag is left blank doxygen 
+# will generate a default style sheet
+
+HTML_STYLESHEET        = 
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
+# files or namespaces will be aligned in HTML using tables. If set to 
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
+# will be generated that can be used as input for tools like the 
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
+# controls if a separate .chi index file is generated (YES) or that 
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
+# controls whether a binary table of contents is generated (YES) or a 
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members 
+# to the contents of the Html help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
+# top of each HTML page. The value NO (the default) enables the index and 
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20]) 
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that 
+# is generated for HTML Help). For this to work a browser that supports 
+# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, 
+# or Internet explorer 4.0+). Note that for large projects the tree generation 
+# can take a very long time. In such cases it is better to disable this feature. 
+# Windows users are probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = YES
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
+# used to set the initial width (in pixels) of the frame in which the tree 
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
+# generate Latex output.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = 
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
+# LaTeX documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used 
+# by the printer. Possible values are: a4, a4wide, letter, legal and 
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         = 
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
+# the generated latex document. The header should contain everything until 
+# the first chapter. If it is left blank doxygen will generate a 
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           = 
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
+# contain links (just like the HTML output) instead of page references 
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
+# plain latex in the generated Makefile. Set this option to YES to get a 
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
+# command to the generated LaTeX files. This will instruct LaTeX to keep 
+# running if errors occur, instead of asking the user for help. 
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
+# The RTF output is optimised for Word 97 and may not look very pretty with 
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = 
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
+# RTF documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
+# will contain hyperlink fields. The RTF file will 
+# contain links (just like the HTML output) instead of page references. 
+# This makes the output suitable for online browsing using WORD or other 
+# programs which support those fields. 
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's 
+# config file, i.e. a series of assigments. You only have to provide 
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    = 
+
+# Set optional variables used in the generation of an rtf document. 
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = 
+
+# The MAN_EXTENSION tag determines the extension that is added to 
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = 
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
+# then it will generate one additional man file for each entity 
+# documented in the real man page(s). These additional files 
+# only source the real man page, but without them the man command 
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will 
+# generate an XML file that captures the structure of 
+# the code including all documentation. Note that this 
+# feature is still experimental and incomplete at the 
+# moment.
+
+GENERATE_XML           = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
+# generate an AutoGen Definitions (see autogen.sf.net) file 
+# that captures the structure of the code including all 
+# documentation. Note that this feature is still experimental 
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
+# evaluate all C-preprocessor directives found in the sources and include 
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
+# names in the source code. If set to NO (the default) only conditional 
+# compilation will be performed. Macro expansion can be done in a controlled 
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
+# then the macro expansion is limited to the macros specified with the 
+# PREDEFINED and EXPAND_AS_PREDEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that 
+# contain include files that are not input files but should be processed by 
+# the preprocessor.
+
+INCLUDE_PATH           = ./ ./sfglib ./s2001scene ./s2001editor ./s2001game ./s2001
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
+# patterns (like *.h and *.hpp) to filter out the header-files in the 
+# directories. If left blank, the patterns specified with FILE_PATTERNS will 
+# be used.
+
+INCLUDE_FILE_PATTERNS  = 
+
+# The PREDEFINED tag can be used to specify one or more macro names that 
+# are defined before the preprocessor is started (similar to the -D option of 
+# gcc). The argument of the tag is a list of macros of the form: name 
+# or name=definition (no spaces). If the definition and the = are 
+# omitted =1 is assumed.
+
+PREDEFINED             = 
+
+# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then 
+# this tag can be used to specify a list of macro names that should be expanded. 
+# The macro definition that is found in the sources will be used. 
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      = 
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
+# doxygen's preprocessor will remove all function-like macros that are alone 
+# on a line and do not end with a semicolon. Such function macros are typically 
+# used for boiler-plate code, and will confuse the parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to external references   
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tagfiles.
+
+TAGFILES               = c:/inetpub/wwwroot/s2001/sfglib/sfglib.tag=c:/inetpub/wwwroot/s2001/sfglib/html
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       = 
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
+# in the class index. If set to NO only the inherited external classes 
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# The PERL_PATH should be the absolute path and name of the perl script 
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
+# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or 
+# super classes. Setting the tag to NO turns the diagrams off. Note that this 
+# option is superceded by the HAVE_DOT option below. This is only a fallback. It is 
+# recommended to install and use dot, since it yield more powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
+# available from the path. This tool is part of Graphviz, a graph visualization 
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = YES
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect inheritance relations. Setting this tag to YES will force the 
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect implementation dependencies (inheritance, containment, and 
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If set to YES, the inheritance and collaboration graphs will show the 
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide 
+# inheritance and usage relations if the target is undocumented 
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
+# tags are set to YES then doxygen will generate a graph for each documented 
+# file showing the direct and indirect include dependencies of the file with 
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
+# documented header file showing the documented files that directly or 
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be 
+# found. If left blank, it is assumed the dot tool can be found on the path.
+
+DOT_PATH               = "C:\Program Files\ATT\Graphviz\bin"
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that 
+# contain dot files that are included in the documentation (see the 
+# \dotfile command).
+
+DOTFILE_DIRS           = 
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_WIDTH    = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT   = 1024
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
+# generate a legend page explaining the meaning of the various boxes and 
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
+# remove the intermedate dot files that are used to generate 
+# the various graphs.
+
+DOT_CLEANUP            = YES
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to the search engine   
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be 
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE           = NO
+
+# The CGI_NAME tag should be the name of the CGI script that 
+# starts the search engine (doxysearch) with the correct parameters. 
+# A script with this name will be generated by doxygen.
+
+CGI_NAME               = 
+
+# The CGI_URL tag should be the absolute URL to the directory where the 
+# cgi binaries are located. See the documentation of your http daemon for 
+# details.
+
+CGI_URL                = 
+
+# The DOC_URL tag should be the absolute URL to the directory where the 
+# documentation is located. If left blank the absolute path to the 
+# documentation, with file:// prepended to it, will be used.
+
+DOC_URL                = 
+
+# The DOC_ABSPATH tag should be the absolute path to the directory where the 
+# documentation is located. If left blank the directory on the local machine 
+# will be used.
+
+DOC_ABSPATH            = 
+
+# The BIN_ABSPATH tag must point to the directory where the doxysearch binary 
+# is installed.
+
+BIN_ABSPATH            = 
+
+# The EXT_DOC_PATHS tag can be used to specify one or more paths to 
+# documentation generated for other projects. This allows doxysearch to search 
+# the documentation for these projects as well.
+
+EXT_DOC_PATHS          = 
diff --git a/project/genx.aps b/project/genx.aps
new file mode 100644 (file)
index 0000000..b1070a3
Binary files /dev/null and b/project/genx.aps differ
diff --git a/project/genx.clw b/project/genx.clw
new file mode 100644 (file)
index 0000000..e672642
--- /dev/null
@@ -0,0 +1,36 @@
+; CLW file contains information for the MFC ClassWizard
+
+[General Info]
+Version=1
+LastClass=
+LastTemplate=CDialog
+NewFileInclude1=#include "stdafx.h"
+NewFileInclude2=#include "genx.h"
+LastPage=0
+
+ClassCount=0
+
+ResourceCount=2
+Resource1=IDR_MENU1
+Resource2=IDD_ABOUT
+
+[MNU:IDR_MENU1]
+Type=1
+Class=?
+Command1=ID_RESET
+Command2=ID_EDITGAME
+Command3=ID_EXIT
+Command4=ID_BGM
+Command5=ID_EFFECT
+Command6=ID_DIK
+Command7=ID_ABOUT
+CommandCount=7
+
+[DLG:IDD_ABOUT]
+Type=1
+Class=?
+ControlCount=3
+Control1=IDOK,button,1342242817
+Control2=IDC_STATIC,static,1342308353
+Control3=IDC_STATIC,static,1342308353
+
diff --git a/project/genx.dep b/project/genx.dep
new file mode 100644 (file)
index 0000000..a9097e9
--- /dev/null
@@ -0,0 +1,213 @@
+# Microsoft Developer Studio Generated Dependency File, included by genx.mak
+
+.\Console.cpp : \
+       ".\Console.h"\
+       
+
+.\ConsoleImpl.cpp : \
+       "..\..\..\mssdk\include\basetsd.h"\
+       "..\..\..\mssdk\include\d3d8.h"\
+       "..\..\..\mssdk\include\d3d8caps.h"\
+       "..\..\..\mssdk\include\d3d8types.h"\
+       "..\..\..\mssdk\include\d3dx8.h"\
+       "..\..\..\mssdk\include\d3dx8core.h"\
+       "..\..\..\mssdk\include\d3dx8effect.h"\
+       "..\..\..\mssdk\include\d3dx8math.h"\
+       "..\..\..\mssdk\include\d3dx8math.inl"\
+       "..\..\..\mssdk\include\d3dx8mesh.h"\
+       "..\..\..\mssdk\include\d3dx8shape.h"\
+       "..\..\..\mssdk\include\d3dx8tex.h"\
+       "..\..\..\mssdk\include\dxerr8.h"\
+       "..\..\..\mssdk\include\dxfile.h"\
+       ".\Console.h"\
+       ".\ConsoleImpl.h"\
+       ".\Input.h"\
+       ".\Main.h"\
+       ".\Sound.h"\
+       ".\System.h"\
+       
+
+.\Obj.cpp : \
+       ".\Console.h"\
+       ".\Obj.h"\
+       ".\System.h"\
+       
+
+.\System.cpp : \
+       "..\..\..\mssdk\include\basetsd.h"\
+       "..\..\..\mssdk\include\d3d8.h"\
+       "..\..\..\mssdk\include\d3d8caps.h"\
+       "..\..\..\mssdk\include\d3d8types.h"\
+       "..\..\..\mssdk\include\d3dx8.h"\
+       "..\..\..\mssdk\include\d3dx8core.h"\
+       "..\..\..\mssdk\include\d3dx8effect.h"\
+       "..\..\..\mssdk\include\d3dx8math.h"\
+       "..\..\..\mssdk\include\d3dx8math.inl"\
+       "..\..\..\mssdk\include\d3dx8mesh.h"\
+       "..\..\..\mssdk\include\d3dx8shape.h"\
+       "..\..\..\mssdk\include\d3dx8tex.h"\
+       "..\..\..\mssdk\include\dls1.h"\
+       "..\..\..\mssdk\include\dmdls.h"\
+       "..\..\..\mssdk\include\dmerror.h"\
+       "..\..\..\mssdk\include\dmplugin.h"\
+       "..\..\..\mssdk\include\dmusbuff.h"\
+       "..\..\..\mssdk\include\dmusicc.h"\
+       "..\..\..\mssdk\include\dmusici.h"\
+       "..\..\..\mssdk\include\dxfile.h"\
+       ".\Console.h"\
+       ".\ConsoleImpl.h"\
+       ".\Input.h"\
+       ".\InputImpl.h"\
+       ".\Main.h"\
+       ".\MainApp.h"\
+       ".\Scene.h"\
+       ".\singleton.h"\
+       ".\Sound.h"\
+       ".\SoundImpl.h"\
+       ".\System.h"\
+       ".\SystemImpl.h"\
+       
+
+.\SystemImpl.cpp : \
+       "..\..\..\mssdk\include\basetsd.h"\
+       "..\..\..\mssdk\include\d3d8.h"\
+       "..\..\..\mssdk\include\d3d8caps.h"\
+       "..\..\..\mssdk\include\d3d8types.h"\
+       "..\..\..\mssdk\include\d3dx8.h"\
+       "..\..\..\mssdk\include\d3dx8core.h"\
+       "..\..\..\mssdk\include\d3dx8effect.h"\
+       "..\..\..\mssdk\include\d3dx8math.h"\
+       "..\..\..\mssdk\include\d3dx8math.inl"\
+       "..\..\..\mssdk\include\d3dx8mesh.h"\
+       "..\..\..\mssdk\include\d3dx8shape.h"\
+       "..\..\..\mssdk\include\d3dx8tex.h"\
+       "..\..\..\mssdk\include\dls1.h"\
+       "..\..\..\mssdk\include\dmdls.h"\
+       "..\..\..\mssdk\include\dmerror.h"\
+       "..\..\..\mssdk\include\dmplugin.h"\
+       "..\..\..\mssdk\include\dmusbuff.h"\
+       "..\..\..\mssdk\include\dmusicc.h"\
+       "..\..\..\mssdk\include\dmusici.h"\
+       "..\..\..\mssdk\include\dxfile.h"\
+       ".\Console.h"\
+       ".\ConsoleImpl.h"\
+       ".\Input.h"\
+       ".\InputImpl.h"\
+       ".\Main.h"\
+       ".\MainApp.h"\
+       ".\Scene.h"\
+       ".\singleton.h"\
+       ".\Sound.h"\
+       ".\SoundImpl.h"\
+       ".\System.h"\
+       ".\SystemImpl.h"\
+       
+
+.\genx.rc : \
+       ".\icon1.ico"\
+       
+
+.\Input.cpp : \
+       ".\Input.h"\
+       
+
+.\InputImpl.cpp : \
+       "..\..\..\mssdk\include\basetsd.h"\
+       "..\..\..\mssdk\include\dxerr8.h"\
+       ".\Console.h"\
+       ".\Input.h"\
+       ".\InputImpl.h"\
+       ".\Sound.h"\
+       ".\System.h"\
+       
+
+.\Main.cpp : \
+       ".\Main.h"\
+       
+
+.\MainApp.cpp : \
+       ".\Console.h"\
+       ".\Input.h"\
+       ".\Main.h"\
+       ".\MainApp.h"\
+       ".\Scene.h"\
+       ".\singleton.h"\
+       ".\Sound.h"\
+       ".\System.h"\
+       
+
+.\Scene.cpp : \
+       ".\Console.h"\
+       ".\Input.h"\
+       ".\Main.h"\
+       ".\Scene.h"\
+       ".\SceneAuthor.h"\
+       ".\singleton.h"\
+       ".\Sound.h"\
+       ".\System.h"\
+       
+
+.\SceneAuthor.cpp : \
+       ".\Console.h"\
+       ".\Input.h"\
+       ".\Main.h"\
+       ".\Scene.h"\
+       ".\SceneAuthor.h"\
+       ".\singleton.h"\
+       ".\Sound.h"\
+       ".\System.h"\
+       
+
+.\Sound.cpp : \
+       ".\Sound.h"\
+       
+
+.\SoundImpl.cpp : \
+       "..\..\..\mssdk\include\basetsd.h"\
+       "..\..\..\mssdk\include\dls1.h"\
+       "..\..\..\mssdk\include\dmdls.h"\
+       "..\..\..\mssdk\include\dmerror.h"\
+       "..\..\..\mssdk\include\dmplugin.h"\
+       "..\..\..\mssdk\include\dmusbuff.h"\
+       "..\..\..\mssdk\include\dmusicc.h"\
+       "..\..\..\mssdk\include\dmusici.h"\
+       ".\Console.h"\
+       ".\Input.h"\
+       ".\Sound.h"\
+       ".\SoundImpl.h"\
+       ".\System.h"\
+       
+
+.\WinMain.cpp : \
+       "..\..\..\mssdk\include\basetsd.h"\
+       "..\..\..\mssdk\include\d3d8.h"\
+       "..\..\..\mssdk\include\d3d8caps.h"\
+       "..\..\..\mssdk\include\d3d8types.h"\
+       "..\..\..\mssdk\include\d3dx8.h"\
+       "..\..\..\mssdk\include\d3dx8core.h"\
+       "..\..\..\mssdk\include\d3dx8effect.h"\
+       "..\..\..\mssdk\include\d3dx8math.h"\
+       "..\..\..\mssdk\include\d3dx8math.inl"\
+       "..\..\..\mssdk\include\d3dx8mesh.h"\
+       "..\..\..\mssdk\include\d3dx8shape.h"\
+       "..\..\..\mssdk\include\d3dx8tex.h"\
+       "..\..\..\mssdk\include\dls1.h"\
+       "..\..\..\mssdk\include\dmdls.h"\
+       "..\..\..\mssdk\include\dmerror.h"\
+       "..\..\..\mssdk\include\dmplugin.h"\
+       "..\..\..\mssdk\include\dmusbuff.h"\
+       "..\..\..\mssdk\include\dmusicc.h"\
+       "..\..\..\mssdk\include\dmusici.h"\
+       "..\..\..\mssdk\include\dxfile.h"\
+       ".\Console.h"\
+       ".\ConsoleImpl.h"\
+       ".\Input.h"\
+       ".\InputImpl.h"\
+       ".\Main.h"\
+       ".\MainApp.h"\
+       ".\singleton.h"\
+       ".\Sound.h"\
+       ".\SoundImpl.h"\
+       ".\System.h"\
+       ".\SystemImpl.h"\
+       
diff --git a/project/genx.dsp b/project/genx.dsp
new file mode 100644 (file)
index 0000000..3c4eb7d
--- /dev/null
@@ -0,0 +1,126 @@
+# Microsoft Developer Studio Project File - Name="genx" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** \95Ò\8fW\82µ\82È\82¢\82Å\82­\82¾\82³\82¢ **
+
+# TARGTYPE "Win32 (x86) Application" 0x0101
+
+CFG=genx - Win32 Release
+!MESSAGE \82±\82ê\82Í\97L\8cø\82ÈÒ²¸Ì§²Ù\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81\82±\82ÌÌßÛ¼Þª¸Ä\82ðËÞÙÄÞ\82·\82é\82½\82ß\82É\82Í NMAKE \82ð\8eg\97p\82µ\82Ä\82­\82¾\82³\82¢\81B
+!MESSAGE [Ò²¸Ì§²Ù\82Ì´¸½Îß°Ä] ºÏÝÄÞ\82ð\8eg\97p\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢
+!MESSAGE 
+!MESSAGE NMAKE /f "genx.mak".
+!MESSAGE 
+!MESSAGE NMAKE \82Ì\8eÀ\8ds\8e\9e\82É\8d\\90¬\82ð\8ew\92è\82Å\82«\82Ü\82·
+!MESSAGE ºÏÝÄޠײÝ\8fã\82ÅϸÛ\82Ì\90Ý\92è\82ð\92è\8b`\82µ\82Ü\82·\81B\97á:
+!MESSAGE 
+!MESSAGE NMAKE /f "genx.mak" CFG="genx - Win32 Release"
+!MESSAGE 
+!MESSAGE \91I\91ð\89Â\94\\82ÈËÞÙÄÞ Ó°ÄÞ:
+!MESSAGE 
+!MESSAGE "genx - Win32 Release" ("Win32 (x86) Application" \97p)
+!MESSAGE "genx - Win32 Debug" ("Win32 (x86) Application" \97p)
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "genx - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir ".\Release"
+# PROP BASE Intermediate_Dir ".\Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir ".\Release"
+# PROP Intermediate_Dir ".\Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
+# ADD CPP /nologo /G6 /W3 /Gi /GR /GX /Ob2 /I ".\sfglib" /I ".\s2001" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x411 /d "NDEBUG"
+# ADD RSC /l 0x411 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib ole32.lib advapi32.lib /nologo /subsystem:windows /incremental:yes /machine:I386
+# SUBTRACT LINK32 /pdb:none
+
+!ELSEIF  "$(CFG)" == "genx - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir ".\Debug"
+# PROP BASE Intermediate_Dir ".\Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir ".\Debug"
+# PROP Intermediate_Dir ".\Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
+# ADD CPP /nologo /G6 /W3 /GR /GX /ZI /Od /I ".\sfglib" /I ".\s2001" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE MTL /nologo /D "_DEBUG" /win32
+# ADD MTL /D "_DEBUG" /win32
+# SUBTRACT MTL /nologo /mktyplib203
+# ADD BASE RSC /l 0x411 /d "_DEBUG"
+# ADD RSC /l 0x411 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /debug /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib ole32.lib advapi32.lib /nologo /subsystem:windows /debug /machine:I386
+# SUBTRACT LINK32 /pdb:none
+
+!ENDIF 
+
+# Begin Target
+
+# Name "genx - Win32 Release"
+# Name "genx - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;for;f90"
+# Begin Source File
+
+SOURCE=.\genx.rc
+# End Source File
+# Begin Source File
+
+SOURCE=.\WinMain.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=.\icon1.ico
+# End Source File
+# End Group
+# Begin Group "DirectX"
+
+# PROP Default_Filter ""
+# End Group
+# Begin Group "stl"
+
+# PROP Default_Filter ""
+# End Group
+# End Target
+# End Project
diff --git a/project/genx.dsw b/project/genx.dsw
new file mode 100644 (file)
index 0000000..4c3432f
--- /dev/null
@@ -0,0 +1,77 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# \8cx\8d\90\82±\82ÌÜ°¸½Íß°½ Ì§²Ù \82ð\95Ò\8fW\82Ü\82½\82Í\8dí\8f\9c\82µ\82È\82¢\82Å\82­\82¾\82³\82¢!
+
+###############################################################################
+
+Project: "genx"=".\genx.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "s2001"=".\s2001\s2001.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "s2001Editor"=".\s2001Editor\s2001Editor.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "s2001scene"=".\s2001scene\s2001scene.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "sfglib"=".\sfglib\sfglib.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/project/genx.exe b/project/genx.exe
new file mode 100644 (file)
index 0000000..290a893
Binary files /dev/null and b/project/genx.exe differ
diff --git a/project/genx.mak b/project/genx.mak
new file mode 100644 (file)
index 0000000..597e8eb
--- /dev/null
@@ -0,0 +1,364 @@
+# Microsoft Developer Studio Generated NMAKE File, Based on genx.dsp
+!IF "$(CFG)" == ""
+CFG=genx - Win32 Release
+!MESSAGE \8d\\90¬\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81BÃÞÌ«ÙÄ\82Ì genx - Win32 Release \82ð\90Ý\92è\82µ\82Ü\82·\81B
+!ENDIF 
+
+!IF "$(CFG)" != "genx - Win32 Release" && "$(CFG)" != "genx - Win32 Debug"
+!MESSAGE \8ew\92è\82³\82ê\82½ ËÞÙÄÞ Ó°ÄÞ "$(CFG)" \82Í\90³\82µ\82­\82 \82è\82Ü\82¹\82ñ\81B
+!MESSAGE NMAKE \82Ì\8eÀ\8ds\8e\9e\82É\8d\\90¬\82ð\8ew\92è\82Å\82«\82Ü\82·
+!MESSAGE ºÏÝÄޠײÝ\8fã\82ÅϸÛ\82Ì\90Ý\92è\82ð\92è\8b`\82µ\82Ü\82·\81B\97á:
+!MESSAGE 
+!MESSAGE NMAKE /f "genx.mak" CFG="genx - Win32 Release"
+!MESSAGE 
+!MESSAGE \91I\91ð\89Â\94\\82ÈËÞÙÄÞ Ó°ÄÞ:
+!MESSAGE 
+!MESSAGE "genx - Win32 Release" ("Win32 (x86) Application" \97p)
+!MESSAGE "genx - Win32 Debug" ("Win32 (x86) Application" \97p)
+!MESSAGE 
+!ERROR \96³\8cø\82È\8d\\90¬\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82·\81B
+!ENDIF 
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+
+!IF  "$(CFG)" == "genx - Win32 Release"
+
+OUTDIR=.\Release
+INTDIR=.\Release
+# Begin Custom Macros
+OutDir=.\Release
+# End Custom Macros
+
+ALL : "$(OUTDIR)\genx.exe"
+
+
+CLEAN :
+       -@erase "$(INTDIR)\AbstractScene.obj"
+       -@erase "$(INTDIR)\Console.obj"
+       -@erase "$(INTDIR)\ConsoleImpl.obj"
+       -@erase "$(INTDIR)\Fade.obj"
+       -@erase "$(INTDIR)\genx.res"
+       -@erase "$(INTDIR)\Input.obj"
+       -@erase "$(INTDIR)\InputImpl.obj"
+       -@erase "$(INTDIR)\Main.obj"
+       -@erase "$(INTDIR)\MainApp.obj"
+       -@erase "$(INTDIR)\Obj.obj"
+       -@erase "$(INTDIR)\Obj2D.obj"
+       -@erase "$(INTDIR)\ObjQuadrangle.obj"
+       -@erase "$(INTDIR)\ObjRectangle.obj"
+       -@erase "$(INTDIR)\Scene.obj"
+       -@erase "$(INTDIR)\SceneAuthor.obj"
+       -@erase "$(INTDIR)\Sound.obj"
+       -@erase "$(INTDIR)\SoundImpl.obj"
+       -@erase "$(INTDIR)\System.obj"
+       -@erase "$(INTDIR)\SystemImpl.obj"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "$(INTDIR)\WinMain.obj"
+       -@erase "$(OUTDIR)\genx.exe"
+       -@erase "$(OUTDIR)\genx.ilk"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /G6 /ML /W3 /Gi /GR /GX /Ob2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fp"$(INTDIR)\genx.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+
+.c{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+MTL=midl.exe
+MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 
+RSC=rc.exe
+RSC_PROJ=/l 0x411 /fo"$(INTDIR)\genx.res" /d "NDEBUG" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\genx.bsc" 
+BSC32_SBRS= \
+       
+LINK32=link.exe
+LINK32_FLAGS=dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /incremental:yes /pdb:"$(OUTDIR)\genx.pdb" /machine:I386 /out:"$(OUTDIR)\genx.exe" 
+LINK32_OBJS= \
+       "$(INTDIR)\Console.obj" \
+       "$(INTDIR)\ConsoleImpl.obj" \
+       "$(INTDIR)\Obj.obj" \
+       "$(INTDIR)\Obj2D.obj" \
+       "$(INTDIR)\System.obj" \
+       "$(INTDIR)\SystemImpl.obj" \
+       "$(INTDIR)\AbstractScene.obj" \
+       "$(INTDIR)\Fade.obj" \
+       "$(INTDIR)\Input.obj" \
+       "$(INTDIR)\InputImpl.obj" \
+       "$(INTDIR)\Main.obj" \
+       "$(INTDIR)\MainApp.obj" \
+       "$(INTDIR)\ObjQuadrangle.obj" \
+       "$(INTDIR)\ObjRectangle.obj" \
+       "$(INTDIR)\Scene.obj" \
+       "$(INTDIR)\SceneAuthor.obj" \
+       "$(INTDIR)\Sound.obj" \
+       "$(INTDIR)\SoundImpl.obj" \
+       "$(INTDIR)\WinMain.obj" \
+       "$(INTDIR)\genx.res"
+
+"$(OUTDIR)\genx.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ELSEIF  "$(CFG)" == "genx - Win32 Debug"
+
+OUTDIR=.\Debug
+INTDIR=.\Debug
+# Begin Custom Macros
+OutDir=.\Debug
+# End Custom Macros
+
+ALL : "$(OUTDIR)\genx.exe"
+
+
+CLEAN :
+       -@erase "$(INTDIR)\AbstractScene.obj"
+       -@erase "$(INTDIR)\Console.obj"
+       -@erase "$(INTDIR)\ConsoleImpl.obj"
+       -@erase "$(INTDIR)\Fade.obj"
+       -@erase "$(INTDIR)\genx.res"
+       -@erase "$(INTDIR)\Input.obj"
+       -@erase "$(INTDIR)\InputImpl.obj"
+       -@erase "$(INTDIR)\Main.obj"
+       -@erase "$(INTDIR)\MainApp.obj"
+       -@erase "$(INTDIR)\Obj.obj"
+       -@erase "$(INTDIR)\Obj2D.obj"
+       -@erase "$(INTDIR)\ObjQuadrangle.obj"
+       -@erase "$(INTDIR)\ObjRectangle.obj"
+       -@erase "$(INTDIR)\Scene.obj"
+       -@erase "$(INTDIR)\SceneAuthor.obj"
+       -@erase "$(INTDIR)\Sound.obj"
+       -@erase "$(INTDIR)\SoundImpl.obj"
+       -@erase "$(INTDIR)\System.obj"
+       -@erase "$(INTDIR)\SystemImpl.obj"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "$(INTDIR)\vc60.pdb"
+       -@erase "$(INTDIR)\WinMain.obj"
+       -@erase "$(OUTDIR)\genx.exe"
+       -@erase "$(OUTDIR)\genx.ilk"
+       -@erase "$(OUTDIR)\genx.pdb"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /G6 /MTd /W3 /GR /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /Fp"$(INTDIR)\genx.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+
+.c{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+MTL=midl.exe
+MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32 
+RSC=rc.exe
+RSC_PROJ=/l 0x411 /fo"$(INTDIR)\genx.res" /d "_DEBUG" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\genx.bsc" 
+BSC32_SBRS= \
+       
+LINK32=link.exe
+LINK32_FLAGS=dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /incremental:yes /pdb:"$(OUTDIR)\genx.pdb" /debug /machine:I386 /out:"$(OUTDIR)\genx.exe" 
+LINK32_OBJS= \
+       "$(INTDIR)\Console.obj" \
+       "$(INTDIR)\ConsoleImpl.obj" \
+       "$(INTDIR)\Obj.obj" \
+       "$(INTDIR)\Obj2D.obj" \
+       "$(INTDIR)\System.obj" \
+       "$(INTDIR)\SystemImpl.obj" \
+       "$(INTDIR)\AbstractScene.obj" \
+       "$(INTDIR)\Fade.obj" \
+       "$(INTDIR)\Input.obj" \
+       "$(INTDIR)\InputImpl.obj" \
+       "$(INTDIR)\Main.obj" \
+       "$(INTDIR)\MainApp.obj" \
+       "$(INTDIR)\ObjQuadrangle.obj" \
+       "$(INTDIR)\ObjRectangle.obj" \
+       "$(INTDIR)\Scene.obj" \
+       "$(INTDIR)\SceneAuthor.obj" \
+       "$(INTDIR)\Sound.obj" \
+       "$(INTDIR)\SoundImpl.obj" \
+       "$(INTDIR)\WinMain.obj" \
+       "$(INTDIR)\genx.res"
+
+"$(OUTDIR)\genx.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ENDIF 
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("genx.dep")
+!INCLUDE "genx.dep"
+!ELSE 
+!MESSAGE Warning: cannot find "genx.dep"
+!ENDIF 
+!ENDIF 
+
+
+!IF "$(CFG)" == "genx - Win32 Release" || "$(CFG)" == "genx - Win32 Debug"
+SOURCE=.\Console.cpp
+
+"$(INTDIR)\Console.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\ConsoleImpl.cpp
+
+"$(INTDIR)\ConsoleImpl.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\Obj.cpp
+
+"$(INTDIR)\Obj.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\Obj2D.cpp
+
+"$(INTDIR)\Obj2D.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\System.cpp
+
+"$(INTDIR)\System.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\SystemImpl.cpp
+
+"$(INTDIR)\SystemImpl.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\AbstractScene.cpp
+
+"$(INTDIR)\AbstractScene.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\Fade.cpp
+
+"$(INTDIR)\Fade.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\genx.rc
+
+"$(INTDIR)\genx.res" : $(SOURCE) "$(INTDIR)"
+       $(RSC) $(RSC_PROJ) $(SOURCE)
+
+
+SOURCE=.\Input.cpp
+
+"$(INTDIR)\Input.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\InputImpl.cpp
+
+"$(INTDIR)\InputImpl.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\Main.cpp
+
+"$(INTDIR)\Main.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\MainApp.cpp
+
+"$(INTDIR)\MainApp.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\ObjQuadrangle.cpp
+
+"$(INTDIR)\ObjQuadrangle.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\ObjRectangle.cpp
+
+"$(INTDIR)\ObjRectangle.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\Scene.cpp
+
+"$(INTDIR)\Scene.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\SceneAuthor.cpp
+
+"$(INTDIR)\SceneAuthor.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\Sound.cpp
+
+"$(INTDIR)\Sound.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\SoundImpl.cpp
+
+"$(INTDIR)\SoundImpl.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\WinMain.cpp
+
+"$(INTDIR)\WinMain.obj" : $(SOURCE) "$(INTDIR)"
+
+
+
+!ENDIF 
+
diff --git a/project/genx.ncb b/project/genx.ncb
new file mode 100644 (file)
index 0000000..4b09d90
Binary files /dev/null and b/project/genx.ncb differ
diff --git a/project/genx.opt b/project/genx.opt
new file mode 100644 (file)
index 0000000..9a644a8
Binary files /dev/null and b/project/genx.opt differ
diff --git a/project/genx.plg b/project/genx.plg
new file mode 100644 (file)
index 0000000..caa1291
--- /dev/null
@@ -0,0 +1,25 @@
+<html>
+<body>
+<pre>
+<h1>ËÞÙÄÞ\82ÌÛ¸Þ</h1>
+<h3>
+--------------------\8d\\90¬: genx - Win32 Debug--------------------
+</h3>
+<h3>ºÏÝÄޠײÝ</h3>
+\88ê\8e\9ȩ²Ù "C:\WINDOWS\TEMP\RSPA294.TMP" \82ð\8dì\90¬\82µ\81A\8e\9f\82Ì\93à\97e\82ð\8bL\98^\82µ\82Ü\82·
+[
+/nologo /G6 /MLd /W3 /GR /GX /ZI /Od /I ".\sfglib" /I ".\s2001" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /Fp".\Debug/genx.pch" /YX /Fo".\Debug/" /Fd".\Debug/" /FD /c 
+"C:\My Documents\genx\project\WinMain.cpp"
+]
+Creating command line "cl.exe @C:\WINDOWS\TEMP\RSPA294.TMP" 
+<h3>±³ÄÌ߯Ġ³¨ÝÄÞ³</h3>
+ºÝÊß²Ù\92\86...
+WinMain.cpp
+
+
+
+<h3>\8c\8b\89Ê</h3>
+WinMain.obj - ´×° 0\81A\8cx\8d\90 0
+</pre>
+</body>
+</html>
diff --git a/project/genx.rc b/project/genx.rc
new file mode 100644 (file)
index 0000000..c84dd87
--- /dev/null
@@ -0,0 +1,114 @@
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//.
+//#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// \93ú\96{\8cê resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
+//#ifdef _WIN32
+//LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
+//#pragma code_page(932)
+//#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE 
+BEGIN
+    "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE 
+BEGIN
+    "#include ""afxres.h""\r\n"
+    "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE 
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_ICON1               ICON    DISCARDABLE     "icon1.ico"
+
+#ifndef _MAC
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,0,1
+ PRODUCTVERSION 1,0,0,1
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x40004L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "041104b0"
+        BEGIN
+            VALUE "CompanyName", " \0"
+            VALUE "FileDescription", "genx\0"
+            VALUE "FileVersion", "1, 0, 0, 1\0"
+            VALUE "InternalName", "genx\0"
+            VALUE "LegalCopyright", "Copyright (C) 1998\0"
+            VALUE "OriginalFilename", "genx.exe\0"
+            VALUE "ProductName", "  genx\0"
+            VALUE "ProductVersion", "1, 0, 0, 1\0"
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x411, 1200
+    END
+END
+
+#endif    // !_MAC
+
+#endif    // \93ú\96{\8cê resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
diff --git a/project/genx.sln b/project/genx.sln
new file mode 100644 (file)
index 0000000..d15a0b6
--- /dev/null
@@ -0,0 +1,55 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genx", "genx.vcxproj", "{EDF57DD2-D746-41F5-8EA9-DC95FD3B6E6A}"
+       ProjectSection(ProjectDependencies) = postProject
+               {B1B40E29-61C2-40DF-BE5B-94988F2571CE} = {B1B40E29-61C2-40DF-BE5B-94988F2571CE}
+               {A9583091-4F70-4817-8125-1BE5C54495E5} = {A9583091-4F70-4817-8125-1BE5C54495E5}
+               {06E944B8-E30F-44C2-A13E-29EC11D0D7BB} = {06E944B8-E30F-44C2-A13E-29EC11D0D7BB}
+               {6BAF91BD-0810-4884-A06E-4373F0AFC95D} = {6BAF91BD-0810-4884-A06E-4373F0AFC95D}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "s2001", "s2001\s2001.vcxproj", "{A9583091-4F70-4817-8125-1BE5C54495E5}"
+       ProjectSection(ProjectDependencies) = postProject
+               {B1B40E29-61C2-40DF-BE5B-94988F2571CE} = {B1B40E29-61C2-40DF-BE5B-94988F2571CE}
+               {06E944B8-E30F-44C2-A13E-29EC11D0D7BB} = {06E944B8-E30F-44C2-A13E-29EC11D0D7BB}
+               {6BAF91BD-0810-4884-A06E-4373F0AFC95D} = {6BAF91BD-0810-4884-A06E-4373F0AFC95D}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "s2001Editor", "s2001Editor\s2001Editor.vcxproj", "{B1B40E29-61C2-40DF-BE5B-94988F2571CE}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "s2001scene", "s2001scene\s2001scene.vcxproj", "{06E944B8-E30F-44C2-A13E-29EC11D0D7BB}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sfglib", "sfglib\sfglib.vcxproj", "{6BAF91BD-0810-4884-A06E-4373F0AFC95D}"
+EndProject
+Global
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution
+               Debug|Win32 = Debug|Win32
+               Release|Win32 = Release|Win32
+       EndGlobalSection
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution
+               {EDF57DD2-D746-41F5-8EA9-DC95FD3B6E6A}.Debug|Win32.ActiveCfg = Debug|Win32
+               {EDF57DD2-D746-41F5-8EA9-DC95FD3B6E6A}.Debug|Win32.Build.0 = Debug|Win32
+               {EDF57DD2-D746-41F5-8EA9-DC95FD3B6E6A}.Release|Win32.ActiveCfg = Release|Win32
+               {EDF57DD2-D746-41F5-8EA9-DC95FD3B6E6A}.Release|Win32.Build.0 = Release|Win32
+               {A9583091-4F70-4817-8125-1BE5C54495E5}.Debug|Win32.ActiveCfg = Debug|Win32
+               {A9583091-4F70-4817-8125-1BE5C54495E5}.Debug|Win32.Build.0 = Debug|Win32
+               {A9583091-4F70-4817-8125-1BE5C54495E5}.Release|Win32.ActiveCfg = Release|Win32
+               {A9583091-4F70-4817-8125-1BE5C54495E5}.Release|Win32.Build.0 = Release|Win32
+               {B1B40E29-61C2-40DF-BE5B-94988F2571CE}.Debug|Win32.ActiveCfg = Debug|Win32
+               {B1B40E29-61C2-40DF-BE5B-94988F2571CE}.Debug|Win32.Build.0 = Debug|Win32
+               {B1B40E29-61C2-40DF-BE5B-94988F2571CE}.Release|Win32.ActiveCfg = Release|Win32
+               {B1B40E29-61C2-40DF-BE5B-94988F2571CE}.Release|Win32.Build.0 = Release|Win32
+               {06E944B8-E30F-44C2-A13E-29EC11D0D7BB}.Debug|Win32.ActiveCfg = Debug|Win32
+               {06E944B8-E30F-44C2-A13E-29EC11D0D7BB}.Debug|Win32.Build.0 = Debug|Win32
+               {06E944B8-E30F-44C2-A13E-29EC11D0D7BB}.Release|Win32.ActiveCfg = Release|Win32
+               {06E944B8-E30F-44C2-A13E-29EC11D0D7BB}.Release|Win32.Build.0 = Release|Win32
+               {6BAF91BD-0810-4884-A06E-4373F0AFC95D}.Debug|Win32.ActiveCfg = Debug|Win32
+               {6BAF91BD-0810-4884-A06E-4373F0AFC95D}.Debug|Win32.Build.0 = Debug|Win32
+               {6BAF91BD-0810-4884-A06E-4373F0AFC95D}.Release|Win32.ActiveCfg = Release|Win32
+               {6BAF91BD-0810-4884-A06E-4373F0AFC95D}.Release|Win32.Build.0 = Release|Win32
+       EndGlobalSection
+       GlobalSection(SolutionProperties) = preSolution
+               HideSolutionNode = FALSE
+       EndGlobalSection
+EndGlobal
diff --git a/project/genx.sln.old b/project/genx.sln.old
new file mode 100644 (file)
index 0000000..c5fe827
--- /dev/null
@@ -0,0 +1,53 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genx", "genx.vcproj", "{EDF57DD2-D746-41F5-8EA9-DC95FD3B6E6A}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "s2001", "s2001\s2001.vcproj", "{A9583091-4F70-4817-8125-1BE5C54495E5}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "s2001Editor", "s2001Editor\s2001Editor.vcproj", "{B1B40E29-61C2-40DF-BE5B-94988F2571CE}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "s2001scene", "s2001scene\s2001scene.vcproj", "{06E944B8-E30F-44C2-A13E-29EC11D0D7BB}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sfglib", "sfglib\sfglib.vcproj", "{6BAF91BD-0810-4884-A06E-4373F0AFC95D}"
+       ProjectSection(ProjectDependencies) = postProject
+       EndProjectSection
+EndProject
+Global
+       GlobalSection(SolutionConfiguration) = preSolution
+               Debug = Debug
+               Release = Release
+       EndGlobalSection
+       GlobalSection(ProjectConfiguration) = postSolution
+               {EDF57DD2-D746-41F5-8EA9-DC95FD3B6E6A}.Debug.ActiveCfg = Debug|Win32
+               {EDF57DD2-D746-41F5-8EA9-DC95FD3B6E6A}.Debug.Build.0 = Debug|Win32
+               {EDF57DD2-D746-41F5-8EA9-DC95FD3B6E6A}.Release.ActiveCfg = Release|Win32
+               {EDF57DD2-D746-41F5-8EA9-DC95FD3B6E6A}.Release.Build.0 = Release|Win32
+               {A9583091-4F70-4817-8125-1BE5C54495E5}.Debug.ActiveCfg = Debug|Win32
+               {A9583091-4F70-4817-8125-1BE5C54495E5}.Debug.Build.0 = Debug|Win32
+               {A9583091-4F70-4817-8125-1BE5C54495E5}.Release.ActiveCfg = Release|Win32
+               {A9583091-4F70-4817-8125-1BE5C54495E5}.Release.Build.0 = Release|Win32
+               {B1B40E29-61C2-40DF-BE5B-94988F2571CE}.Debug.ActiveCfg = Debug|Win32
+               {B1B40E29-61C2-40DF-BE5B-94988F2571CE}.Debug.Build.0 = Debug|Win32
+               {B1B40E29-61C2-40DF-BE5B-94988F2571CE}.Release.ActiveCfg = Release|Win32
+               {B1B40E29-61C2-40DF-BE5B-94988F2571CE}.Release.Build.0 = Release|Win32
+               {06E944B8-E30F-44C2-A13E-29EC11D0D7BB}.Debug.ActiveCfg = Debug|Win32
+               {06E944B8-E30F-44C2-A13E-29EC11D0D7BB}.Debug.Build.0 = Debug|Win32
+               {06E944B8-E30F-44C2-A13E-29EC11D0D7BB}.Release.ActiveCfg = Release|Win32
+               {06E944B8-E30F-44C2-A13E-29EC11D0D7BB}.Release.Build.0 = Release|Win32
+               {6BAF91BD-0810-4884-A06E-4373F0AFC95D}.Debug.ActiveCfg = Debug|Win32
+               {6BAF91BD-0810-4884-A06E-4373F0AFC95D}.Debug.Build.0 = Debug|Win32
+               {6BAF91BD-0810-4884-A06E-4373F0AFC95D}.Release.ActiveCfg = Release|Win32
+               {6BAF91BD-0810-4884-A06E-4373F0AFC95D}.Release.Build.0 = Release|Win32
+       EndGlobalSection
+       GlobalSection(ExtensibilityGlobals) = postSolution
+       EndGlobalSection
+       GlobalSection(ExtensibilityAddIns) = postSolution
+       EndGlobalSection
+EndGlobal
diff --git a/project/genx.suo.old b/project/genx.suo.old
new file mode 100644 (file)
index 0000000..17f8a24
Binary files /dev/null and b/project/genx.suo.old differ
diff --git a/project/genx.vcproj b/project/genx.vcproj
new file mode 100644 (file)
index 0000000..8099736
--- /dev/null
@@ -0,0 +1,259 @@
+<?xml version="1.0" encoding="shift_jis"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="genx"
+       ProjectGUID="{EDF57DD2-D746-41F5-8EA9-DC95FD3B6E6A}"
+       TargetFrameworkVersion="131072"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory=".\Release"
+                       IntermediateDirectory=".\Release"
+                       ConfigurationType="1"
+                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Release/genx.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="4"
+                               InlineFunctionExpansion="2"
+                               AdditionalIncludeDirectories=".\sfglib,.\s2001"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
+                               RuntimeLibrary="0"
+                               RuntimeTypeInfo="true"
+                               UsePrecompiledHeader="0"
+                               PrecompiledHeaderFile=".\Release/genx.pch"
+                               AssemblerListingLocation=".\Release/"
+                               ObjectFile=".\Release/"
+                               ProgramDataBaseFileName=".\Release/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               CompileAs="0"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               Culture="1041"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile=".\Release/genx.exe"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               ProgramDatabaseFile=".\Release/genx.pdb"
+                               SubSystem="2"
+                               RandomizedBaseAddress="1"
+                               DataExecutionPrevention="0"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory=".\Debug"
+                       IntermediateDirectory=".\Debug"
+                       ConfigurationType="1"
+                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Debug/genx.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories=".\sfglib,.\s2001"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
+                               RuntimeLibrary="1"
+                               RuntimeTypeInfo="true"
+                               UsePrecompiledHeader="0"
+                               PrecompiledHeaderFile=".\Debug/genx.pch"
+                               AssemblerListingLocation=".\Debug/"
+                               ObjectFile=".\Debug/"
+                               ProgramDataBaseFileName=".\Debug/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               DebugInformationFormat="4"
+                               CompileAs="0"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               Culture="1041"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile=".\Debug/genx.exe"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               GenerateDebugInformation="true"
+                               ProgramDatabaseFile=".\Debug/genx.pdb"
+                               SubSystem="2"
+                               RandomizedBaseAddress="1"
+                               DataExecutionPrevention="0"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source Files"
+                       Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;for;f90"
+                       >
+                       <File
+                               RelativePath="genx.rc"
+                               >
+                       </File>
+                       <File
+                               RelativePath="WinMain.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""
+                                       />
+                               </FileConfiguration>
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Resource Files"
+                       Filter="ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
+                       >
+                       <File
+                               RelativePath="icon1.ico"
+                               >
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Header Files"
+                       Filter="h;hpp;hxx;hm;inl;fi;fd"
+                       >
+               </Filter>
+               <Filter
+                       Name="DirectX"
+                       >
+               </Filter>
+               <Filter
+                       Name="stl"
+                       >
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/project/genx.vcproj.7.10.old b/project/genx.vcproj.7.10.old
new file mode 100644 (file)
index 0000000..5005015
--- /dev/null
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="shift_jis"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="genx"
+       SccProjectName=""
+       SccLocalPath="">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory=".\Release"
+                       IntermediateDirectory=".\Release"
+                       ConfigurationType="1"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="FALSE">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="4"
+                               InlineFunctionExpansion="2"
+                               OptimizeForProcessor="2"
+                               AdditionalIncludeDirectories=".\sfglib,.\s2001"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
+                               RuntimeLibrary="4"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="2"
+                               PrecompiledHeaderFile=".\Release/genx.pch"
+                               AssemblerListingLocation=".\Release/"
+                               ObjectFile=".\Release/"
+                               ProgramDataBaseFileName=".\Release/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="TRUE"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile=".\Release/genx.exe"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               ProgramDatabaseFile=".\Release/genx.pdb"
+                               SubSystem="2"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="TRUE"
+                               SuppressStartupBanner="TRUE"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Release/genx.tlb"
+                               HeaderFileName=""/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               Culture="1041"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory=".\Debug"
+                       IntermediateDirectory=".\Debug"
+                       ConfigurationType="1"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="FALSE">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               OptimizeForProcessor="2"
+                               AdditionalIncludeDirectories=".\sfglib,.\s2001"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
+                               RuntimeLibrary="5"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="2"
+                               PrecompiledHeaderFile=".\Debug/genx.pch"
+                               AssemblerListingLocation=".\Debug/"
+                               ObjectFile=".\Debug/"
+                               ProgramDataBaseFileName=".\Debug/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="TRUE"
+                               DebugInformationFormat="4"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               OutputFile=".\Debug/genx.exe"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               GenerateDebugInformation="TRUE"
+                               ProgramDatabaseFile=".\Debug/genx.pdb"
+                               SubSystem="2"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Debug/genx.tlb"
+                               HeaderFileName=""/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               Culture="1041"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source Files"
+                       Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;for;f90">
+                       <File
+                               RelativePath="genx.rc">
+                       </File>
+                       <File
+                               RelativePath="WinMain.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions=""/>
+                               </FileConfiguration>
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Resource Files"
+                       Filter="ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe">
+                       <File
+                               RelativePath="icon1.ico">
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Header Files"
+                       Filter="h;hpp;hxx;hm;inl;fi;fd">
+               </Filter>
+               <Filter
+                       Name="DirectX"
+                       Filter="">
+               </Filter>
+               <Filter
+                       Name="stl"
+                       Filter="">
+               </Filter>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/project/genx.vcproj.satoshi-PC.satoshi.user b/project/genx.vcproj.satoshi-PC.satoshi.user
new file mode 100644 (file)
index 0000000..177cd63
--- /dev/null
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="shift_jis"?>
+<VisualStudioUserFile
+       ProjectType="Visual C++"
+       Version="9.00"
+       ShowAllFiles="false"
+       >
+       <Configurations>
+               <Configuration
+                       Name="Release|Win32"
+                       >
+                       <DebugSettings
+                               Command="$(TargetPath)"
+                               WorkingDirectory=""
+                               CommandArguments=""
+                               Attach="false"
+                               DebuggerType="3"
+                               Remote="1"
+                               RemoteMachine="SATOSHI-PC"
+                               RemoteCommand=""
+                               HttpUrl=""
+                               PDBPath=""
+                               SQLDebugging=""
+                               Environment=""
+                               EnvironmentMerge="true"
+                               DebuggerFlavor=""
+                               MPIRunCommand=""
+                               MPIRunArguments=""
+                               MPIRunWorkingDirectory=""
+                               ApplicationCommand=""
+                               ApplicationArguments=""
+                               ShimCommand=""
+                               MPIAcceptMode=""
+                               MPIAcceptFilter=""
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|Win32"
+                       >
+                       <DebugSettings
+                               Command="$(TargetPath)"
+                               WorkingDirectory=""
+                               CommandArguments=""
+                               Attach="false"
+                               DebuggerType="3"
+                               Remote="1"
+                               RemoteMachine="SATOSHI-PC"
+                               RemoteCommand=""
+                               HttpUrl=""
+                               PDBPath=""
+                               SQLDebugging=""
+                               Environment=""
+                               EnvironmentMerge="true"
+                               DebuggerFlavor=""
+                               MPIRunCommand=""
+                               MPIRunArguments=""
+                               MPIRunWorkingDirectory=""
+                               ApplicationCommand=""
+                               ApplicationArguments=""
+                               ShimCommand=""
+                               MPIAcceptMode=""
+                               MPIAcceptFilter=""
+                       />
+               </Configuration>
+       </Configurations>
+</VisualStudioUserFile>
diff --git a/project/genx.vcxproj b/project/genx.vcxproj
new file mode 100644 (file)
index 0000000..cd2e3b6
--- /dev/null
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{EDF57DD2-D746-41F5-8EA9-DC95FD3B6E6A}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseOfMfc>false</UseOfMfc>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>Win32</TargetEnvironment>
+      <TypeLibraryName>.\Release/genx.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>.\sfglib;.\s2001;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <PrecompiledHeaderOutputFile>.\Release/genx.pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>.\Release/</AssemblerListingLocation>
+      <ObjectFileName>.\Release/</ObjectFileName>
+      <ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <CompileAs>Default</CompileAs>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0411</Culture>
+    </ResourceCompile>
+    <Link>
+      <OutputFile>.\Release/genx.exe</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <ProgramDatabaseFile>.\Release/genx.pdb</ProgramDatabaseFile>
+      <SubSystem>Windows</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <TargetEnvironment>Win32</TargetEnvironment>
+      <TypeLibraryName>.\Debug/genx.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>.\sfglib;.\s2001;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <PrecompiledHeaderOutputFile>.\Debug/genx.pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
+      <ObjectFileName>.\Debug/</ObjectFileName>
+      <ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <CompileAs>Default</CompileAs>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0411</Culture>
+    </ResourceCompile>
+    <Link>
+      <OutputFile>.\Debug/genx.exe</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>.\Debug/genx.pdb</ProgramDatabaseFile>
+      <SubSystem>Windows</SubSystem>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ResourceCompile Include="genx.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="WinMain.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="icon1.ico" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="s2001\afxres.h" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/project/genx.vcxproj.filters b/project/genx.vcxproj.filters
new file mode 100644 (file)
index 0000000..2814290
--- /dev/null
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{1b24ae3c-df7d-4226-8157-1a4e0116f5b3}</UniqueIdentifier>
+      <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat;for;f90</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{c3cd196b-b5a2-42cc-9e30-225957cef34e}</UniqueIdentifier>
+      <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{ad698954-9f8a-4d22-bcb1-f28e58213b3d}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl;fi;fd</Extensions>
+    </Filter>
+    <Filter Include="DirectX">
+      <UniqueIdentifier>{12dc5590-8883-4420-9c2b-e358579ab4aa}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="stl">
+      <UniqueIdentifier>{d65535ef-0457-4d25-9229-c3087d930966}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="genx.rc">
+      <Filter>Source Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="WinMain.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="icon1.ico">
+      <Filter>Resource Files</Filter>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="s2001\afxres.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/project/genx.vcxproj.user b/project/genx.vcxproj.user
new file mode 100644 (file)
index 0000000..ace9a86
--- /dev/null
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+</Project>
\ No newline at end of file
diff --git a/project/highscore.dat b/project/highscore.dat
new file mode 100644 (file)
index 0000000..5c351b1
Binary files /dev/null and b/project/highscore.dat differ
diff --git a/project/icon1.ico b/project/icon1.ico
new file mode 100644 (file)
index 0000000..c43c298
Binary files /dev/null and b/project/icon1.ico differ
diff --git a/project/ktake2/AbstractObj.htm b/project/ktake2/AbstractObj.htm
new file mode 100644 (file)
index 0000000..8fdb00c
--- /dev/null
@@ -0,0 +1,53 @@
+<HTML><HEAD><TITLE>
+AbstractObj.cpp
+</TITLE>
+
+<BODY>
+
+<H3>AbstractObj.cpp</H3>
+
+
+<HR><PRE>
+   1|// AbstractObj.cpp: AbstractObj \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+   2|//
+   3|//////////////////////////////////////////////////////////////////////
+   4|#include &lt;string&gt;
+   5|#include "stdio.h"
+   6|#include "system.h"
+   7|#include "console.h"
+   8|#include "AbstractObj.h"
+   9|
+  10|//////////////////////////////////////////////////////////////////////
+  11|// \8d\\92z/\8fÁ\96Å
+  12|//////////////////////////////////////////////////////////////////////
+  13|namespace sf {
+  14|  namespace system {
+  15|          namespace console {
+  16|
+  17|// \83R\83\93\83X\83g\83\89\83N\83^ -------------------------------------------------------------
+  18|AbstractObj::AbstractObj()
+  19|{
+  20|  mbReverseX = mbReverseY = false;
+  21|  mbVisibility = false;
+  22|  mColor = 0;
+  23|  mObjNo = 0;
+  24|  mpNext = mpPrevious = NULL;
+  25|  mRad = mRotation = mRotCenterX = mRotCenterY = 0.0f;
+  26|  mScalingX = mScalingY = 1.0f;
+  27|  mSpecular = 0.0f;
+  28|  mX = mY = 0.0f;
+  29|  mZ = 0.0f;
+  30|  Obj::List::insertObj(this);
+  31|}// AbstractObj
+  32|
+  33|// \83f\83X\83g\83\89\83N\83^ ---------------------------------------------------------------
+  34|AbstractObj::~AbstractObj()
+  35|{
+  36|  Obj::List::deleteObj(this);
+  37|}// ~AbstractObj
+  38|          }// console 
+  39|  }// system
+  40|}// sf
+  41|
+</PRE>
+</BODY></HTML>
diff --git a/project/ktake2/WinMain.htm b/project/ktake2/WinMain.htm
new file mode 100644 (file)
index 0000000..0d5ac50
--- /dev/null
@@ -0,0 +1,121 @@
+<HTML><HEAD><TITLE>
+WinMain.cpp
+</TITLE>
+
+<BODY>
+
+<H3>WinMain.cpp</H3>
+
+<P>
+[<A href="#idxF">\8aÖ\90\94</A> | <A href="#idxM">\83}\83N\83\8d</A>]
+</P>
+
+<H4><A name="idxF">\8aÖ\90\94\88ê\97\97</A></H4>
+
+<UL>
+<LI><A href="#func1">WinMain \8aÖ\90\94</A>
+</UL>
+
+<H4><A name="idxM">\83}\83N\83\8d\88ê\97\97</A></H4>
+
+<UL>
+<LI><A href="#def1">WINMAIN \83}\83N\83\8d</A>
+<LI><A href="#def2">WIN32_LEAN_AND_MEAN \83}\83N\83\8d</A>
+<LI><A href="#def3">new \83}\83N\83\8d</A>
+</UL>
+
+
+<HR><PRE>
+   1|//@STATE=\8dì\90¬\92\86
+   2|//@DESCRIPTION ---------------------------------------------------------------
+   3|// Window\83\81\83C\83\93
+   4|// \82±\82ê\82¾\82¯\82Í\82Í\82¸\82¹\82È\82¢\81D\81D\81D\81B
+   5|//        \97\9a\97ð:
+   6|// $Log: <A href="#func1">WinMain</A>.cpp,v $
+   7|// Revision 1.5  2001/07/01 21:30:34  fujiwara
+   8|// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+   9|//
+  10|// Revision 1.4  2001/07/01 01:03:45  fujiwara
+  11|// const \82Ì\8c©\92¼\82µ
+  12|// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+  13|//
+  14|// Revision 1.3  2001/05/13 20:04:24  fujiwara
+  15|// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+  16|// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+  17|//
+  18|// Revision 1.2  2001/05/12 00:48:35  fujiwara
+  19|// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+  20|//
+  21|//        2001/01/29 \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p\83\89\83C\83u\83\89\83\8a\82Ì\92Ç\89Á 
+  22|//@DESCRIPTION_END -----------------------------------------------------------
+  23|//@AUTHOR=S.F.
+  24|// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+  25|///////////////////////////////////////////////////////////////////////////////
+  26|#pragma warning( disable : 4786 ) //STL\82Ì\8cx\8d\90\8aO\82µ
+  27|<A name="def1">#define <A href="#def1">WINMAIN</A>
+  28|</A><A name="def2">#define <A href="#def2">WIN32_LEAN_AND_MEAN</A>
+  29|</A>#include "sfdebug.h"
+  30|
+  31|
+  32|// SYSTEM INCLUDES
+  33|//
+  34|#include "math.h"
+  35|#include &lt;stack&gt;
+  36|#include &lt;queue&gt;
+  37|#include &lt;map&gt;
+  38|#include &lt;string&gt;
+  39|
+  40|#include "windows.h"
+  41|#include "windowsx.h"
+  42|
+  43|#include "d3d8.h"
+  44|#include "d3dx8.h"
+  45|#include "dmusici.h"
+  46|#include "dinput.h"
+  47|#include "mmsystem.h"
+  48|
+  49|// PROJECT INCLUDES
+  50|//
+  51|#ifdef _DEBUG
+  52|<A name="def3">#define <A href="#def3">new</A> DEBUG_NEW
+  53|</A>#endif
+  54|
+  55|#include "exception.h"
+  56|#include "singleton.h"
+  57|#include "System.h"
+  58|#include "console.h"
+  59|#include "obj.h"
+  60|#include "input.h"
+  61|#include "sound.h"
+  62|#include "AbstractSprite.h"
+  63|#include "ConsoleImpl.h"
+  64|#include "SoundImpl.h"
+  65|#include "InputImpl.h"
+  66|#include "MainApp.h"
+  67|#include "SystemImpl.h"
+  68|
+  69|
+  70|//#include "Sound.h"
+  71|
+  72|LRESULT CALLBACK WndFunc(HWND hwnd, UINT message, WPARAM wParam,LPARAM lParam);
+  73|
+  74|
+  75|// <A href="#func1">WinMain</A> --------------------------------------------------------------------
+  76|
+  77|<A name="func1">int WINAPI <A href="#func1">WinMain</A> (HINSTANCE hThisInstance, HINSTANCE hPrevInstance,
+  78|                                  LPSTR lpszCmdParam, int nCmdShow)
+  79|</A>{
+  80|#ifdef _DEBUG
+  81|#ifndef _BORLAND
+  82|  _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
+  83|#endif
+  84|#endif
+  85|
+  86|  sf::system::SystemImpl * const pwin32 = sf::system::SystemImpl::instance();
+  87|  return pwin32-&gt;winMain (hThisInstance,hPrevInstance,lpszCmdParam,nCmdShow);
+  88|
+  89|};// <A href="#func1">WinMain</A>
+  90|
+  91|
+</PRE>
+</BODY></HTML>
diff --git a/project/ktake2/ZK01.htm b/project/ktake2/ZK01.htm
new file mode 100644 (file)
index 0000000..24ad334
--- /dev/null
@@ -0,0 +1,350 @@
+<HTML><HEAD><TITLE>
+ZK01.cpp
+</TITLE>
+
+<BODY>
+
+<H3>ZK01.cpp</H3>
+
+<P>
+[<A href="#idxF">\8aÖ\90\94</A> | <A href="#idxM">\83}\83N\83\8d</A>]
+</P>
+
+<H4><A name="idxF">\8aÖ\90\94\88ê\97\97</A></H4>
+
+<UL>
+<LI><A href="#func1">ZK01 \8aÖ\90\94</A>
+<LI><A href="#func2">ZK01 \8aÖ\90\94</A>
+<LI><A href="#func3">initialize \8aÖ\90\94</A>
+<LI><A href="#func4">load \8aÖ\90\94</A>
+<LI><A href="#func5">unload \8aÖ\90\94</A>
+<LI><A href="#func6">move \8aÖ\90\94</A>
+<LI><A href="#func7">hit \8aÖ\90\94</A>
+<LI><A href="#func8">create \8aÖ\90\94</A>
+<LI><A href="#func9">die \8aÖ\90\94</A>
+<LI><A href="#func10">allBomb \8aÖ\90\94</A>
+</UL>
+
+<H4><A name="idxM">\83}\83N\83\8d\88ê\97\97</A></H4>
+
+<UL>
+<LI><A href="#def1">new \83}\83N\83\8d</A>
+</UL>
+
+
+<HR><PRE>
+   1|//@STATE=\8dì\90¬\92\86
+   2|//@DESCRIPTION ---------------------------------------------------------------
+   3|// <A href="#func1">ZK01</A>.cpp: <A href="#func1">ZK01</A> \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+   4|//        \97\9a\97ð\81F
+   5|// $Log: <A href="#func1">ZK01</A>.cpp,v $
+   6|// Revision 1.8  2001/07/01 21:30:34  fujiwara
+   7|// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+   8|//
+   9|// Revision 1.7  2001/07/01 01:03:45  fujiwara
+  10|// const \82Ì\8c©\92¼\82µ
+  11|// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+  12|//
+  13|// Revision 1.6  2001/06/03 09:22:32  fujiwara
+  14|// \92n\8fã\93G\83N\83\89\83X\82¨\82æ\82Ñ\8eG\8b\9b\93G\82Ì\94÷\92²\90®
+  15|//
+  16|// Revision 1.5  2001/05/29 01:12:10  fujiwara
+  17|// \8eG\8b\9b\83L\83\83\83\89(\94ò\8ds\95¨\81j\82Ì\8dì\90¬\81B\94z\92u\83G\83f\83B\83^\82Ì\83o\83O\8fC\90³
+  18|//
+  19|// Revision 1.4  2001/05/17 12:31:29  fujiwara
+  20|// \92n\8fã\93G\83T\83\93\83v\83\8b\8dì\90¬
+  21|//
+  22|// Revision 1.3  2001/05/13 20:04:24  fujiwara
+  23|// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+  24|// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+  25|//
+  26|// Revision 1.2  2001/05/12 00:48:35  fujiwara
+  27|// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+  28|//
+  29|//@DESCRIPTION_END -----------------------------------------------------------
+  30|//@AUTHOR=S.F.
+  31|// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+  32|///////////////////////////////////////////////////////////////////////////////
+  33|#pragma warning( disable : 4786 ) //STL\82Ì\8cx\8d\90\8aO\82µ
+  34|
+  35|// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+  36|#include "sfdebug.h"
+  37|
+  38|#include &lt;string&gt;
+  39|#include &lt;vector&gt;
+  40|#include &lt;memory&gt;
+  41|#include &lt;stack&gt;
+  42|#include &lt;list&gt;
+  43|#include &lt;iostream&gt;
+  44|#include &lt;fstream&gt;
+  45|#include &lt;map&gt;
+  46|
+  47|#include "stdio.h"
+  48|#include "math.h"
+  49|
+  50|#include "singleton.h"
+  51|#include "system.h"
+  52|#include "console.h"
+  53|#include "input.h"
+  54|#include "sound.h"
+  55|
+  56|#include "Obj.h"
+  57|#include "Obj2D.h"
+  58|#include "Obj3D.h"
+  59|#include "Obj3DL.h"
+  60|#include "ObjRectangle.h"
+  61|#include "ObjQuadrangle.h"
+  62|
+  63|#include "Background.h"
+  64|#include "Scene.h"
+  65|#include "main.h"
+  66|
+  67|#include "character.h"
+  68|#include "Hit.h"
+  69|#include "MyShip.h"
+  70|#include "Game.h"
+  71|#include "Enemys.h"
+  72|#include "Armys.h"
+  73|#include "AbstractEnemy.h"
+  74|#include "EnemyBullets.h"
+  75|#include "DispositionControl.h"
+  76|#include "Effects.h"
+  77|#include "Explosion.h"
+  78|
+  79|#ifdef _DEBUG
+  80|<A name="def1">#define <A href="#def1">new</A> DEBUG_NEW
+  81|</A>#endif
+  82|
+  83|#include "<A href="#func1">ZK01</A>.h"
+  84|#include "EB01.h"
+  85|
+  86|using namespace sf::application;
+  87|using namespace sf::application::enemy;
+  88|
+  89|sf::system::console::sprite::PSprite <A href="#func1">ZK01</A>::mspSprite;
+  90|
+  91|int <A href="#func1">ZK01</A>::mBalletTimer = 0;
+  92|int <A href="#func1">ZK01</A>::mBalletTimerInit = 0;
+  93|
+  94|const sf::system::console::sprite::Info <A href="#func1">ZK01</A>::msSpriteInfo = 
+  95|{
+  96|  "media\\zk01.png",0.0f,0.0f,64.0f,64.0f,0xff000000,console::sprite::SPRITE2D
+  97|};
+  98|
+  99|const int <A href="#func1">ZK01</A>::SCORE = 20;
+ 100|
+ 101|// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+ 102|<A href="#func1"><A name="func1">ZK01</A>::<A href="#func1">ZK01</A>()
+ 103|</A>{
+ 104|}// <A href="#func1">ZK01</A>()
+ 105|
+ 106|// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+ 107|<A href="#func1"><A name="func2">ZK01</A>::~<A href="#func1">ZK01</A>()
+ 108|</A>{
+ 109|  Enemys::instance()-&gt;clear(index());
+ 110|}// ~<A href="#func1">ZK01</A>()
+ 111|
+ 112|
+ 113|// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+ 114|<A name="func3">const bool <A href="#func1">ZK01</A>::<A href="#func3">initialize</A>()
+ 115|</A>{
+ 116|  // \93\96\82è\94»\92è 
+ 117|  mHitRect.offsetTop(-24.0f);
+ 118|  mHitRect.offsetBottom(24.0f);
+ 119|  mHitRect.offsetLeft(-24.0f);
+ 120|  mHitRect.offsetRight(24.0f);
+ 121|
+ 122|  mHitRect.isChecking(true);
+ 123|  mHitRect.characterPtr(this);
+ 124|  direction((float)atan2((double)(game()-&gt;player()-&gt;y() - y()),(double)(game()-&gt;player()-&gt;x() - x())));
+ 125|  
+ 126|  mDeltaTime = sf::system::Factory::getInstance()-&gt;deltaTime();
+ 127|  mDeltaTimeRev = 1.0f / mDeltaTime;
+ 128|  speed(3.0f * mDeltaTime);
+ 129|
+ 130|  mDx = cosf(direction()) * speed();
+ 131|  mDy = sinf(direction()) * speed();
+ 132|  
+ 133|  // Body \95\94\95ª 
+ 134|  mObj.index(0);
+ 135|
+ 136|  if(!mspSprite.get())
+ 137|          <A href="#func4">load</A>();
+ 138|
+ 139|  mObj.sprite(mspSprite.get());
+ 140|  
+ 141|  mObj.z(z() + (float)index() * 0.0001f );
+ 142|  mObj.x(x());
+ 143|  mObj.y(y());
+ 144|  mObj.visibility(true);
+ 145|  mObj.color(0xffffffff);
+ 146|  mObj.drawMode(sf::system::console::DRAW_TRANS);
+ 147|  mObj.angle(direction());
+ 148|
+ 149|  // Light\95\94\95ª
+ 150|  mObjLight.z(z() + (float)index() * 0.0001f + 0.00001f);
+ 151|  mObjLight.x(x());
+ 152|  mObjLight.y(y());
+ 153|
+ 154|  initLight();
+ 155|  
+ 156|  mbHit = false;
+ 157|  mDirCount = 18.0f * mDeltaTime;
+ 158|  mDirSpeed = (rand() &amp; 1) ? -0.02f * mDeltaTime : 0.02f * mDeltaTime;
+ 159|  
+ 160|  mState = MOVE;
+ 161|  
+ 162|  mShootTimer = (int)((20.0f + (float)(rand() &amp; 0x7)) * mDeltaTimeRev);
+ 163|  mbShoot = false;
+ 164|  mAccel = 0.2f * mDeltaTime;
+ 165|
+ 166|  if(!mBalletTimerInit)
+ 167|  {
+ 168|          mBalletTimer = mBalletTimerInit = (3.0f - game()-&gt;currentDifficulty()) * mDeltaTimeRev;
+ 169|          mbShoot = false;
+ 170|  } else {
+ 171|          mBalletTimer--;
+ 172|          if(!mBalletTimer){
+ 173|                  mBalletTimer = mBalletTimerInit;
+ 174|                  mBalletTimerInit = (3.0f - game()-&gt;currentDifficulty()) * mDeltaTimeRev;
+ 175|                  mbShoot = false;
+ 176|          } else {
+ 177|                  mbShoot = true;
+ 178|          }
+ 179|  }
+ 180|
+ 181|  return true;
+ 182|}// <A href="#func3">initialize</A>()
+ 183|
+ 184|// \83e\83N\83X\83`\83\83\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+ 185|<A name="func4">const bool <A href="#func1">ZK01</A>::<A href="#func4">load</A>(void)</A>{
+ 186|  using namespace sf::system::console::sprite;
+ 187|  if(!mspSprite.get()){
+ 188|          sf::system::console::sprite::PSprite ptemp(sf::system::Factory::getInstance()-&gt;console()-&gt;createSprite(&amp;msSpriteInfo)); 
+ 189|          if(ptemp.get() == NULL)
+ 190|                  return false;
+ 191|          mspSprite = ptemp;
+ 192|  }
+ 193|
+ 194|  if(!Bullets::instance()-&gt;<A href="#func4">load</A>(Bullets::EB01))
+ 195|          return false;
+ 196|  
+ 197|  if(!AbstractEnemy::loadLight())
+ 198|          return false;
+ 199|
+ 200|  return true;
+ 201|}// <A href="#func4">load</A>()
+ 202|
+ 203|// \83e\83N\83X\83`\83\83\82Ì\83A\83\93\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+ 204|<A name="func5">void <A href="#func1">ZK01</A>::<A href="#func5">unload</A>(void)</A>{
+ 205|  using namespace sf::system::console::sprite;
+ 206|  PSprite ptmp(NULL);
+ 207|  mspSprite = ptmp;
+ 208|}// <A href="#func5">unload</A>()
+ 209|
+ 210|// \93G\82Ì\93®\8dì \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+ 211|<A name="func6">void <A href="#func1">ZK01</A>::<A href="#func6">move</A>()
+ 212|</A>{
+ 213|  using namespace sf::application;
+ 214|  float tx,ty;
+ 215|
+ 216|  y(y() + mDy);
+ 217|  x(x() + mDx);
+ 218|
+ 219|  switch(mState){
+ 220|  case MOVE:
+ 221|          // \93®\82«\82Ì\83\81\83C\83\93
+ 222|          if(!--mDirCount){
+ 223|                  mDirCount = (int)(2.0f * mDeltaTimeRev);
+ 224|                  direction(direction() + mDirSpeed);
+ 225|                  speed(speed() + mAccel);
+ 226|                  mDx = cosf(direction()) * speed();
+ 227|                  mDy = sinf(direction()) * speed();
+ 228|          }
+ 229|
+ 230|          // \8dÀ\95W\88Ê\92u\81A\8ap\93x\82Ì\90Ý\92è         
+ 231|          mObj.x(x());
+ 232|          mObj.y(y());
+ 233|          mObj.angle(direction());
+ 234|
+ 235|          mObjLight.x(x());
+ 236|          mObjLight.y(y());
+ 237|          moveLight();
+ 238|          
+ 239|          // \92e\94­\8eË 
+ 240|          if(!mbShoot){
+ 241|                  if(!(mShootTimer--) ){
+ 242|                          tx = x() + 20.0f * cosf(direction());
+ 243|                          ty = y() + 20.0f * sinf(direction());
+ 244|                          EB01 *peb = (EB01 *)Bullets::instance()-&gt;<A href="#func8">create</A>(Bullets::EB01,tx,ty,z() + 0.01f,game());
+ 245|                          peb-&gt;direction(Util::calcDirection(x(),y(),game()-&gt;player()-&gt;x(),game()-&gt;player()-&gt;y()));
+ 246|                          mbShoot = true;
+ 247|                  }
+ 248|          }
+ 249|          
+ 250|          // \92e\82É\82 \82½\82Á\82½\82©\82Ç\82¤\82©\82Ì\94»\92è
+ 251|          if(mbHit)
+ 252|          {
+ 253|                  <A href="#func9">die</A>();
+ 254|                  return;
+ 255|          }
+ 256|          break;// case MOVE:
+ 257|
+ 258|  case DEAD:
+ 259|          if(!--mDirCount){
+ 260|                  delete this;
+ 261|                  return;
+ 262|          }
+ 263|          mObj.x(x());
+ 264|          mObj.y(y());
+ 265|          break;
+ 266|  }
+ 267|
+ 268|  // \89æ\96Ê\8fÁ\8b\8e\94»\92è
+ 269|  if(Util::checkArea(x(),y(),64.0f,64.0f))
+ 270|          delete this;
+ 271|}//<A href="#func6">move</A>()
+ 272|
+ 273|
+ 274|
+ 275|// \92e\82É\82 \82½\82Á\82½\82Æ\82«\82Ì\8f\88\97\9d \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+ 276|<A name="func7">void <A href="#func1">ZK01</A>::<A href="#func7">hit</A>(Character * const pDest)
+ 277|</A>{
+ 278|  mHitRect.isChecking(false);
+ 279|  mbHit = true;
+ 280|
+ 281|};
+ 282|
+ 283|// \93G\82Ì\90\90¬ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+ 284|<A name="func8">sf::application::Character * const <A href="#func1">ZK01</A>::<A href="#func8">create</A>(float x,float y ,float z,sf::application::scene::Game * const pGame,int index)
+ 285|</A>{
+ 286|  <A href="#func1">ZK01</A> * ptemp = <A href="#def1">new</A> <A href="#func1">ZK01</A>;
+ 287|  ptemp-&gt;x(x);
+ 288|  ptemp-&gt;y(y);
+ 289|  ptemp-&gt;z(z);
+ 290|  ptemp-&gt;index(index);
+ 291|  ptemp-&gt;game(pGame);
+ 292|  ptemp-&gt;<A href="#func3">initialize</A>();
+ 293|  return ptemp;
+ 294|;}// <A href="#func8">create</A>
+ 295|
+ 296|//\81@\8e\80\82ñ\82¾\82Æ\82«\82Ì\8f\88\97\9d  \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+ 297|<A name="func9">void <A href="#func1">ZK01</A>::<A href="#func9">die</A>(void)
+ 298|</A>{
+ 299|  effect::Explosion *pExp = (effect::Explosion*)effect::Effects::instance()-&gt;<A href="#func8">create</A>(effect::Effects::EXPLOSION,x(),y(),0.1f,game(),this);
+ 300|  if(pExp){
+ 301|          pExp-&gt;scaling(1.5f);
+ 302|  }
+ 303|  mDirCount = 2;
+ 304|  mState = DEAD;
+ 305|  game()-&gt;score(game()-&gt;score() + SCORE);
+ 306|
+ 307|};// <A href="#func9">die</A>()
+ 308|
+ 309|//  \91S\94\9a\94­\83C\83x\83\93\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+ 310|<A name="func10">void <A href="#func1">ZK01</A>::<A href="#func10">allBomb</A>(void)
+ 311|</A>{
+ 312|  <A href="#func9">die</A>();
+ 313|}// <A href="#func10">allBomb</A>()
+</PRE>
+</BODY></HTML>
diff --git a/project/ktake2/_out.kwf b/project/ktake2/_out.kwf
new file mode 100644 (file)
index 0000000..515a97d
--- /dev/null
@@ -0,0 +1,23 @@
+[main] 
+Application = Knowledge Look!
+Version = 100
+bNewFile = 0
+Base = .
+Update = 2001/07/04-05:08:59
+bCanUpdate = 0
+DispURL = (default)
+DispTarget = main
+[links] 
+A = {new}, , #def1
+A = {ZK01}, , #func1
+A = {ZK01}, , #func2
+A = {initialize}, , #func3
+A = {load}, , #func4
+A = {unload}, , #func5
+A = {move}, , #func6
+A = {hit}, , #func7
+A = {create}, , #func8
+A = {die}, , #func9
+A = {allBomb}, , #func10
diff --git a/project/latex/Makefile b/project/latex/Makefile
new file mode 100644 (file)
index 0000000..70443cd
--- /dev/null
@@ -0,0 +1,39 @@
+all: refman.dvi
+
+ps: refman.ps
+
+pdf: refman.pdf
+
+ps_2on1: refman_2on1.ps
+
+pdf_2on1: refman_2on1.pdf
+
+refman.ps: refman.dvi
+       dvips -o refman.ps refman.dvi
+
+refman.pdf: refman.ps
+       gswin32c -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=refman.pdf -c save pop -f refman.ps
+
+refman_2on1.ps: refman.ps
+       psnup -2 refman.ps >refman_2on1.ps
+
+refman_2on1.pdf: refman_2on1.ps
+       gswin32c -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=refman_2on1.pdf -c save pop -f refman_2on1.ps
+
+refman.dvi: refman.tex doxygen.sty
+       echo "Running latex..."
+       latex refman.tex
+       echo "Running makeindex..."
+       makeindex refman.idx
+       echo "Rerunning latex...."
+       latex refman.tex
+       latex_count=5
+       while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $latex_count -gt 0 ] ;\
+           do \
+             echo "Rerunning latex...." ;\
+             latex refman.tex ;\
+             latex_count=`expr $latex_count - 1` ;\
+           done
+
+clean:
+       rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out
diff --git a/project/latex/doxygen.sty b/project/latex/doxygen.sty
new file mode 100644 (file)
index 0000000..40aae8f
--- /dev/null
@@ -0,0 +1,65 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{doxygen}
+\RequirePackage{calc}
+\RequirePackage{array}
+\pagestyle{fancyplain}
+\addtolength{\headwidth}{\marginparsep}
+\addtolength{\headwidth}{\marginparwidth}
+\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}}
+\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
+\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
+\lhead[\fancyplain{}{\bfseries\thepage}]
+        {\fancyplain{}{\bfseries\rightmark}}
+\rhead[\fancyplain{}{\bfseries\leftmark}]
+        {\fancyplain{}{\bfseries\thepage}}
+\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Mon Jan 7 21:01:08 2002 by Doxygen written by Dimitri van Heesch \copyright~1997-2001}]{}
+\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Mon Jan 7 21:01:08 2002 by Doxygen written by Dimitri van Heesch \copyright~1997-2001}}
+\cfoot{}
+\newenvironment{CompactList}
+{\begin{list}{}{
+  \setlength{\leftmargin}{0.5cm}
+  \setlength{\itemsep}{0pt}
+  \setlength{\parsep}{0pt}
+  \setlength{\topsep}{0pt}
+  \renewcommand{\makelabel}{}}}
+{\end{list}}
+\newenvironment{CompactItemize}
+{
+  \begin{itemize}
+  \setlength{\itemsep}{-3pt}
+  \setlength{\parsep}{0pt}
+  \setlength{\topsep}{0pt}
+  \setlength{\partopsep}{0pt}
+}
+{\end{itemize}}
+\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}
+\newlength{\tmplength}
+\newenvironment{TabularC}[1]
+{
+\setlength{\tmplength}
+     {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}
+      \par\begin{tabular*}{\linewidth}
+             {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}
+}
+{\end{tabular*}\par}
+\newcommand{\entrylabel}[1]{
+   {\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\\}}}
+\newenvironment{Desc}
+{\begin{list}{}
+  {
+    \settowidth{\labelwidth}{40pt}
+    \setlength{\leftmargin}{\labelwidth}
+    \setlength{\parsep}{0pt}
+    \setlength{\itemsep}{-4pt}
+    \renewcommand{\makelabel}{\entrylabel}
+  }
+}
+{\end{list}}
+\newenvironment{Indent}
+  {\begin{list}{}{\setlength{\leftmargin}{0.5cm}}
+      \item[]\ignorespaces}
+  {\unskip\end{list}}
+\setlength{\parindent}{0cm}
+\setlength{\parskip}{0.2cm}
+\addtocounter{secnumdepth}{1}
+\sloppy
diff --git a/project/latex/hierarchy.tex b/project/latex/hierarchy.tex
new file mode 100644 (file)
index 0000000..ad8d0c5
--- /dev/null
@@ -0,0 +1,29 @@
+\section{genxdoc ¥¯¥é¥¹³¬ÁØ}
+¤³¤Î·Ñ¾µ¥ê¥¹¥È¤Ï¤ª¤ª¤Þ¤«¤Ë¤Ï¥½¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È½ç¤Ç´°Á´¤Ë¥½¡¼¥È¤µ¤ì¤Æ¤Ï¤¤¤Þ¤»¤ó¡£\begin{CompactList}
+\item sf::system::console::Background::Map\item sf::system::console::Color\item sf::system::console::Console\begin{CompactList}
+\item sf::system::console::Console\-Impl\end{CompactList}
+\item sf::system::Exception\begin{CompactList}
+\item sf::system::Fatal\-Error\-Exception\item sf::system::Recoverble\-Error\-Exception\end{CompactList}
+\item sf::system::console::sprite::Info\item sf::system::input::Input\begin{CompactList}
+\item sf::system::input::Input\-Impl\end{CompactList}
+\item sf::system::input::mouse::Listener\item sf::system::input::keyboard::Listener\item sf::system::input::Listener\item sf::application::Main\item sf::system::console::Obj\begin{CompactList}
+\item sf::system::console::Obj2D\begin{CompactList}
+\item sf::system::console::Obj\-Quadrangle\item sf::system::console::Obj\-Rectangle\begin{CompactList}
+\item sf::system::console::Background\end{CompactList}
+\end{CompactList}
+\item sf::system::console::Obj3D\begin{CompactList}
+\item sf::system::console::Obj3DL\end{CompactList}
+\end{CompactList}
+\item sf::system::console::Obj::List\item sf::system::sound::Sound\begin{CompactList}
+\item sf::system::sound::Sound\-Impl\end{CompactList}
+\item sf::system::sound::Sound\-Impl::Queue::Data\item sf::system::console::sprite::Sprite\begin{CompactList}
+\item sf::system::console::sprite::Abstract\-Sprite\begin{CompactList}
+\item sf::system::console::sprite::Sprite2D\item sf::system::console::sprite::Sprite3D\item sf::system::console::sprite::Sprite\-Mesh\end{CompactList}
+\end{CompactList}
+\item sf::system::System\begin{CompactList}
+\item sf::system::System\-Impl\end{CompactList}
+\item sf::system::console::Vertex\item sf::system::console::Vertex2\item sf::system::input::keyboard::VKey\item sf::system::Win32\begin{CompactList}
+\item sf::system::System\-Impl\end{CompactList}
+\item sf::system::Window\-Message\begin{CompactList}
+\item sf::system::Window\-Message\-Impl\end{CompactList}
+\end{CompactList}
diff --git a/project/latex/refman.tex b/project/latex/refman.tex
new file mode 100644 (file)
index 0000000..2ae6672
--- /dev/null
@@ -0,0 +1,29 @@
+\documentclass[a4paper]{book}
+\usepackage{a4wide}
+\usepackage{makeidx}
+\usepackage{fancyhdr}
+\usepackage{graphicx}
+\usepackage{float}
+\usepackage{alltt}
+\usepackage{doxygen}
+\makeindex
+\setcounter{tocdepth}{1}
+\setlength{\footrulewidth}{0.4pt}
+\begin{document}
+\begin{titlepage}
+\vspace*{7cm}
+\begin{center}
+{\Large Reference Manual}\\
+\vspace*{1cm}
+{\large Generated by Doxygen 1.2.13}\\
+\vspace*{0.5cm}
+{\small Mon Jan 7 21:01:08 2002}\\
+\end{center}
+\end{titlepage}
+\clearemptydoublepage
+\pagenumbering{roman}
+\tableofcontents
+\clearemptydoublepage
+\pagenumbering{arabic}
+\printindex
+\end{document}
diff --git a/project/make.err b/project/make.err
new file mode 100644 (file)
index 0000000..3da9932
--- /dev/null
@@ -0,0 +1,292 @@
+MAKE Version 5.2  Copyright (c) 1987, 2000 Borland
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\WinMain.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\WinMain.cpp:
+\8cx\8d\90 W8058 .\sfglib\System.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\MainApp.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\MainApp.cpp:
+\8cx\8d\90 W8058 .\sfglib\System.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\Scene.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Scene.cpp:
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\SceneAuthor.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\SceneAuthor.cpp:
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\SceneAuthor.cpp 71: \83p\83\89\83\81\81[\83^ 'pParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Author::Author(AuthorParameter *) )
+\8cx\8d\90 W8057 .\SceneAuthor.cpp 172: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Author::endOfScene(Scene * const) )
+\8cx\8d\90 W8057 .\SceneAuthor.cpp 179: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Author::exitKeyPressed(Scene * const) )
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\Fade.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Fade.cpp:
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\AbstractScene.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\AbstractScene.cpp:
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\title.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Title.cpp:
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\Title.cpp 114: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Title::endOfScene(Scene * const) )
+\8cx\8d\90 W8057 .\Title.cpp 121: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Title::exitKeyPressed(Scene * const) )
+\8cx\8d\90 W8004 .\Title.cpp 227: 'pscene' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 Title::main() )
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\Start.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Start.cpp:
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\Start.cpp 173: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Start::endOfScene(Scene * const) )
+\8cx\8d\90 W8057 .\Start.cpp 180: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Start::exitKeyPressed(Scene * const) )
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\Game.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Game.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8022 .\DispositionControl.h 310: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8070 .\AbstractCharacter.h 95: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\Game.cpp 351: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Game::exitKeyPressed(Scene * const) )
+\8cx\8d\90 W8057 .\Game.cpp 382: \83p\83\89\83\81\81[\83^ 'extKeyCode' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Game::keyDown(const unsigned long,const unsigned long) )
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\Over.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Over.cpp:
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\Over.cpp 145: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Over::endOfScene(Scene * const) )
+\8cx\8d\90 W8057 .\Over.cpp 156: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Over::exitKeyPressed(Scene * const) )
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\Character.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\character.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\MyShip.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\MyShip.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8022 .\DispositionControl.h 310: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8070 .\AbstractCharacter.h 95: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\MyShip.cpp 282: \83p\83\89\83\81\81[\83^ 'pDest' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Ship::hit(Character * const) )
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\BGEditor.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\BGEditor.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8022 .\DispositionControl.h 310: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\BGEditor.cpp 176: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::exitKeyPressed(Scene * const) )
+\8cx\8d\90 W8057 .\BGEditor.cpp 198: \83p\83\89\83\81\81[\83^ 'screenX' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::mouseWheel(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\BGEditor.cpp 198: \83p\83\89\83\81\81[\83^ 'screenY' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::mouseWheel(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\BGEditor.cpp 212: \83p\83\89\83\81\81[\83^ 'extKeyCode' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::keyDown(const unsigned long,const unsigned long) )
+\8cx\8d\90 W8057 .\BGEditor.cpp 232: \83p\83\89\83\81\81[\83^ 'mkey' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::rightButtonDown(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\BGEditor.cpp 375: \83p\83\89\83\81\81[\83^ 'screenX' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::CellSelector::leftButtonDown(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\BGEditor.cpp 375: \83p\83\89\83\81\81[\83^ 'screenY' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::CellSelector::leftButtonDown(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\BGEditor.cpp 375: \83p\83\89\83\81\81[\83^ 'mkey' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::CellSelector::leftButtonDown(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\BGEditor.cpp 396: \83p\83\89\83\81\81[\83^ 'screenX' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::CellSelector::mouseWheel(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\BGEditor.cpp 396: \83p\83\89\83\81\81[\83^ 'screenY' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 BGEditor::CellSelector::mouseWheel(const int,const int,const unsigned long) )
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\Hit.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Hit.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\dispositioncontrol.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\DispositionControl.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8070 .\AbstractCharacter.h 95: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8022 .\DispositionControl.h 310: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8066 .\DispositionControl.cpp 186: \8eÀ\8ds\82³\82ê\82È\82¢\83R\81[\83h(\8aÖ\90\94 Controller::findCommand(const std::string &) )
+\8cx\8d\90 W8057 .\DispositionControl.cpp 456: \83p\83\89\83\81\81[\83^ 'position' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SetEnemy::exec(const float) )
+\8cx\8d\90 W8057 .\DispositionControl.cpp 542: \83p\83\89\83\81\81[\83^ 'extKeyCode' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SetEnemy::keyDown(const unsigned long,const unsigned long) )
+\8cx\8d\90 W8057 .\DispositionControl.cpp 579: \83p\83\89\83\81\81[\83^ 'position' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SetArmy::exec(const float) )
+\8cx\8d\90 W8057 .\DispositionControl.cpp 662: \83p\83\89\83\81\81[\83^ 'extKeyCode' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SetArmy::keyDown(const unsigned long,const unsigned long) )
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\AbstractCharacter.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\AbstractCharacter.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8022 .\DispositionControl.h 310: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8070 .\AbstractCharacter.h 95: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\MyBullets.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\MyBullets.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8022 .\DispositionControl.h 310: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8070 .\AbstractCharacter.h 95: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8004 .\MyBullets.cpp 160: 'count' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 Bullets::move() )
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\Enemys.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Enemys.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8022 .\DispositionControl.h 310: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8070 .\AbstractCharacter.h 95: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\ZK01.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\ZK01.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8070 .\AbstractCharacter.h 95: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8022 .\DispositionControl.h 310: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\ZK01.cpp 277: \83p\83\89\83\81\81[\83^ 'pDest' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 ZK01::hit(Character * const) )
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\Explosion.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Explosion.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8022 .\DispositionControl.h 310: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8070 .\AbstractCharacter.h 95: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\Explosion.cpp 184: \83p\83\89\83\81\81[\83^ 'pDest' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Explosion::hit(Character * const) )
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\Effects.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Effects.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8070 .\AbstractCharacter.h 95: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8004 .\Effects.cpp 142: 'count' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 Effects::move() )
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\DispositionEditor.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\DispositionEditor.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8022 .\DispositionControl.h 310: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\DispositionEditor.cpp 182: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 DispositionEditor::endOfScene(Scene * const) )
+\8cx\8d\90 W8057 .\DispositionEditor.cpp 191: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 DispositionEditor::exitKeyPressed(Scene * const) )
+\8cx\8d\90 W8004 .\DispositionEditor.cpp 279: 'max' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 DispositionEditor::keyDown(const unsigned long,const unsigned long) )
+\8cx\8d\90 W8057 .\DispositionEditor.cpp 286: \83p\83\89\83\81\81[\83^ 'mkey' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 DispositionEditor::rightButtonDown(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\DispositionEditor.cpp 309: \83p\83\89\83\81\81[\83^ 'screenX' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 DispositionEditor::leftButtonDown(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\DispositionEditor.cpp 309: \83p\83\89\83\81\81[\83^ 'screenY' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 DispositionEditor::leftButtonDown(const int,const int,const unsigned long) )
+\8cx\8d\90 W8057 .\DispositionEditor.cpp 309: \83p\83\89\83\81\81[\83^ 'mkey' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 DispositionEditor::leftButtonDown(const int,const int,const unsigned long) )
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\EnemyBullets.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\EnemyBullets.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8022 .\DispositionControl.h 310: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8070 .\AbstractCharacter.h 95: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8004 .\EnemyBullets.cpp 153: 'count' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 Bullets::move() )
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\EB01.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\EB01.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8022 .\DispositionControl.h 310: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8070 .\AbstractCharacter.h 95: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\EB01.cpp 210: \83p\83\89\83\81\81[\83^ 'pDest' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 EB01::hit(Character * const) )
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\ea01.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\EA01.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8022 .\DispositionControl.h 310: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8070 .\AbstractCharacter.h 95: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\EA01.cpp 362: \83p\83\89\83\81\81[\83^ 'z' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 EA01::create(float,float,float,scene::Game * const,int) )
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\armys.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Armys.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8022 .\DispositionControl.h 310: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8070 .\AbstractCharacter.h 95: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\abstractenemy.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\AbstractEnemy.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8070 .\AbstractCharacter.h 95: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\target.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Target.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8022 .\DispositionControl.h 310: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8070 .\AbstractCharacter.h 95: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\zk02.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\ZK02.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8070 .\AbstractCharacter.h 95: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8022 .\DispositionControl.h 310: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -Od -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -D_DEBUG .\mygroundbullets.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\MyGroundBullets.cpp:
+\8cx\8d\90 W8070 .\character.h 117: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Util::adjustRadian(float) )
+\8cx\8d\90 W8022 .\DispositionControl.h 310: 'SetRestartPosition::sprite()' \82ª\89¼\91z\8aÖ\90\94 'Abstract::sprite() const' \82ð\89B\95Á\82·\82é
+\8cx\8d\90 W8070 .\AbstractCharacter.h 95: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 AbstractCharacter::game(scene::Game * const) )
+\8cx\8d\90 W8058 .\sfglib\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8004 .\MyGroundBullets.cpp 169: 'count' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 GroundBullets::move() )
+       brc32 -r -i"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;.\sfglib" genx.rc -fo.\obj\genx
+Borland Resource Compiler  Version 5.40
+Copyright (c) 1990, 1999 Inprise Corporation.  All rights reserved.
+       ilink32 -Tpe -aa -v -r -c -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" /j.\obj /I.\obj c0w32.obj WinMain.obj MainApp.obj Scene.obj SceneAuthor.obj Fade.obj AbstractScene.obj title.obj Start.obj Game.obj Over.obj Character.obj MyShip.obj BGEditor.obj Hit.Obj dispositioncontrol.obj AbstractCharacter.obj MyBullets.obj Enemys.obj ZK01.obj Explosion.obj Effects.obj DispositionEditor.obj EnemyBullets.obj EB01.obj ea01.obj armys.obj abstractenemy.obj target.obj zk02.obj mygroundbullets.obj,.\obj\genx,,sfglib\lib\sfglib.lib c_dinput.lib import32.lib cw32.lib dinput8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib dxerr8bor.lib winmm.lib,,.\obj\genx.res
+Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
+RLINK32 Version 4.00  (c) Copyright 1992-1999 Borland International.
+Input resource file #1: "TMP1.$$$"
+Input resource file #2: "C:\MY DOCUMENTS\GENX\PROJECT\OBJ\GENX.RES"
+Reading resource files.
+
+RESOURCE LIST
+Key: The attributes Language, Data Version, Version, and Characteristics are
+shown in hex.  They appear only if they are nonzero.  *Discardable resource.
+Type ID            Name ID               File  Size   Language Data Version    
+ 3 (ICON)          1                     2      744 * 0x0411                   
+10 (RCDATA)        DVCLAL                1       16                            
+14 (ICON GROUP)    101                   2       20 * 0x0411                   
+16 (VERSIONINFO)   1                     2      652   0x0411                   
+Writing resources.
+Resources linked.
+       copy .\obj\genx.exe c:\s2001
+        1 \8cÂ\82Ì\83t\83@\83C\83\8b\82ð\83R\83s\81[\82µ\82Ü\82µ\82½.
+       copy .\media\*.* c:\s2001\media
+.\media\TITLE.png
+.\media\author.dls
+.\media\author.png
+.\media\author.sgt
+.\media\AuthorBand.bnd
+.\media\BEAM.wav
+.\media\blank.bmp
+.\media\Font1.png
+.\media\Font2.png
+.\media\EB01.png
+.\media\mecha1.png
+.\media\select.sgt
+.\media\stage7.png
+.\media\stage1.png
+.\media\stage2.png
+.\media\stage3.png
+.\media\stage4.png
+.\media\stage5.png
+.\media\stage6.png
+.\media\stage0.png
+.\media\test.X
+.\media\Audiopath1.aud
+.\media\mybullet001.png
+.\media\myship.png
+.\media\explosion.png
+.\media\EXPLOS.WAV
+.\media\EB01.WAV
+.\media\.Bpib
+.\media\en01.tga
+.\media\enlight.png
+.\media\zk01.png
+.\media\eb01.tga
+.\media\ea01.png
+.\media\ea01foot.tga
+.\media\zk02.png
+.\media\target.png
+.\media\TARGET.WAV
+.\media\groundnormal.png
+.\media\GNORMAL.WAV
+.\media\normal.png
+.\media\pox_aed.mid
+.\media\normalb.png
+.\media\BOUND.WAV
+.\media\explosion2.png
+.\media\title.wav
+.\media\title1.wav
+.\media\Restart.png
+.\media\SetScrollSpeed.png
+.\media\sample.sgt
+       49 \8cÂ\82Ì\83t\83@\83C\83\8b\82ð\83R\83s\81[\82µ\82Ü\82µ\82½.
diff --git a/project/make.log b/project/make.log
new file mode 100644 (file)
index 0000000..2ebd169
--- /dev/null
@@ -0,0 +1,132 @@
+MAKE Version 5.2  Copyright (c) 1987, 2000 Borland
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp -D_BORLAND -D_DEBUG .\WinMain.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\WinMain.cpp:
+\8cx\8d\90 W8058 .\System.h 24: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp -D_BORLAND -D_DEBUG .\System.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\System.cpp:
+\8cx\8d\90 W8058 .\System.h 24: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp -D_BORLAND -D_DEBUG .\SystemImpl.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\SystemImpl.cpp:
+\8cx\8d\90 W8058 .\System.h 24: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\SystemImpl.cpp 248: \83p\83\89\83\81\81[\83^ 'hPrevInstance' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::winMain(HINSTANCE__ * const,HINSTANCE__ * const,char * const,const int) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 248: \83p\83\89\83\81\81[\83^ 'lpszCmdParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::winMain(HINSTANCE__ * const,HINSTANCE__ * const,char * const,const int) )
+\8cx\8d\90 W8066 .\SystemImpl.cpp 285: \8eÀ\8ds\82³\82ê\82È\82¢\83R\81[\83h(\8aÖ\90\94 __stdcall SystemImpl::wndFunc(HWND__ *,unsigned int,unsigned int,long) )
+\8cx\8d\90 W8066 .\SystemImpl.cpp 295: \8eÀ\8ds\82³\82ê\82È\82¢\83R\81[\83h(\8aÖ\90\94 __stdcall SystemImpl::wndFunc(HWND__ *,unsigned int,unsigned int,long) )
+\8cx\8d\90 W8004 .\SystemImpl.cpp 319: 'hdc' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 SystemImpl::onPaint(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 319: \83p\83\89\83\81\81[\83^ 'wParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onPaint(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 319: \83p\83\89\83\81\81[\83^ 'lParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onPaint(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 330: \83p\83\89\83\81\81[\83^ 'hwnd' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onActivate(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 330: \83p\83\89\83\81\81[\83^ 'lParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onActivate(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 361: \83p\83\89\83\81\81[\83^ 'hwnd' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onSize(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 361: \83p\83\89\83\81\81[\83^ 'wParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onSize(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 361: \83p\83\89\83\81\81[\83^ 'lParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onSize(HWND__ * const,const unsigned int,const long) )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp -D_BORLAND -D_DEBUG .\Console.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Console.cpp:
+\8cx\8d\90 W8058 .\system.h 24: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp -D_BORLAND -D_DEBUG .\ConsoleImpl.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\ConsoleImpl.cpp:
+\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\82Ì\93Ç\82Ý\8d\9e\82Ý
+\8cx\8d\90 W8027 .\ObjRectangle.h 29: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 ObjRectangle::draw(Console *) )
+\8cx\8d\90 W8027 .\ObjQuadrangle.h 30: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 ObjQuadrangle::draw(Console *) )
+\8cx\8d\90 W8004 .\ConsoleImpl.cpp 180: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 ConsoleImpl::initialize(HWND__ * const,const bool) )
+\8cx\8d\90 W8004 .\ConsoleImpl.cpp 199: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 ConsoleImpl::checkAndSetDeviceType(const _D3DDEVTYPE) )
+\8cx\8d\90 W8004 .\ConsoleImpl.cpp 411: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 ConsoleImpl::initConsoleViewStyle() )
+\8cx\8d\90 W8004 .\ConsoleImpl.cpp 470: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 ConsoleImpl::initNotManagedObjects() )
+\8cx\8d\90 W8004 .\ConsoleImpl.cpp 961: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 ConsoleImpl::drawSprite(ObjRectangle *) )
+\8cx\8d\90 W8004 .\ConsoleImpl.cpp 1062: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 ConsoleImpl::drawSprite(ObjQuadrangle *) )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp -D_BORLAND -D_DEBUG .\Sound.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Sound.cpp:
+\8cx\8d\90 W8058 .\system.h 24: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp -D_BORLAND -D_DEBUG .\SoundImpl.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\SoundImpl.cpp:
+\8cx\8d\90 W8058 .\System.h 24: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp -D_BORLAND -D_DEBUG .\Input.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Input.cpp:
+\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\82Ì\93Ç\82Ý\8d\9e\82Ý
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp -D_BORLAND -D_DEBUG .\InputImpl.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\InputImpl.cpp:
+\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\82Ì\93Ç\82Ý\8d\9e\82Ý
+\8cx\8d\90 W8004 .\InputImpl.cpp 146: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 InputImpl::initialize() )
+\8cx\8d\90 W8004 .\InputImpl.cpp 279: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 InputImpl::initKeyboard() )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp -D_BORLAND -D_DEBUG .\Main.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Main.cpp:
+\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\82Ì\93Ç\82Ý\8d\9e\82Ý
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp -D_BORLAND -D_DEBUG .\MainApp.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\MainApp.cpp:
+\8cx\8d\90 W8058 .\System.h 24: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp -D_BORLAND -D_DEBUG .\Scene.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Scene.cpp:
+\8cx\8d\90 W8027 .\ObjRectangle.h 29: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 ObjRectangle::draw(Console *) )
+\8cx\8d\90 W8027 .\ObjQuadrangle.h 30: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 ObjQuadrangle::draw(Console *) )
+\8cx\8d\90 W8058 .\system.h 24: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\Scene.cpp 86: \83p\83\89\83\81\81[\83^ 'bAddSceneContainer' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 AuthorParameter::createScene(bool) )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp -D_BORLAND -D_DEBUG .\SceneAuthor.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\SceneAuthor.cpp:
+\8cx\8d\90 W8027 .\ObjRectangle.h 29: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 ObjRectangle::draw(Console *) )
+\8cx\8d\90 W8027 .\ObjQuadrangle.h 30: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 ObjQuadrangle::draw(Console *) )
+\8cx\8d\90 W8058 .\system.h 24: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8057 .\SceneAuthor.cpp 48: \83p\83\89\83\81\81[\83^ 'pParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Author::Author(AuthorParameter *) )
+\8cx\8d\90 W8057 .\SceneAuthor.cpp 125: \83p\83\89\83\81\81[\83^ 'pScene' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 Author::endOfScene(Scene *) )
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp -D_BORLAND -D_DEBUG .\Obj.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Obj.cpp:
+\8cx\8d\90 W8058 .\system.h 24: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp -D_BORLAND -D_DEBUG .\Obj2D.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Obj2D.cpp:
+\8cx\8d\90 W8058 .\system.h 24: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp -D_BORLAND -D_DEBUG .\ObjQuadrangle.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\ObjQuadrangle.cpp:
+\8cx\8d\90 W8027 .\ObjQuadrangle.h 30: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 ObjQuadrangle::draw(Console *) )
+\8cx\8d\90 W8058 .\system.h 24: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp -D_BORLAND -D_DEBUG .\ObjRectangle.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\ObjRectangle.cpp:
+\8cx\8d\90 W8027 .\ObjRectangle.h 29: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 ObjRectangle::draw(Console *) )
+\8cx\8d\90 W8058 .\system.h 24: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp -D_BORLAND -D_DEBUG .\Fade.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Fade.cpp:
+\8cx\8d\90 W8027 .\ObjRectangle.h 29: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 ObjRectangle::draw(Console *) )
+\8cx\8d\90 W8027 .\ObjQuadrangle.h 30: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 ObjQuadrangle::draw(Console *) )
+\8cx\8d\90 W8058 .\system.h 24: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp -D_BORLAND -D_DEBUG .\AbstractScene.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\AbstractScene.cpp:
+\8cx\8d\90 W8027 .\ObjQuadrangle.h 30: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 ObjQuadrangle::draw(Console *) )
+\8cx\8d\90 W8027 .\ObjRectangle.h 29: return \95\82ð\8e\9d\82½\82È\82¢\8aÖ\90\94\82Í\83C\83\93\83\89\83C\83\93\93W\8aJ\82Å\82«\82È\82¢(\8aÖ\90\94 ObjRectangle::draw(Console *) )
+\8cx\8d\90 W8058 .\system.h 24: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       brc32 -r -i"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" genx.rc -fo.\obj\genx
+Borland Resource Compiler  Version 5.40
+Copyright (c) 1990, 1999 Inprise Corporation.  All rights reserved.
+       ilink32 -Tpe -aa -r -c -x -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" /j.\obj /I.\obj c0w32.obj WinMain.obj System.obj SystemImpl.obj Console.obj ConsoleImpl.obj Sound.obj SoundImpl.obj Input.obj InputImpl.obj Main.obj MainApp.obj Scene.obj SceneAuthor.obj Obj.obj Obj2D.obj ObjQuadrangle.obj ObjRectangle.obj Fade.obj AbstractScene.obj,.\obj\genx,,c_dinput.lib dinput8.lib import32.lib cw32.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib,,.\obj\genx.res
+Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
+RLINK32 Version 4.00  (c) Copyright 1992-1999 Borland International.
+Input resource file #1: "TMP1.$$$"
+Input resource file #2: "C:\MY DOCUMENTS\GENX\PROJECT\OBJ\GENX.RES"
+Reading resource files.
+
+RESOURCE LIST
+Key: The attributes Language, Data Version, Version, and Characteristics are
+shown in hex.  They appear only if they are nonzero.  *Discardable resource.
+Type ID            Name ID               File  Size   Language Data Version    
+ 3 (ICON)          1                     2      744 * 0x0411                   
+10 (RCDATA)        DVCLAL                1       16                            
+14 (ICON GROUP)    101                   2       20 * 0x0411                   
+16 (VERSIONINFO)   1                     2      652   0x0411                   
+Writing resources.
+Resources linked.
diff --git a/project/make.txt b/project/make.txt
new file mode 100644 (file)
index 0000000..2b7a934
--- /dev/null
@@ -0,0 +1,21 @@
+MAKE Version 5.2  Copyright (c) 1987, 2000 Borland
+       bcc32 -c -N -O2 -WM- -H -Hs -5 -a8 -W -I"c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(FLOAT)sin -Dcosf=(FLOAT)cos -Dasinf=(FLOAT)asin -Dacosf=(FLOAT)acos -Dsqrtf=(FLOAT)sqrt -Dexpf=(FLOAT)exp .\SystemImpl.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\SystemImpl.cpp:
+\8cx\8d\90 W8058 .\System.h 24: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\83G\83\89\81[ E2285 .\SystemImpl.cpp 66: 'std::auto_ptr<SystemImpl>::operator =(std::auto_ptr<SystemImpl>)' \82É\88ê\92v\82·\82é\82à\82Ì\82ª\8c©\82Â\82©\82ç\82È\82¢(\8aÖ\90\94 SystemImpl::instance() )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 248: \83p\83\89\83\81\81[\83^ 'hPrevInstance' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::winMain(HINSTANCE__ * const,HINSTANCE__ * const,char * const,const int) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 248: \83p\83\89\83\81\81[\83^ 'lpszCmdParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::winMain(HINSTANCE__ * const,HINSTANCE__ * const,char * const,const int) )
+\8cx\8d\90 W8066 .\SystemImpl.cpp 285: \8eÀ\8ds\82³\82ê\82È\82¢\83R\81[\83h(\8aÖ\90\94 __stdcall SystemImpl::wndFunc(HWND__ *,unsigned int,unsigned int,long) )
+\8cx\8d\90 W8066 .\SystemImpl.cpp 295: \8eÀ\8ds\82³\82ê\82È\82¢\83R\81[\83h(\8aÖ\90\94 __stdcall SystemImpl::wndFunc(HWND__ *,unsigned int,unsigned int,long) )
+\8cx\8d\90 W8004 .\SystemImpl.cpp 319: 'hdc' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 SystemImpl::onPaint(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 319: \83p\83\89\83\81\81[\83^ 'wParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onPaint(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 319: \83p\83\89\83\81\81[\83^ 'lParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onPaint(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 330: \83p\83\89\83\81\81[\83^ 'hwnd' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onActivate(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 330: \83p\83\89\83\81\81[\83^ 'lParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onActivate(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 361: \83p\83\89\83\81\81[\83^ 'hwnd' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onSize(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 361: \83p\83\89\83\81\81[\83^ 'wParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onSize(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 361: \83p\83\89\83\81\81[\83^ 'lParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onSize(HWND__ * const,const unsigned int,const long) )
+*** 1 errors in Compile ***
+
+** error 1 ** deleting .\obj\SystemImpl.obj
diff --git a/project/makebmp.exe b/project/makebmp.exe
new file mode 100644 (file)
index 0000000..4949f1c
Binary files /dev/null and b/project/makebmp.exe differ
diff --git a/project/resource.h b/project/resource.h
new file mode 100644 (file)
index 0000000..7097c13
--- /dev/null
@@ -0,0 +1,25 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by genx.rc
+//
+#define IDI_ICON1                       101
+#define IDR_MENU1                       104
+#define IDD_ABOUT                       105
+#define ID_RESET                        40001
+#define ID_EXIT                         40002
+#define ID_BGM                          40003
+#define ID_EFFECT                       40004
+#define ID_ABOUT                        40005
+#define ID_DIK                          40006
+#define ID_EDITGAME                     40008
+
+// Next default values for new objects
+// 
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE        109
+#define _APS_NEXT_COMMAND_VALUE         40009
+#define _APS_NEXT_CONTROL_VALUE         1009
+#define _APS_NEXT_SYMED_VALUE           101
+#endif
+#endif
diff --git a/project/s2001.EXE b/project/s2001.EXE
new file mode 100644 (file)
index 0000000..5aa514a
Binary files /dev/null and b/project/s2001.EXE differ
diff --git a/project/s2001.dll b/project/s2001.dll
new file mode 100644 (file)
index 0000000..5d4366f
Binary files /dev/null and b/project/s2001.dll differ
diff --git a/project/s2001/AbstractCharacter.cpp b/project/s2001/AbstractCharacter.cpp
new file mode 100644 (file)
index 0000000..eed5ba7
--- /dev/null
@@ -0,0 +1,79 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// AbstractCharacter.cpp: AbstractCharacter \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//     \97\9a\97ð\81F
+// $Log: AbstractCharacter.cpp,v $
+// Revision 1.1  2001/10/28 21:40:34  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.6  2001/07/09 20:30:07  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.5  2001/07/01 21:30:33  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.4  2001/07/01 01:03:43  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.3  2001/06/10 21:18:15  fujiwara
+// \92n\8fã\97p\92Ç\89Á
+//
+// Revision 1.2  2001/05/12 00:48:13  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// SYSTEM INCLUDES //
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include <sfdebug.h>
+
+#include <stack>
+#include <list>
+#include <iostream>
+#include <fstream>
+#include <vector>
+#include       <map>
+#include <string>
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+
+// PROJECT INCLUDES //
+#include "exception.h"
+#include "singleton.h"
+#include "system.h"
+#include "sound.h"
+#include "console.h"
+#include "Obj.h"
+#include "Obj2D.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+#include "Obj3DL.h"
+#include "Background.h"
+#include "input.h"
+#include "Scene.h"
+#include "main.h"
+#include "AbstractScene.h"
+#include "character.h"
+#include "Hit.h"
+#include "MyShip.h"
+#include "Game.h"
+#include "Enemys.h"
+#include "Armys.h"
+#include "DispositionControl.h"
+#include "AbstractCharacter.h"
+#include "MyGroundBullets.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+using namespace sf::application;
+
diff --git a/project/s2001/AbstractCharacter.h b/project/s2001/AbstractCharacter.h
new file mode 100644 (file)
index 0000000..eea1f1d
--- /dev/null
@@ -0,0 +1,112 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// AbstractCharacter.h: AbstractCharacter \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: AbstractCharacter.h,v $
+// Revision 1.1  2001/10/28 21:40:34  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.4  2001/07/09 20:30:07  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.3  2001/07/01 01:03:43  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.2  2001/05/12 00:48:13  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_ABSTRACTCHARACTER_H__210B0A8B_5035_404F_8747_41531FD7A17A__INCLUDED_)
+#define AFX_ABSTRACTCHARACTER_H__210B0A8B_5035_404F_8747_41531FD7A17A__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+
+#include "character.h"
+
+namespace sf {
+       namespace application {
+
+
+// \93o\8fê\95¨\92\8a\8fÛ\83N\83\89\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+class AbstractCharacter : public Character {
+
+       public:
+               // LIFECYCLE //
+               AbstractCharacter()
+               {       mX = mY = mZ = 0.0f;
+                       mpGame = NULL;
+                       mMoveSpeed = 0.0f;
+                       mMoveDirection  = 0.0f;
+                       mLife = 0;
+               };
+               virtual ~AbstractCharacter(){};
+               // OPERATORS //
+               // OPERATIONS //
+               virtual void initialize(void) = 0;
+               // \83L\83\83\83\89\83N\83^\81[\88Ú\93®
+               virtual void move(void) = 0;
+
+               virtual const bool hitCheck(Character * const pDest)
+               {       if(hitObj()->check(pDest->hitObj())){
+                               hit(pDest);
+                               pDest->hit(this);
+                               return true;
+                       }
+                       return false;
+               };
+
+               virtual const bool hitCheck(Characters * const pDest){
+                       return pDest->hitCheck(this);
+               };
+
+               virtual void hit(Character * const pDest) = 0;
+
+               // ACCESS //
+
+               // \92\86\90S\8dÀ\95W
+               virtual const float x(void){ return mX;};
+               virtual void x(const float value){mX = value;};
+
+               virtual const float y(void){return mY;};
+               virtual void y(const float value){mY = value;};
+
+               virtual const float z(void){return mZ;};
+               virtual void z(const float value){mZ = value;};
+
+               // \83\89\83C\83t       
+               virtual const int life(void){return mLife;};
+               virtual void life(const int value){mLife = value;};
+               // \88Ú\93®\83X\83s\81[\83h
+               virtual const float speed(void){return mMoveSpeed;};
+               virtual void speed(const float value){mMoveSpeed = value;};
+               // \88Ú\93®\95û\8cü (\83\89\83W\83A\83\93\81j
+               virtual const float direction(void){return mMoveDirection;};
+               virtual void direction(const float value){mMoveDirection = value;};
+
+
+               virtual sf::application::hit::Interface * const hitObj(void) = 0;
+                       
+               
+               virtual sf::application::scene::Game * const game(void){ return mpGame;};
+               virtual game(sf::application::scene::Game * const value){mpGame = value;};
+
+               virtual int index(void) { return mIndex;};
+               virtual void index(int value){ mIndex = value;};
+               // INQUIRY //
+       private:
+               float mX,mY,mZ;
+               int mLife;
+               float mMoveSpeed,mMoveDirection;
+               int mIndex;
+               sf::application::scene::Game * mpGame;
+};// bullet::Abstract
+       }
+}
+#endif // !defined(AFX_ABSTRACTCHARACTER_H__210B0A8B_5035_404F_8747_41531FD7A17A__INCLUDED_)
diff --git a/project/s2001/AbstractCharacters.h b/project/s2001/AbstractCharacters.h
new file mode 100644 (file)
index 0000000..98c7a71
--- /dev/null
@@ -0,0 +1,82 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// AbstractCharacters.h: AbstractCharacters \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: AbstractCharacters.h,v $
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.2  2001/07/09 20:30:07  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.1  2001/06/03 09:21:03  fujiwara
+// \92\8a\8fÛ\93G\83N\83\89\83X\82Ì\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_ENEMYS_H__8DC400E3_9678_4AA5_B5A2_B96809AEEEEA__INCLUDED_)
+#define AFX_ENEMYS_H__8DC400E3_9678_4AA5_B5A2_B96809AEEEEA__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "character.h"
+namespace sf {
+       namespace application {
+       
+       class AbstractCharacters : public Characters 
+       {
+       public:
+               // LIFE CYCLE //
+               AbstractCharacters();
+               virtual ~AbstractCharacters();
+               // Type \92è\8b` //
+               // \83e\83N\83X\83`\83\83\83\8d\81[\83_\82Ö\82Ì\83|\83C\83\93\83^
+               typedef void (*LoaderFuncPtr)(void);
+               // \83e\83N\83X\83`\83\83\8aJ\95ú\83\81\83\\83b\83h\82Ö\82Ì\83|\83C\83\93\83
+               typedef void (*UnloadFuncPtr)(void);
+
+               // OPERATIONS 
+               void initialize();
+               // \83L\83\83\83\89\83N\83^\81[\88Ú\93®
+               void move(void);
+
+               const bool hitCheck(Character * const pDest);
+               const bool hitCheck(Characters * const pDest);
+               const void clear(int index){mppAbstractCharacters[index] = NULL ; mCount-- ;};
+               void unload(void);
+               
+
+               void ppCharacters(Character ** pp){mppAbstractCharacters = pp;};
+               void ppLoaders(LoaderFuncPtr *pp){mppLoaders = pp;};
+               void ppUnloaders(UnloadFuncPtr *pp){mppUnloaders = pp;};
+               
+               void count(const int value){mCount = value;};
+               const int count(void){return mCount;};
+
+               void max(const int value){mMax = value;};
+               const int max(void){return mMax;};
+
+               void typeMax(const int value){mTypeMax = value;};
+               const int typeMax(void){return mTypeMax;};
+       
+       private:
+               Character **mppAbstractCharacters;
+
+               int mCount;
+               int mMax;
+               int mTypeMax;
+
+               LoaderFuncPtr *mppLoaders;
+               UnloadFuncPtr *mppUnloaders;
+
+       };// AbstractCharacters
+       
+       }// application
+}// sf
+
+#endif // !defined(AFX_ENEMYS_H__8DC400E3_9678_4AA5_B5A2_B96809AEEEEA__INCLUDED_)
diff --git a/project/s2001/AbstractEnemy.cpp b/project/s2001/AbstractEnemy.cpp
new file mode 100644 (file)
index 0000000..11980e3
--- /dev/null
@@ -0,0 +1,120 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+//     \97\9a\97ð\81F
+//     $Log: AbstractEnemy.cpp,v $
+//     Revision 1.1  2001/10/28 21:40:35  fujiwara
+//     DLL\82É\95ª\8a\84
+//     
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// System Includes //
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include <string>
+#include <vector>
+#include <memory>
+#include <stack>
+#include <list>
+#include <iostream>
+#include <fstream>
+#include <map>
+#include "stdio.h"
+#include "math.h"
+
+// Project Includes //
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "exception.h"
+#include "singleton.h"
+#include "system.h"
+#include "console.h"
+#include "input.h"
+#include "sound.h"
+
+#include "Obj.h"
+#include "Obj2D.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+
+#include "Background.h"
+#include "Scene.h"
+#include "main.h"
+
+#include "character.h"
+#include "Hit.h"
+#include "MyShip.h"
+#include "Game.h"
+#include "Enemys.h"
+#include "AbstractCharacter.h"
+#include "AbstractEnemy.h"
+
+
+using namespace sf::application;
+using namespace sf::application::enemy;
+
+sf::system::console::sprite::PSprite AbstractEnemy::mspSpriteLight;
+
+const sf::system::console::sprite::Info AbstractEnemy::msSpriteInfoLight = 
+{
+       "media\\enlight.png",0.0f,0.0f,0.0f,0.0f,0xff000000,console::sprite::SPRITE2D
+};
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+AbstractEnemy::AbstractEnemy()
+{
+
+}
+
+AbstractEnemy::~AbstractEnemy()
+{
+
+}
+
+void AbstractEnemy::initLight(void)
+{
+       // Light\95\94\95ª
+       mObjLight.index(0);
+       mObjLight.sprite(mspSpriteLight.get());
+       mObjLight.color(0x80ffff00);
+       mObjLight.drawMode(sf::system::console::DRAW_ADD);
+       mObjLight.visibility(true);
+       mLightDirection = (int)(-16.0f * sf::system::instance()->deltaTime());
+       mLightCount = 0xff;
+}
+
+void AbstractEnemy::moveLight(void)
+{
+       int temp;
+
+       // \83\89\83C\83g\81H
+       mLightCount += mLightDirection;
+
+       if(mLightCount <= 0 || mLightCount >= 255){
+               mLightDirection = -mLightDirection;
+               mLightCount += mLightDirection; 
+       }
+
+       temp = 0x80000000 + (mLightCount << 16) ;
+       mObjLight.color(temp);
+}
+
+void AbstractEnemy::loadLight(void)
+{
+       using namespace sf::system::console::sprite;
+       if(!mspSpriteLight.get()){
+               sf::system::console::sprite::PSprite ptemp(sf::system::instance()->console()->createSprite(&msSpriteInfoLight)); 
+               mspSpriteLight = ptemp;
+       }
+}
\ No newline at end of file
diff --git a/project/s2001/AbstractEnemy.h b/project/s2001/AbstractEnemy.h
new file mode 100644 (file)
index 0000000..103e60f
--- /dev/null
@@ -0,0 +1,57 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// AbstractEnemy.h: AbstractEnemy \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: AbstractEnemy.h,v $
+// Revision 1.2  2001/11/06 21:25:02  fujiwara
+// \91å\95\9d\8dX\90V\91O\83o\83b\83N\83A\83b\83v
+//
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.3  2001/07/09 20:30:07  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.2  2001/07/01 01:03:43  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_ABSTRACTENEMY_H__1D874A8B_6CCD_407D_A1D5_69B0CD0864AC__INCLUDED_)
+#define AFX_ABSTRACTENEMY_H__1D874A8B_6CCD_407D_A1D5_69B0CD0864AC__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "AbstractCharacter.h"
+
+namespace sf {
+       namespace application {
+               namespace enemy {
+       class AbstractEnemy : public sf::application::AbstractCharacter,public Event
+       {
+       public:
+               AbstractEnemy(){mbUsePath = false;};
+               virtual ~AbstractEnemy();
+               static void loadLight(void);
+               void initLight(void);
+               void moveLight(void);
+               virtual bool isUsePath(void){return mbUsePath;};
+               virtual void usePath(bool bUse){mbUsePath = bUse;};
+       protected:
+               sf::system::console::ObjRectangle mObjLight;
+       private:
+               int mLightCount;
+               int mLightDirection;
+               bool mbUsePath;
+               static sf::system::console::sprite::PSprite mspSpriteLight;
+               static const sf::system::console::sprite::Info msSpriteInfoLight;
+       };
+               }
+       }
+}
+#endif // !defined(AFX_ABSTRACTENEMY_H__1D874A8B_6CCD_407D_A1D5_69B0CD0864AC__INCLUDED_)
diff --git a/project/s2001/AbstractScene.cpp b/project/s2001/AbstractScene.cpp
new file mode 100644 (file)
index 0000000..8b4f8f7
--- /dev/null
@@ -0,0 +1,110 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// AbstarctScene \83N\83\89\83X
+//     Scene\83N\83\89\83X(interface\82É\91\8a\93\96)\82Ì\92\8a\8fÛ(abstract)\83N\83\89\83X
+//  \82 \82è\82ª\82¿\82È\83\81\83\\83b\83h\82ð\8eÀ\91\95
+// \97\9a\97ð:
+// $Log: AbstractScene.cpp,v $
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.5  2001/07/09 20:30:07  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.4  2001/07/01 21:30:33  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.3  2001/07/01 01:03:43  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.2  2001/05/12 00:48:13  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//     2001/01/30 \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p\83\89\83C\83u\83\89\83\8a\83C\83\93\83N\83\8b\81[\83h
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+#include "sfdebug.h"
+
+
+#include <stack>
+#include <list>
+
+#ifdef _DEBUG
+#define new DEBUG_NEW 
+#endif
+
+#include "exception.h"
+#include "singleton.h"
+#include "system.h"
+#include "console.h"
+#include "Scene.h"
+#include "main.h"
+#include "Obj.h"
+#include "Obj2D.h"
+#include "ObjQuadrangle.h"
+#include "ObjRectangle.h"
+#include "AbstractScene.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+using namespace sf::application::scene;
+// \83R\83\93\83X\83g\83\89\83N\83^ -------------------------------------------------------------
+AbstractScene::AbstractScene()
+{
+       //mpListener = NULL;
+       mpSystem = system::Factory::getInstance();
+       mpConsole = mpSystem->console();
+       mpSound = mpSystem->sound();
+       mpInput = mpSystem->input();
+       mpMain = application::MainFactory::getInstance();
+       mbActive = true;
+
+}// AbstarctScene
+
+// \83f\83X\83g\83\89\83N\83^ ---------------------------------------------------------------
+AbstractScene::~AbstractScene()
+{
+
+}// ~AbstarctScene
+
+// \83\8a\83X\83i\81[\82ð\90Ý\92è\82·\82é ---------------------------------------------------------
+void AbstractScene::addListener(Listener *pListener)
+{
+       mListenerList.push_back(pListener);
+} //addListener()
+
+void AbstractScene::removeListener(Listener *pListener)
+{
+       for(std::list<Listener *>::iterator it = mListenerList.begin();it != mListenerList.end();++it)
+       {
+               if(*it == pListener){
+                       *it = NULL;
+                       //mListenerList.erase(it);
+                       return;
+               }
+       }
+} //removeListener()
+
+// \83C\83x\83\93\83g\8cÄ\82Ñ\8fo\82µ\83\81\83\\83b\83
+void AbstractScene::callSceneEvent(void(Listener::* const pMethod)(Scene* const ))
+{
+       std::list<Listener *>::iterator it = mListenerList.begin();
+       
+//     sf::application::scene::Container *pc = sf::application::scene::Container::instance();
+
+       while(it != mListenerList.end())
+       {
+               if(*it != NULL){
+                       ((*it)->*pMethod)(this);
+                       ++it;
+               } else {
+                       it = mListenerList.erase(it);
+               }
+       }
+}
\ No newline at end of file
diff --git a/project/s2001/AbstractScene.h b/project/s2001/AbstractScene.h
new file mode 100644 (file)
index 0000000..cb54d26
--- /dev/null
@@ -0,0 +1,67 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// AbstarctScene \83N\83\89\83X
+//     Scene\83N\83\89\83X(interface\82É\91\8a\93\96)\82Ì\92\8a\8fÛ(abstract)\83N\83\89\83X
+//  \82 \82è\82ª\82¿\82È\83\81\83\\83b\83h\82ð\8bï\8fÛ\89»
+// $Log: AbstractScene.h,v $
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.4  2001/07/09 20:30:07  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.3  2001/07/01 01:03:43  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.2  2001/05/12 00:48:13  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+
+#if !defined(AFX_ABSTRACTSCENE_H__760660AB_BD65_461F_B374_0600A79A0A44__INCLUDED_)
+#define AFX_ABSTRACTSCENE_H__760660AB_BD65_461F_B374_0600A79A0A44__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "scene.h"
+namespace sf {
+       namespace application {
+               namespace scene {
+                       class AbstractScene : public Scene,public Listener
+                       {
+                       public:
+                               // LIFECYCLE //
+                               AbstractScene();
+                               virtual ~AbstractScene();
+                               // OPERATORS //
+
+                               // OPERATIONS//
+                               virtual void move(void) = 0;
+                               
+                               virtual void sleep(void){mbActive = false;};
+                               virtual void active(void){mbActive = true;};
+                               virtual const bool  isActive(void) const {return mbActive;};
+
+                               virtual void addListener(Listener * const pListener);
+                               virtual void removeListener(Listener * const pListener);
+                               // \83C\83x\83\93\83g\8cÄ\82Ñ\8fo\82µ\83\81\83\\83b\83
+                               virtual void callSceneEvent(void(Listener::*pMethod)(Scene* const));
+                       protected:
+                               std::list<Listener*> mListenerList;
+                               system::console::Console *mpConsole;
+                               system::System *mpSystem;
+                               system::sound::Sound *mpSound;
+                               system::input::Input *mpInput;
+                               application::Main * mpMain;
+                               bool mbActive;
+                               bool mbInitialized;
+                       };
+               }// scene
+       }// application
+}// system
+
+#endif // !defined(AFX_ABSTRACTSCENE_H__760660AB_BD65_461F_B374_0600A79A0A44__INCLUDED_)
diff --git a/project/s2001/Armys.cpp b/project/s2001/Armys.cpp
new file mode 100644 (file)
index 0000000..ac464d5
--- /dev/null
@@ -0,0 +1,222 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Armys.cpp: Armys \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//     \97\9a\97ð\81F
+// $Log: Armys.cpp,v $
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.4  2001/07/09 20:30:07  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.3  2001/07/01 21:30:33  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.2  2001/07/01 01:03:43  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.1  2001/06/03 09:21:26  fujiwara
+// \92n\8fã\93G\83N\83\89\83X\82Ì\92Ç\89Á
+//
+// Revision 1.5  2001/05/13 20:04:23  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.4  2001/05/12 08:17:31  fujiwara
+// \88ê\94Ê\95Û\8cì\88á\94½\82ª\8bN\82±\82éBUG\8fC\90³
+//
+// Revision 1.3  2001/05/12 00:50:48  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+
+// System Includes //
+
+#include "sfdebug.h"
+#include <string>
+#include <vector>
+#include <memory>
+#include <stack>
+#include <list>
+#include <iostream>
+#include <fstream>
+#include <map>
+#include "stdio.h"
+#include "math.h"
+
+// Project Includes  //
+
+#include "exception.h"
+#include "singleton.h"
+#include "system.h"
+#include "console.h"
+#include "input.h"
+#include "sound.h"
+
+#include "Obj.h"
+#include "Obj2D.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+
+#include "Background.h"
+#include "Scene.h"
+#include "main.h"
+
+#include "character.h"
+#include "Hit.h"
+#include "MyShip.h"
+#include "Game.h"
+#include "Enemys.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "Armys.h"
+#include "DispositionControl.h"
+#include "EA01.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+
+using namespace sf::application::enemy;
+using namespace sf::application;
+
+IMPLEMENT_SINGLETON(Armys,Armys);
+const Armys::LoaderFuncPtr Armys::mpLoaders[MAX_ARMYS_TYPE] = 
+{      &EA01::load
+};
+
+const int Armys::INIT_ARMYS = 16;
+
+const Armys::CreateFuncPtr Armys::mpFunctions[MAX_ARMYS_TYPE] = 
+{      &EA01::create };
+
+const Armys::UnloadFuncPtr Armys::mpUnloadFunc[MAX_ARMYS_TYPE] = 
+{      &EA01::unload };
+
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Armys::Armys()
+{
+       int i;
+       mCount = 0;
+       mMax = INIT_ARMYS;
+       
+       for(i = 0;i < MAX_ARMYS;i++){
+               mpArmys[i] = NULL;
+       }
+
+}// Armys()
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Armys::~Armys()
+{
+       int i;
+       for(i = 0;i < MAX_ARMYS;i++)
+       {
+               if(mpArmys[i]){
+                       delete mpArmys[i];
+                       mpArmys[i] = NULL;
+               }
+       }
+}// ~Armys()
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Armys::initialize(void){
+       
+       int i;
+       for(i = 0;i < MAX_ARMYS;i++)
+       {
+               if(mpArmys[i]){
+                       delete mpArmys[i];
+                       mpArmys[i] = NULL;
+               }
+       }
+       mCount = 0;
+}// initialize()
+
+// \92e\82Ì\88Ú\93® \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Armys::move(void)
+{
+       for(int i = 0;i < MAX_ARMYS;i++)
+       {
+               if(mpArmys[i]){
+                       mpArmys[i]->move();
+               }
+       }
+}// move()
+
+// \92e\82ð\90\90¬\82·\82é \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+const bool Armys::create(const TYPE id,const float x,const float y,const float z,sf::application::scene::Game *pGame)
+{
+       if(id >= MAX_ARMYS_TYPE)
+               return false;
+
+       if(mCount >= mMax)
+               return false;
+       
+       for(int i = 0 ; i < MAX_ARMYS; i++){
+               if(mpArmys[i] == NULL){
+                       mpArmys[i] = (*mpFunctions[id])(x,y,z,pGame,i);
+                       mCount++;
+                       return true;
+               }
+       }
+       return false;
+}// create()
+
+// \93\96\82è\94»\92è \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+const bool Armys::hitCheck(Character * const pDest){
+       bool return_ = false;
+
+       for(int i = 0;i < MAX_ARMYS;i++){
+               if(mpArmys[i]){
+                       if(mpArmys[i]->hitCheck(pDest)){
+                               mpArmys[i]->hit(pDest);
+                               pDest->hit(mpArmys[i]);
+                               return_ = true; 
+                       };
+               }
+       }
+       return return_;
+}// hitCheck(Character * const pDest)
+
+const bool Armys::hitCheck(Characters * const pDest){
+       bool return_ = false;
+
+       for(int i = 0;i < MAX_ARMYS;i++){
+               if(mpArmys[i]){
+                       if(pDest->hitCheck(mpArmys[i]))
+                               return_ = true;
+               }
+       }
+
+       return return_;
+}// hitCheck(Characters * const pDest)
+
+// \83e\83N\83X\83`\83\83\82Ì\91S\8aJ\95ú \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Armys::unload(void){
+       for(int i = 0;i < MAX_ARMYS_TYPE;i++)
+       {
+               (*mpUnloadFunc[i])();
+       }
+}// unload()
+
+// \83e\83N\83X\83`\83\83\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Armys::load(const int value){
+       // \83r\83b\83g\83}\83b\83v\82Ì\83\8d\81[\83h
+       (*mpLoaders[value])();
+}// load()
+
+void Armys::allBomb(void){
+       ;
+}
diff --git a/project/s2001/Armys.h b/project/s2001/Armys.h
new file mode 100644 (file)
index 0000000..d13fd5f
--- /dev/null
@@ -0,0 +1,83 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Armys.h: Armys \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: Armys.h,v $
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.2  2001/07/09 20:30:07  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.1  2001/06/03 09:21:26  fujiwara
+// \92n\8fã\93G\83N\83\89\83X\82Ì\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_ARMYS_H__8DC400E3_9678_4AA5_B5A2_B96809AEEEEA__INCLUDED_)
+#define AFX_ARMYS_H__8DC400E3_9678_4AA5_B5A2_B96809AEEEEA__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "character.h"
+namespace sf {
+       namespace application {
+               namespace enemy {
+       
+       const int MAX_ARMYS_TYPE = 1;
+       const int MAX_ARMYS = 64;
+
+       class Armys : public Characters ,public Event
+       {
+               DECLARE_SINGLETON(Armys)
+               Armys();
+       public:
+               ~Armys();
+               // Type \92è\8b` //
+               // \83I\83u\83W\83F\83N\83g\90\90¬\83\81\83\\83b\83h\82Ö\82Ì\83|\83C\83\93\83
+               typedef sf::application::Character * const (*CreateFuncPtr)(float,float,float,sf::application::scene::Game * const ,int);
+               // \83e\83N\83X\83`\83\83\83\8d\81[\83_\82Ö\82Ì\83|\83C\83\93\83^
+               typedef void (*LoaderFuncPtr)(void);
+               // \83e\83N\83X\83`\83\83\8aJ\95ú\83\81\83\\83b\83h\82Ö\82Ì\83|\83C\83\93\83
+               typedef void (*UnloadFuncPtr)(void);
+
+               enum TYPE {
+                       ZK01 = 0
+               };
+               // OPERATIONS 
+               void initialize(void);
+               // \83L\83\83\83\89\83N\83^\81[\88Ú\93®
+               void move(void);
+
+               const bool create(const TYPE id,const float x,const float y,const float z,sf::application::scene::Game *pGame);
+               const bool hitCheck(Character * const pDest);
+               const bool hitCheck(Characters * const pDest);
+               const void clear(int index){mpArmys[index] = NULL ; mCount-- ;};
+               void unload(void);
+               void load(const int value);
+               
+               // Event 
+               void allBomb(void);
+       
+       private:
+               Character *mpArmys[MAX_ARMYS];
+               int mCount;
+               int mMax;
+
+               static const LoaderFuncPtr mpLoaders[MAX_ARMYS_TYPE];
+               static const int INIT_ARMYS;
+               static const CreateFuncPtr mpFunctions[MAX_ARMYS_TYPE];
+               static const UnloadFuncPtr mpUnloadFunc[MAX_ARMYS_TYPE];
+
+       };// Armys
+       
+               }// enemy
+       }// application
+}// sf
+
+#endif // !defined(AFX_ARMYS_H__8DC400E3_9678_4AA5_B5A2_B96809AEEEEA__INCLUDED_)
diff --git a/project/s2001/CVS/Entries b/project/s2001/CVS/Entries
new file mode 100644 (file)
index 0000000..c8dc250
--- /dev/null
@@ -0,0 +1,64 @@
+/AbstractCharacter.cpp/1.1/Sun Oct 28 21:40:34 2001//
+/AbstractCharacter.h/1.1/Sun Oct 28 21:40:34 2001//
+/AbstractCharacters.h/1.1/Sun Oct 28 21:40:36 2001//
+/AbstractEnemy.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/AbstractScene.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/AbstractScene.h/1.1/Sun Oct 28 21:40:36 2001//
+/Armys.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/Armys.h/1.1/Sun Oct 28 21:40:36 2001//
+/DispositionControl.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/DispositionControl.h/1.1/Sun Oct 28 21:40:36 2001//
+/EA01.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/EA01.h/1.1/Sun Oct 28 21:40:36 2001//
+/EB01.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/EB01.h/1.1/Sun Oct 28 21:40:36 2001//
+/Effects.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/Effects.h/1.1/Sun Oct 28 21:40:36 2001//
+/EnemyBullets.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/EnemyBullets.h/1.1/Sun Oct 28 21:40:36 2001//
+/Enemys.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/Enemys.h/1.1/Sun Oct 28 21:40:36 2001//
+/Explosion.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/Fade.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/Fade.h/1.1/Sun Oct 28 21:40:36 2001//
+/Game.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/Game.h/1.1/Sun Oct 28 21:40:36 2001//
+/Hit.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/Hit.h/1.1/Sun Oct 28 21:40:36 2001//
+/MainApp.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/MainApp.h/1.1/Sun Oct 28 21:40:36 2001//
+/MyBullets.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/MyBullets.h/1.1/Sun Oct 28 21:40:36 2001//
+/MyGroundBullets.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/MyGroundBullets.h/1.1/Sun Oct 28 21:40:36 2001//
+/MyShip.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/MyShip.h/1.1/Sun Oct 28 21:40:36 2001//
+/Over.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/Over.h/1.1/Sun Oct 28 21:40:36 2001//
+/ReadMe.txt/1.1/Sun Oct 28 09:19:54 2001//
+/Restart.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/Restart.h/1.1/Sun Oct 28 21:40:36 2001//
+/Scene.cpp/1.1/Sun Oct 28 21:40:36 2001//
+/SceneAuthor.cpp/1.1/Sun Oct 28 21:40:38 2001//
+/SceneAuthor.h/1.1/Sun Oct 28 21:40:38 2001//
+/Start.cpp/1.1/Sun Oct 28 21:40:38 2001//
+/Start.h/1.1/Sun Oct 28 21:40:38 2001//
+/StdAfx.cpp/1.1/Sun Oct 28 09:19:54 2001//
+/StdAfx.h/1.1/Sun Oct 28 13:01:34 2001//
+/Target.cpp/1.1/Sun Oct 28 21:40:38 2001//
+/Target.h/1.1/Sun Oct 28 21:40:38 2001//
+/Title.cpp/1.1/Sun Oct 28 21:40:38 2001//
+/Title.h/1.1/Sun Oct 28 21:40:38 2001//
+/ZK01.cpp/1.1/Sun Oct 28 21:40:38 2001//
+/ZK01.h/1.1/Sun Oct 28 21:40:38 2001//
+/ZK02.cpp/1.1/Sun Oct 28 21:40:38 2001//
+/ZK02.h/1.1/Sun Oct 28 21:40:38 2001//
+/character.cpp/1.1/Sun Oct 28 21:40:38 2001//
+/character.h/1.1/Sun Oct 28 21:40:38 2001//
+/explosion.h/1.1/Sun Oct 28 21:40:38 2001//
+/s2001.plg/1.1/Sun Oct 28 14:04:02 2001//
+/AbstractEnemy.h/1.2/Tue Nov 06 21:25:02 2001//
+/Scene.h/1.2/Tue Nov 06 21:27:34 2001//
+/s2001.cpp/1.2/Tue Nov 06 21:27:34 2001//
+/s2001.dsp/1.2/Tue Oct 30 13:19:00 2001//
+D
diff --git a/project/s2001/CVS/Repository b/project/s2001/CVS/Repository
new file mode 100644 (file)
index 0000000..c176858
--- /dev/null
@@ -0,0 +1 @@
+project/s2001
diff --git a/project/s2001/CVS/Root b/project/s2001/CVS/Root
new file mode 100644 (file)
index 0000000..df6650f
--- /dev/null
@@ -0,0 +1 @@
+:local:c:\home
diff --git a/project/s2001/Controller.cpp b/project/s2001/Controller.cpp
new file mode 100644 (file)
index 0000000..8a1e26e
--- /dev/null
@@ -0,0 +1,20 @@
+// Controller.cpp: Controller \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//
+//////////////////////////////////////////////////////////////////////
+
+#include "stdafx.h"
+#include "Controller.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+Controller::Controller()
+{
+
+}
+
+Controller::~Controller()
+{
+
+}
diff --git a/project/s2001/Controller.h b/project/s2001/Controller.h
new file mode 100644 (file)
index 0000000..51e256b
--- /dev/null
@@ -0,0 +1,68 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Controller.h: Controller \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+// \94z\92u\83R\83}\83\93\83h\83\8a\83X\83g\82¨\82æ\82Ñ\82»\82Ì\90§\8cä\82ð\8ds\82¤\83C\83\93\83^\81[\83t\83F\81[\83X
+//     \97\9a\97ð\81F
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_CONTROLLER_H__3BA9FFD8_ADFD_419D_B1AA_700CEA340332__INCLUDED_)
+#define AFX_CONTROLLER_H__3BA9FFD8_ADFD_419D_B1AA_700CEA340332__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "../sfinterface.h"
+
+namespace sf {
+       namespace application {
+       namespace command {
+
+// \94z\92u\83R\83}\83\93\83h\82Ì\90§\8cä //
+class Controller  
+{
+public:
+       // \8c^\92è\8b
+       typedef std::multimap<float,command::Interface * > CommandList;
+       typedef command::Interface * const (*CreateFuncPtr)(void);
+
+       // LIFECYCLE 
+       Controller(){};
+       virtual ~Controller(){};
+               
+       // OPERATIONS
+       
+       // \94z\92u\83f\81[\83^\82ð\94j\8aü\82·\82é
+       virtual void unload(void) = 0;
+       // \94z\92u\83f\81[\83^\83t\83@\83C\83\8b\82Ì\83\8d\81[\83h
+       virtual void load(const char * const pFileName) = 0;
+       // \94z\92u\83f\81[\83^\83t\83@\83C\83\8b\82Ì\83Z\81[\83u
+       virtual void save(const char * const pFileName = NULL) = 0;
+       // \94z\92u\83f\81[\83^\82ð\8eÀ\8ds             
+       virtual void exec(const float position) = 0;
+       // \8ew\92è\82µ\82½\88Ê\92u\82É\83C\83e\83\8c\81[\83^\82ð\88Ú\93®
+       virtual void restart(const float position) = 0;
+       virtual void insertCommand(const float position,command::Interface * const pInterface) = 0;
+       // \83V\83\8a\83A\83\8bNo\82Å\94z\92u\83f\81[\83^\82ð\8dí\8f\9c
+       virtual void deleteCommand(const int serialNo) = 0 ;
+       // \94z\92u\83}\83b\83v\82Ì\88Ê\92u\82Å\93G\82ð\8dí\8f\9c 
+       virtual void deleteCommand(const float x,const float y,const float position,const command::TYPE type) = 0;
+       // \83R\83}\83\93\83h\83I\83u\83W\83F\83N\83g\82Ì\90\90¬ 
+       static command::Interface * const create(const command::TYPE type) = 0;
+       // ACCESS //
+
+       // Game\83I\83u\83W\83F\83N\83g\82Ö\82Ì\83|\83C\83\93\83^
+       virtual sf::application::scene::Game * const game() = 0;
+       virtual void game(sf::application::scene::Game * const pGame) = 0;
+
+       virtual CommandList& commandList() = 0;
+};
+
+               }
+       }
+}
+
+
+#endif // !defined(AFX_CONTROLLER_H__3BA9FFD8_ADFD_419D_B1AA_700CEA340332__INCLUDED_)
diff --git a/project/s2001/DispositionControl.cpp b/project/s2001/DispositionControl.cpp
new file mode 100644 (file)
index 0000000..bdbb6ea
--- /dev/null
@@ -0,0 +1,665 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// DispositionControl.cpp: DispositionControl \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//     \97\9a\97ð\81F
+// $Log: DispositionControl.cpp,v $
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.7  2001/07/01 21:30:33  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.6  2001/07/01 01:03:43  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.5  2001/05/17 12:34:10  fujiwara
+// \92n\8fã\93G\83T\83\93\83v\83\8b\8dì\90¬
+//
+// Revision 1.4  2001/05/12 12:48:28  fujiwara
+// \94z\92u\83G\83f\83B\83^\8dì\90¬\82É\94º\82¤\95Ï\8dX\81E\92Ç\89Á
+//
+// Revision 1.3  2001/05/12 00:57:59  fujiwara
+// (none)
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// SYSTEM INCLUDES //
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+
+#include "sfdebug.h"
+
+#include <string>
+#include <stack>
+#include <list>
+#include <iostream>
+#include <fstream>
+#include <vector>
+#include <map>
+
+
+// PROJECT INCLUDES //
+
+#include "exception.h"
+#include "system.h"
+#include "sound.h"
+#include "console.h"
+#include "Obj.h"
+#include "Obj2D.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+#include "Obj3DL.h"
+#include "Background.h"
+#include "input.h"
+#include "Scene.h"
+#include "main.h"
+#include "AbstractScene.h"
+#include "character.h"
+#include "Hit.h"
+#include "MyShip.h"
+#include "Game.h"
+#include "Enemys.h"
+#include "Armys.h"
+#include "ZK01.h"
+#include "DispositionControl.h"
+#include "DispositionEditor.h"
+
+#ifdef _DEBUG
+#ifndef _BORLAND
+#define new DEBUG_NEW
+#endif
+#endif
+
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+
+using namespace sf::application::disposition;
+using namespace sf;
+using namespace sf::application::disposition::command;
+
+// \83R\83}\83\93\83h\97ñ //
+const std::string ControllerImpl::mCommand[command::MAX] = {
+       "Reset",
+       "SetScrollSpeed",
+       "SetRestartPosition",
+       "SetEnemy",
+       "SetArmy"
+};
+
+const ControllerImpl::CreateFuncPtr ControllerImpl::mpCreateFunc[command::MAX] 
+= {    &command::Reset::create,
+       &command::SetScrollSpeed::create,
+       &command::SetRestartPosition::create,
+       &command::SetEnemy::create,
+       &command::SetArmy::create
+};
+
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+ControllerImpl::ControllerImpl(){
+}
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+ControllerImpl::~ControllerImpl(){
+       for(CommandList::iterator it = mData.begin();it != mData.end();++it)
+       {
+               delete (*it).second;
+       }
+       mData.clear();
+}
+
+// \83f\81[\83^\82Ì\83A\83\93\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ControllerImpl::unload(void)
+{
+       for(CommandList::iterator it = mData.begin();it != mData.end();++it)
+       {
+               delete (*it).second;
+       }
+       mData.clear();
+
+       // \93G\83e\83N\83X\83`\83\83\82Ì\83A\83\93\83\8d\81[\83h
+       sf::application::enemy::Enemys::instance()->unload();
+}// unload()
+
+// \94z\92u\83f\81[\83^\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ControllerImpl::load(const char * const pFileName)
+{
+       mSerialNo = 0;
+       unload();
+       char err_loadstr[] = "ControllerImpl:load() Error!";
+       
+       std::fstream file(pFileName,std::ios::in);
+       
+       if(!file.is_open()){
+               std::string  tmp;
+               
+               tmp += "File Open Error! ";
+               tmp += "Disposition File ";
+               tmp += pFileName;
+               tmp += " Not Found!!";
+
+               throw FatalErrorException(tmp,__FILE__,__LINE__);
+       }
+       
+       mFileName = pFileName;
+       
+       int position,command_id;
+       std::string command_str;
+
+       while(!file.eof()){
+
+                       
+               file >> position;
+               
+               if(file.fail())
+                       break;
+
+               file >> command_str;
+               command_id = findCommand(command_str);
+               command_id--;
+               
+               command::Interface *pinterface = create((command::TYPE)command_id);
+               pinterface->load(file);
+
+               if(file.fail())
+                       throw FatalErrorException(err_loadstr,__FILE__,__LINE__);
+               
+               pinterface->game(game());
+               insertCommand(position,pinterface);
+       }
+       mDataIter = mData.begin();
+}//load()
+
+// \83R\83}\83\93\83h\82ð\83T\81[\83`\82µ\81A\82»\82Ì\83C\83\93\83f\83b\83N\83X\82ð\95Ô\82· \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+const int ControllerImpl::findCommand(const std::string &s)
+{
+       for(int i = 0;i < command::MAX;i++){
+               if(s == mCommand[i]){
+                       i++;
+                       return i;
+               }
+       }
+       throw FatalErrorException("ControllerImpl::findCommand() Command Parse Error!!",__FILE__,__LINE__);
+       return 0;
+}// findCommand()
+
+// \83I\83u\83W\83F\83N\83g\90\90¬ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+//command::Interface * ControllerImpl::create(command::TYPE command_id)
+//{
+//     return (mpCreateFunc[command_id])();
+//}// create
+
+// \83\8a\83X\83^\81[\83g\88Ê\92u\82É\83R\83}\83\93\83h\82ð\82 \82í\82¹\82é \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ControllerImpl::restart(const float position){
+       mDataIter = mData.begin();
+       
+       if(mDataIter == mData.end()) return;
+
+       while(mDataIter != mData.end() && mDataIter->first < position)
+       {
+               mDataIter++;
+       };
+}//restart();
+
+
+// \83f\81[\83^\82Ì\83Z\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ControllerImpl::save(const char * const pMapFileName)
+{
+       std::string  err_savestr = "ControllerImpl:save() Error!";
+       char *pfile_name;
+
+       // \83t\83@\83C\83\8b\83l\81[\83\80\82ªNULL\82Ì\8fê\8d\87\81A\83\8d\81[\83h\8e\9e\82Ì\83t\83@\83C\83\8b\83l\81[\83\80\82ð\8eg\97p
+       if(pMapFileName == NULL){
+               if(mFileName.c_str() == NULL){
+                       throw FatalErrorException(err_savestr,__FILE__,__LINE__);
+               } else {
+                       pfile_name = const_cast<char*>(mFileName.c_str());
+               }
+       } else {
+               pfile_name = const_cast<char*>(pMapFileName);
+       }
+
+       std::fstream file(pfile_name,std::ios::out);
+       
+       if(!file.is_open()){
+               std::string tmp ="";
+               tmp += "File Open Error! ";
+               tmp += "Disposition File ";
+               tmp += pMapFileName;
+               tmp += " Not Found!!";
+               throw FatalErrorException(tmp,__FILE__,__LINE__);
+       }
+
+       bool bflag = false;
+       
+       for(CommandList::iterator it = mData.begin();
+                       it != mData.end(); it++)
+       {
+               if(bflag)
+                       file << std::endl;
+
+               file << it->first << " ";
+               file << mCommand[it->second->id()];
+               
+               it->second->save(file);
+               
+               bflag = true;
+               if(file.fail())
+                       throw FatalErrorException(err_savestr,__FILE__,__LINE__);
+       }
+}// save()
+
+// \83R\83}\83\93\83h\82Ì\8eÀ\8d\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ControllerImpl::exec(const float position){
+       
+       if(mDataIter->first > position || mDataIter == mData.end())
+               return;
+
+       while(mDataIter->first <= position && mDataIter != mData.end()){
+               mDataIter->second->exec(position);
+               mDataIter++;
+       }
+
+}// exec()
+
+// \93G\82Ì\8dí\8f\9c \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ControllerImpl::deleteCommand(const float x,const float y,const float position,command::TYPE type)
+{
+       std::pair< CommandList::iterator, CommandList::iterator > it_pair
+        = mData.equal_range( position );
+
+       CommandList::iterator it = it_pair.first;
+       
+       command::SetEnemy *pe = NULL;
+       command::SetArmy *pe1 = NULL;
+
+       const int range = 6.0f;
+       float tx,ty;
+
+       while(it != it_pair.second){
+               if(it->second->id() == type){
+                       switch(type){
+                       case SET_ENEMY:
+                               pe = dynamic_cast<command::SetEnemy *>(it->second);
+                               tx = pe->x() + game()->background()->startOffsetX();
+                               ty = pe->y() + game()->background()->startOffsetY();
+                               if(x > (tx - range) && x < (tx + range) && y > (ty - range) && y < (ty + range)){
+                                       mData.erase(it);
+                                       return;
+                               }
+                               break;
+                       case SET_ARMY:
+                               pe1 = dynamic_cast<command::SetArmy *>(it->second);
+                               tx = pe1->x() + game()->background()->startOffsetX();
+                               ty = pe1->y() + game()->background()->startOffsetY();
+                               if(x > (tx - range) && x < (tx + range) && y > (ty - range) && y < (ty + range)){
+                                       mData.erase(it);
+                                       return;
+                               }
+                               break;
+                       default:
+                               tx = sf::system::console::viewport::X + game()->background()->startOffsetX();
+                               ty = game()->background()->startOffsetY();
+                               if(x > (tx - range) && x < (tx + range) && y > (ty - range) && y < (ty + range)){
+                                       mData.erase(it);
+                                       return;
+                               }
+                               return;
+                       }
+               }
+               ++it;
+       }
+}// deleteCommand()
+
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+// Abstract 
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+
+void Abstract::draw(sf::application::scene::DispositionEditor *pEditor,float position,bool bMouse)
+{
+       if(sprite() == NULL)
+               return;
+
+       if(bMouse){
+               pEditor->x(pEditor->mouseX());
+               pEditor->y(pEditor->mouseY());
+       } else {
+               pEditor->x(sf::system::console::viewport::X + sf::system::console::viewport::WIDTH / 2.0f + game()->background()->startOffsetX());
+               pEditor->y(game()->background()->startOffsetY()
+                       + (game()->scrollY() - position));
+       }
+
+       if(position == game()->scrollY() && !bMouse)
+               pEditor->specular(0x00208020);
+       else
+               pEditor->specular(0);
+       
+       pEditor->drawMode(sf::system::console::DRAW_TRANS);
+       pEditor->color(0xffffffff);
+
+       sprite()->draw(pEditor);
+}// Abstract::draw()
+
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+// SetScrollSpeed 
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+
+sf::system::console::sprite::PSprite SetScrollSpeed::mspSprite;
+
+const sf::system::console::sprite::Info SetScrollSpeed::msSpriteInfo = 
+{
+       "media\\SetScrollSpeed.png",0.0f,0.0f,0.0f,0.0f,0xff000000,sf::system::console::sprite::SPRITE2D
+};
+
+// \83\8a\83\\81[\83X\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SetScrollSpeed::loadResource(void){
+       using namespace sf::system::console::sprite;
+       if(!mspSprite.get()){
+               PSprite ptemp(sf::system::instance()->console()->createSprite(&msSpriteInfo)); 
+               mspSprite = ptemp;
+       }
+}// SetScrollSpeed::loadResource()
+
+// \83\8a\83\\81[\83X\82Ì\83A\83\93\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SetScrollSpeed::unloadResource(void){
+       using namespace sf::system::console::sprite;
+       PSprite ptmp(NULL);
+       mspSprite = ptmp;
+}// SetScrollSpeed::unloadResource()
+
+
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+// SetRestartPosition 
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+sf::system::console::sprite::PSprite SetRestartPosition::mspSprite;
+
+const sf::system::console::sprite::Info SetRestartPosition::msSpriteInfo = 
+{
+       "media\\Restart.png",0.0f,0.0f,0.0f,0.0f,0xff000000,sf::system::console::sprite::SPRITE2D
+};
+
+// \83\8a\83\\81[\83X\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SetRestartPosition::loadResource(void){
+       using namespace sf::system::console::sprite;
+       if(!mspSprite.get()){
+               PSprite ptemp(sf::system::instance()->console()->createSprite(&msSpriteInfo)); 
+               mspSprite = ptemp;
+       }
+}// SetRestartPosition::loadResource()
+
+// \83\8a\83\\81[\83X\82Ì\83A\83\93\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SetRestartPosition::unloadResource(void){
+       using namespace sf::system::console::sprite;
+       PSprite ptmp(NULL);
+       mspSprite = ptmp;
+}// SetRestartPosition::unloadResource()
+
+
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+// SetEnemy 
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+
+sf::system::console::sprite::PSprite SetEnemy::mspSprites[sf::application::enemy::MAX_TYPE];
+const sf::system::console::sprite::Info SetEnemy::msSpriteInfos[sf::application::enemy::MAX_TYPE] =
+{
+       {"media\\zk01.png",0.0f,0.0f,64.0f,64.0f,0xff000000,sf::system::console::sprite::SPRITE2D},
+       {"media\\zk02.png",0.0f,0.0f,64.0f,64.0f,0xff000000,sf::system::console::sprite::SPRITE2D}
+};
+
+
+// \83I\83y\83\8c\81[\83^\83I\81[\83o\81[\83\89\83C\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+std::ostream & operator <<
+                ( std::ostream &rOStrm    // cStrStrm
+                , const sf::application::scene::Game::DIFFICULTY &rDifficulty )    // cInt
+{
+       int temp = (int)rDifficulty;
+    return rOStrm << temp;    // \8aù\91\82Ì\8aÖ\90\94\82ð\8cÄ\82Ñ\8fo\82µ\82Ü\82·\81B
+}
+
+std::istream& operator >> ( std::istream& rIStrm, sf::application::scene::Game::DIFFICULTY &rDifficulty )
+{
+       int temp;
+       rIStrm >> temp;
+       rDifficulty = (sf::application::scene::Game::DIFFICULTY)temp;
+       return rIStrm;
+}
+
+
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+SetEnemy::SetEnemy()
+{      mX = mY = mZ = 0.0f;
+       mEnemyNo = 0;
+       mDifficulty = sf::application::scene::Game::EASY;
+};
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+SetEnemy::~SetEnemy(){;};
+
+// \8dÅ\91å\90\94\82ð\95Ô\82· \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+const int SetEnemy::max(void) const
+{
+       return sf::application::enemy::MAX_TYPE;
+}
+
+// \83R\83}\83\93\83h\82Ì\8eÀ\8d\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SetEnemy::exec(const float position)
+{
+       if(mDifficulty <= game()->difficulty()){
+               sf::application::enemy::Enemys::instance()->create(
+                       (sf::application::enemy::Enemys::TYPE)mEnemyNo,
+                       mX,mY,mZ,game()
+                       );
+       }
+};
+
+// \83R\83}\83\93\83h\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SetEnemy::load(std::istream &is){
+
+       is >> mDifficulty;
+       is >> mEnemyNo;
+       is >> mX;
+       is >> mY;
+       is >> mZ;
+       
+       sf::application::enemy::Enemys::instance()->load(mEnemyNo);
+};// load()
+
+// \83R\83}\83\93\83h\82Ì\83Z\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SetEnemy::save(std::ostream &os){
+       os << " " << mDifficulty;
+       os << " " << mEnemyNo;
+       os << " " << mX ;
+       os << " " << mY;
+       os << " " << mZ;
+};// save();
+
+// \83\8a\83\\81[\83X\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SetEnemy::loadResource(void){
+       using namespace sf::system::console::sprite;
+       for(int i = 0;i < sf::application::enemy::MAX_TYPE;i++){
+               if(!mspSprites[i].get()){
+                       PSprite ptemp(sf::system::instance()->console()->createSprite(&msSpriteInfos[i])); 
+                       mspSprites[i] = ptemp;
+               }
+       }
+}// SetEnemy::loadResource()
+
+// \83\8a\83\\81[\83X\82Ì\83A\83\93\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SetEnemy::unloadResource(void){
+       using namespace sf::system::console::sprite;
+       for(int i = 0;i < sf::application::enemy::MAX_TYPE;i++){
+               if(mspSprites[i].get()){
+                       PSprite ptmp(NULL);
+                       mspSprites[i] = ptmp;
+               }
+       }
+}// SetEnemy::unloadResource()
+
+// \93G\83}\81[\83J\81[\82Ì\95`\89æ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SetEnemy::draw(sf::application::scene::DispositionEditor * const pEditor
+                                       ,const float position,const bool bMouse)
+{
+       using namespace sf::application::scene;
+       // \83}\83E\83X\83J\81[\83\\83\8b\82É\92Ç\8f]\82·\82é\82©
+       if(bMouse){
+               pEditor->x(pEditor->mouseX());
+               pEditor->y(pEditor->mouseY());
+       } else {
+               pEditor->x(x() + game()->background()->startOffsetX());
+               pEditor->y(y() + game()->background()->startOffsetY()
+                       + (game()->scrollY() - position));
+       }
+
+       if(position == game()->scrollY() && !bMouse)
+               pEditor->specular(DispositionEditor::CURRENT_SPECULAR);
+       else
+               pEditor->specular(DispositionEditor::NORMAL_SPECULAR);
+       
+       pEditor->drawMode(sf::system::console::DRAW_TRANS);
+       pEditor->color(0xffffffff);
+
+       mspSprites[mEnemyNo]->draw(pEditor);
+
+}// SetEnemy::draw()
+
+// \83L\81[\89\9f\89º\8e\9e\82Ì\8f\88\97\9d \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SetEnemy::keyDown(const DWORD keyCode,const DWORD extKeyCode)
+{
+       switch((char)keyCode)
+       {
+       case '1':
+               if(mEnemyNo > 0)
+                       mEnemyNo--;
+               break;
+       case '2':
+               if(mEnemyNo < max() - 1)
+                       mEnemyNo++;
+               break;
+       }
+}//keyDown();
+
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+// SetArmy 
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+
+sf::system::console::sprite::PSprite SetArmy::mspSprites[sf::application::enemy::MAX_ARMYS_TYPE];
+const sf::system::console::sprite::Info SetArmy::msSpriteInfos[sf::application::enemy::MAX_ARMYS_TYPE] =
+{
+       {"media\\ea01.png",0.0f,0.0f,64.0f,64.0f,0xff000000,sf::system::console::sprite::SPRITE2D}
+};
+
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+SetArmy::SetArmy()
+{      mX = mY = mZ = 0.0f;
+       mEnemyNo = 0;
+       mDifficulty = sf::application::scene::Game::EASY;
+};
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+SetArmy::~SetArmy(){;};
+
+// \8dÅ\91å\90\94\82ð\95Ô\82· \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+const int SetArmy::max(void) const
+{
+       return sf::application::enemy::MAX_ARMYS_TYPE;
+}
+
+// \83R\83}\83\93\83h\82Ì\8eÀ\8d\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SetArmy::exec(const float position)
+{
+       if(mDifficulty <= game()->difficulty()){
+               sf::application::enemy::Armys::instance()->create(
+                       (sf::application::enemy::Armys::TYPE)mEnemyNo,
+                       mX,mY,mZ,game()
+                       );
+       }
+};
+
+// \83R\83}\83\93\83h\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SetArmy::load(std::istream &is){
+       
+       is >> mDifficulty;
+       is >> mEnemyNo;
+       is >> mX;
+       is >> mY;
+       is >> mZ;
+
+       sf::application::enemy::Armys::instance()->load(mEnemyNo);
+
+};// load()
+
+// \83R\83}\83\93\83h\82Ì\83Z\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SetArmy::save(std::ostream &os){
+       os << " " << mDifficulty;
+       os << " " << mEnemyNo;
+       os << " " << mX ;
+       os << " " << mY;
+       os << " " << mZ;
+};// save();
+
+// \83\8a\83\\81[\83X\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SetArmy::loadResource(void){
+       using namespace sf::system::console::sprite;
+       for(int i = 0;i < sf::application::enemy::MAX_TYPE;i++){
+               if(!mspSprites[i].get()){
+                       PSprite ptemp(sf::system::instance()->console()->createSprite(&msSpriteInfos[i])); 
+                       mspSprites[i] = ptemp;
+               }
+       }
+}// SetArmy::loadResource()
+
+// \83\8a\83\\81[\83X\82Ì\83A\83\93\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SetArmy::unloadResource(void){
+       using namespace sf::system::console::sprite;
+       for(int i = 0;i < sf::application::enemy::MAX_TYPE;i++){
+               if(mspSprites[i].get()){
+                       PSprite ptmp(NULL);
+                       mspSprites[i] = ptmp;
+               }
+       }
+}// SetArmy::unloadResource()
+
+// \94z\92u\83}\83b\83v\8fã\82É\95`\89æ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SetArmy::draw(sf::application::scene::DispositionEditor * const pEditor,const float position,const bool bMouse)
+{
+       if(bMouse){
+               pEditor->x(pEditor->mouseX());
+               pEditor->y(pEditor->mouseY());
+       } else {
+               pEditor->x(game()->background()->startOffsetX());
+               pEditor->y(game()->background()->startOffsetY()
+                       + (game()->scrollY() - position));
+       }
+
+       if(position == game()->scrollY() && !bMouse)
+               pEditor->specular(0x00208020);
+       else
+               pEditor->specular(0);
+       
+       pEditor->drawMode(sf::system::console::DRAW_TRANS);
+       pEditor->color(0xffffffff);
+
+       mspSprites[mEnemyNo]->draw(pEditor);
+}// SetArmy::draw()
+
+// \83L\81[\89\9f\89º\8e\9e\82Ì\8f\88\97\9d \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SetArmy::keyDown(const DWORD keyCode,const DWORD extKeyCode)
+{
+       switch((char)keyCode)
+       {
+       case '1':
+               if(mEnemyNo > 0)
+                       mEnemyNo--;
+               break;
+       case '2':
+               if(mEnemyNo < max() - 1)
+                       mEnemyNo++;
+               break;
+       }
+}//keyDown();
diff --git a/project/s2001/DispositionControl.h b/project/s2001/DispositionControl.h
new file mode 100644 (file)
index 0000000..3f778f2
--- /dev/null
@@ -0,0 +1,580 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// DispositionControl.h: DispositionControl \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+// \94z\92u\83f\81[\83^\90§\8cä
+//     \97\9a\97ð\81F
+// $Log: DispositionControl.h,v $
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.7  2001/07/09 20:30:08  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.6  2001/07/01 01:03:43  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.5  2001/05/17 12:34:10  fujiwara
+// \92n\8fã\93G\83T\83\93\83v\83\8b\8dì\90¬
+//
+// Revision 1.4  2001/05/12 12:48:28  fujiwara
+// \94z\92u\83G\83f\83B\83^\8dì\90¬\82É\94º\82¤\95Ï\8dX\81E\92Ç\89Á
+//
+// Revision 1.3  2001/05/12 00:50:48  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_DISPOSITIONCONTROL_H__B18EC6D6_B30C_4A24_B747_D0EBBC6F71F2__INCLUDED_)
+#define AFX_DISPOSITIONCONTROL_H__B18EC6D6_B30C_4A24_B747_D0EBBC6F71F2__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+namespace sf {
+       namespace application {
+               namespace scene {
+                       class DispositionEditor;
+               };
+
+               namespace disposition {
+
+       // \94z\92u\83R\83}\83\93\83h\83I\83u\83W\83F\83N\83g
+       namespace command { 
+               // ----------------------------------------------------
+               // \83R\83}\83\93\83h\83f\81[\83^\82Ì\88Ó\96¡\81i\83t\83@\83C\83\8b\82É\95Û\91\82³\82ê\82Ä\82¢\82é\8e\9e\81
+               // position float Y\88Ê\92u
+               // command  string \83R\83}\83\93\83h\96¼
+               // parameter ... \83p\83\89\83\81\81[\83^\97ñ(\8ae\83R\83}\83\93\83h\82²\82Æ\82É\92·\82³\82Í\88Ù\82È\82é\81j
+               // ----------------------------------------------------
+               
+               const int MAX = 5;// \83R\83}\83\93\83h\82Ì\8dÅ\91å\90\94
+               enum TYPE {
+                       RESET = 0,
+                       SET_SCROLLSPEED = 1,
+                       SET_RESTARTPOSITION = 2,
+                       SET_ENEMY = 3,
+                       SET_ARMY = 4
+               };
+
+               // --- \83R\83\93\83e\83i\8eû\94[\97p\83C\83\93\83^\81[\83t\83F\81[\83X --- //
+
+               class Interface : 
+                       public sf::system::input::keyboard::Listener
+                       ,public sf::system::input::mouse::Listener 
+               {
+                       
+                       // LIFECYCLE //
+
+               public:
+                       Interface(){;};
+                       virtual ~Interface(){;};
+
+                       // OPERATORS //
+
+                       // \83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8dl\82¦\95û\82©\82ç\82·\82ê\82Î\82±\82ê\82Í\94½\91¥\8ds\88×\81I
+                       // \91ã\93ü\89\89\8eZ\8eq\82Ívirtual\82É\82Å\82«\82È\82¢\82Ì\82Å\81D\81D\81D
+                       Interface &operator=( Interface &rSrc )
+                       {
+                               return copy(rSrc);
+                       };
+
+                       
+                       // OPERATIONS //
+
+                       virtual void exec(const float position) = 0;
+                       // \83X\83g\83\8a\81[\83\80\82©\82ç\82Ì\83\8d\81[\83h
+                       virtual void load(std::istream &is) = 0;
+                       // \83X\83g\83\8a\81[\83\80\82©\82ç\82Ì\83Z\81[\83u
+                       virtual void save(std::ostream &os) = 0;
+
+                       // \94z\92u\83G\83f\83B\83^\8fî\95ñ\95`\89æ
+                       virtual void draw(sf::application::scene::DispositionEditor * const pEditor
+                                                               ,const float position,const bool bMouse) = 0;
+                       
+                       // ACCESS //
+
+                       // \83R\83}\83\93\83h\82Ì\8c^\82ð\95Ô\82·
+                       virtual const TYPE id(void) const = 0;
+                       // Game\83V\81[\83\93\82Ö\82Ì\83|\83C\83\93\83^
+                       virtual sf::application::scene::Game * const game(void) const = 0;
+                       virtual void game(sf::application::scene::Game * const pGame) = 0;
+                       // \83R\83}\83\93\83h\82Ì\83V\83\8a\83A\83\8b\94Ô\8d\86(\8c»\8dÝ\82Í\96¢\8eg\97p)
+                       virtual void serialNo(const int value) = 0;
+                       virtual const int serialNo(void) const = 0;
+                       // \94z\92u\83}\83b\83v\95\\8e¦\97p\83X\83v\83\89\83C\83g\82Ö\82Ì\83|\83C\83\93\83^
+                       virtual sf::system::console::sprite::Sprite * const sprite (void) const = 0;
+                       // \94z\92u\83G\83f\83B\83^\97p
+                       virtual const int max(void) const = 0;
+                       virtual void load(void) = 0;
+                       virtual Interface& copy(Interface &rSrc) = 0;
+
+               };// Interface
+
+               // --- \92\8a\8fÛ\83N\83\89\83X  \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+
+               class Abstract : public Interface {
+
+                       // LIFECYCLE //
+               
+               public:
+                       Abstract()
+                       {       mSerialNo = 0;
+                               mpGame = NULL;
+                       };
+
+                       ~Abstract(){;};
+               
+                       // OPERATORS //
+
+                       
+                       // OPERATIONS //
+
+                       virtual void draw(sf::application::scene::DispositionEditor * const pEditor
+                               ,const float position
+                               ,const bool bMouse);
+
+                       // \83}\83E\83X\81E\83L\81[\83{\81[\83h\83\8a\83X\83i
+                       // \83}\83E\83X\83\8a\83X\83i\81[
+                       void leftButtonDown(const int screenX,const int screenY,const DWORD mkey){;};
+                       void leftButtonUp(const int screenX,const int screenY,const DWORD mkey){;};
+                       void leftButtonDoubleClick(const int screenX,const int screenY,const DWORD mkey){;};
+                       void rightButtonDown(const int screenX,const int screenY,const DWORD mkey){;};
+                       void rightButtonUp(const int screenX,const int screenY,const DWORD mkey){;};
+                       void rightButtonDoubleClick(const int screenX,const int screenY,const DWORD mkey){;};
+                       virtual void mouseMove(const int screenX,const int screenY,const DWORD mkey){;};
+                       void mouseWheel(const int screenX,const int screenY,const DWORD mkey){;};
+                       void mouseTalkerIsDeleted(void){;};
+               
+                       void keyDown(const DWORD keyCode,const DWORD extKeyCode){};
+                       void keyUp(const DWORD keyCode,const DWORD extKeyCode){};
+                       void keyboardTalkerIsDeleted(void){;};
+
+                       // \83R\83}\83\93\83h\82Ì\83R\83s\81[\82ð\82Æ\82é //
+                       Interface &copy(Interface &rSrc)
+                       {
+//                             position(rSrc.position());
+                               game(rSrc.game());
+                               return (*this);
+                       };
+
+                       // ACCESS //
+                       
+                       // \83V\83\8a\83A\83\8b\94Ô\8d\86 //
+                       void serialNo(const int value){ mSerialNo = value;};
+                       const int serialNo(void) const {return mSerialNo;};
+                       // \83Q\81[\83\80\83V\81[\83\93\82Ö\82Ì\83|\83C\83\93\83
+                       sf::application::scene::Game * const game(void) const { return mpGame;};
+                       void game(sf::application::scene::Game * const pGame){mpGame = pGame;};
+
+                       const int max(void) const { return 1;};
+
+                       sf::system::console::sprite::Sprite * const sprite(void) const {return NULL;};
+
+                       // INQUIRY //
+               
+                       const bool isListeningMouse(void) const {return false;};
+                       const bool isListeningKeyboard(void) const {return false;};
+               
+               private:
+                       sf::application::scene::Game * mpGame;
+                       int mSerialNo;
+               };// Abstract
+               
+               // \83\8a\83Z\83b\83g\83R\83}\83\93\83h             \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+               class Reset : public Abstract {
+
+                       // LIFECYCLE //
+
+               public:
+                       Reset(){;};
+                       virtual ~Reset(){;};
+
+                       // OPERATORS //
+
+
+                       // OPERATIONS //
+
+                       void exec(const float position){;};
+                       
+                       void load(std::istream &is){;};
+                       void save(std::ostream &os){;};
+                       void load(void){;};
+                       // \83I\83u\8e\9e\83W\83F\83N\83g\82Ì\90\90¬
+                       static Interface * const create(void) { return new Reset;};
+
+                       // ACCESS //
+
+                       const TYPE id(void) const {return RESET;};
+               };// Reset
+               
+               // \83X\83N\83\8d\81[\83\8b\83X\83s\81[\83\82Ì\90Ý\92è \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+               class SetScrollSpeed : public Abstract {
+
+                       // LIFECYCLE //
+
+               public:
+                       SetScrollSpeed(){mSpeed = 0;};
+                       virtual ~SetScrollSpeed(){unloadResource();};
+
+                       // OPERATORS //
+
+
+                       // OPERATIONS //
+
+                       void exec(const float position){ game()->scrollSpeed(mSpeed);};
+
+                       const TYPE id(void) const {return SET_SCROLLSPEED;};
+
+                       void load(std::istream &is){ is >> mSpeed; };
+                       void save(std::ostream &os){ os << " " << mSpeed;};
+
+                       static void loadResource(void);
+                       static void unloadResource(void);
+
+                       void load(void){loadResource();};
+
+                       static Interface * const create(void) { return new SetScrollSpeed;};
+
+                       // \83R\83}\83\93\83h\82Ì\83R\83s\81[\82ð\82Æ\82é //
+                       Interface &copy(Interface &rSrc)
+                       {
+                               SetScrollSpeed &tmp = dynamic_cast<SetScrollSpeed &>(rSrc);
+                               speed(tmp.speed());
+                               game(tmp.game());
+                               return (*this);
+                       };
+       
+                       // ACCESS //
+
+                       const float     speed(void) const {return mSpeed;};
+                       void            speed(const float value){mSpeed = value;};
+
+                       sf::system::console::sprite::Sprite * const sprite(void) const {return mspSprite.get();};
+               private:
+               
+                       float mSpeed;
+
+                       static sf::system::console::sprite::PSprite mspSprite;
+                       static const sf::system::console::sprite::Info msSpriteInfo;
+                       static int msRefCount; 
+               };// SetScrollSpeed
+               
+               // -- \83\8a\83X\83^\81[\83g\88Ê\92u\82Ì\90Ý\92è \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+               class SetRestartPosition : public Abstract {
+                       
+                       // LIFECYCLE // 
+
+               public:
+                       SetRestartPosition(){;};
+                       virtual ~SetRestartPosition(){;};
+
+                       // OPERATORS //
+
+                       
+                       // OPERATIONS //
+
+                       // \83R\83}\83\93\83h\82Ì\8eÀ\8d
+                       void exec(const float position)
+                       {       game()->restartPosition(position);
+                       };
+
+                       // \83R\83}\83\93\83h\82Ì\83R\83s\81[\82ð\82Æ\82é 
+                       Interface &copy(Interface &rSrc)
+                       {
+                               SetRestartPosition &tmp = dynamic_cast<SetRestartPosition &>(rSrc);
+                               game(tmp.game());
+                               return (*this);
+                       };
+
+                       
+
+                       void load(std::istream &is){;};
+                       void save(std::ostream &os){;};
+                       
+                       void load(void){loadResource();};
+
+                       static void loadResource(void);
+                       static void unloadResource(void);
+
+                       static Interface * const create(void) { return new SetRestartPosition;};
+
+                       // ACCESS //
+
+                       const TYPE id(void) const {return SET_RESTARTPOSITION;};
+
+                       sf::system::console::sprite::Sprite * const sprite(void){return mspSprite.get();};
+               private:
+                       static sf::system::console::sprite::PSprite mspSprite;
+                       static const sf::system::console::sprite::Info msSpriteInfo;
+               };// SetRestartPosition
+               
+               // \93G\82ð\94z\92u\82·\82é //////////////////////////////////////////////////
+               // \83p\83\89\83\81\81[\83
+               // int ... \93ï\88Õ\93x
+               // int ... \93G\82h\82c
+               // float ... \8fo\8c»\88Ê\92u\82w
+               // float ... \8fo\8c»\88Ê\92u\82x
+
+               // \8bó\92\86\93G\82Ì\94z\92u\83R\83}\83\93\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+               class SetEnemy : public Abstract {
+
+                       // LIFECYCLE //
+
+               public:
+                       SetEnemy();
+                       virtual ~SetEnemy();
+
+                       // OPERATORS //
+
+
+                       // OPERATIONS //
+
+                       // \83R\83}\83\93\83h\82Ì\83R\83s\81[\82ð\82Æ\82é 
+                       Interface &copy(Interface &rSrc)
+                       {
+                               SetEnemy &tmp = dynamic_cast<SetEnemy &>(rSrc);
+                               game(tmp.game());
+                               x(tmp.x());
+                               y(tmp.y());
+                               z(tmp.z());
+                               enemyNo(tmp.enemyNo());
+                               difficulty(tmp.difficulty());
+                               return (*this);
+                       };
+
+                       void exec(const float position);
+                       // \83X\83g\83\8a\81[\83\80\82æ\82è\83f\81[\83^\83\8d\81[\83h
+                       void load(std::istream &is);
+                       // \83X\83g\83\8a\81[\83\80\82Ö\83f\81[\83^\83Z\81[\83u
+                       void save(std::ostream &os);
+                       // \83\8a\83\\81[\83X\82Ì\83\8d\81[\83h
+                       void load(void){loadResource();};
+                       static void loadResource(void);
+                       // \83\8a\83\\81[\83X\82Ì\83A\83\93\83\8d\81[\83h
+                       static void unloadResource(void);
+                       // \94z\92u\83f\81[\83^\82Ö\95`\89æ 
+                       void draw(sf::application::scene::DispositionEditor * const pEditor,const float position,const bool bMouse);
+                       // \83I\83u\83W\83F\83N\83g\82Ì\90\90¬                   
+                       static Interface * const create(void) { return new SetEnemy;};
+                       // \83}\83E\83X\88Ú\93®\8e\9e\82Ì\8f\88\97\9d 
+                       void mouseMove(const int screenX,const int screenY,const DWORD mkey)
+                       {
+                               x((float)screenX - game()->background()->startOffsetX());
+                               y((float)screenY - game()->background()->startOffsetY());
+                               z(sf::application::enemy::Z_OFFSET_ENEMYS);
+                       };
+                       // \83L\81[\89\9f\89º\8e\9e\82Ì\8f\88\97\9d 
+                       void keyDown(const DWORD keyCode,const DWORD extKeyCode);
+
+                       // ACCESS //
+
+                       // \94z\92u\83f\81[\83^\88Ê\92u\81@X
+                       const float x() const {return mX;};
+                       void x(const float value){mX = value;};
+                       // \94z\92u\83f\81[\83^\88Ê\92u\81@Y
+                       const float y() const {return mY;};
+                       void y(const float value){mY = value;};
+                       // \94z\92u\83f\81[\83^\88Ê\92u\81@Z
+                       const float z() const {return mZ;};
+                       void z(const float value){mZ = value;};
+                       // \93G\82Ì\8eí\97Þ
+                       const int enemyNo() const {return mEnemyNo;};
+                       void enemyNo(const int value){mEnemyNo = value;};
+                       // \93ï\88Õ\93
+                       const sf::application::scene::Game::DIFFICULTY difficulty() const {return mDifficulty;};
+                       void difficulty(const sf::application::scene::Game::DIFFICULTY value){mDifficulty = value;};
+                       // \93G\82Ì\8dÅ\91å
+                       const int max(void) const;
+                       // \83R\83}\83\93\83h\82Ì\8eí\97Þ
+                       const TYPE id(void) const {return SET_ENEMY;};
+                       
+                       // INQUIRY //
+
+                       const bool isListeningMouse(void) const {return true;};
+                       const bool isListeningKeyboard(void) const {return true;};
+
+               private:
+
+                       int mEnemyNo;
+                       sf::application::scene::Game::DIFFICULTY mDifficulty;
+
+                       float mX;
+                       float mY;
+                       float mZ;
+
+                       static  const sf::system::console::sprite::Info msSpriteInfos[sf::application::enemy::MAX_TYPE];
+                       static  sf::system::console::sprite::PSprite mspSprites[sf::application::enemy::MAX_TYPE];
+
+               };// SetEnemy
+
+               // \92n\8fã\93G\94z\92u\83R\83}\83\93\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+               class SetArmy : public Abstract
+               {
+                       
+                       // LIFECYCLE //
+               
+               public:
+                       
+                       SetArmy();
+                       virtual ~SetArmy();
+                       
+                       // OPERATORS //
+
+                       
+                       // OPERATIONS //
+
+                       // \83R\83}\83\93\83h\82Ì\83R\83s\81[\82ð\82Æ\82é 
+                       Interface &copy(Interface &rSrc)
+                       {
+                               SetArmy &tmp = dynamic_cast<SetArmy &>(rSrc);
+                               game(tmp.game());
+                               x(tmp.x());
+                               y(tmp.y());
+                               z(tmp.z());
+                               enemyNo(tmp.enemyNo());
+                               difficulty(tmp.difficulty());
+                               return (*this);
+                       };
+                       
+                       // \83R\83}\83\93\83h\82Ì\8eÀ\8d
+                       void exec(const float position);
+                       // \83X\83g\83\8a\81[\83\80\82æ\82è\83R\83}\83\93\83h\82Ì\83\8d\81[\83h
+                       void load(std::istream &is);
+                       // \83X\83g\83\8a\81[\83\80\82Ö\83R\83}\83\93\83h\82ð\83Z\81[\83u
+                       void save(std::ostream &os);
+                       // \83\8a\83\\81[\83X\82Ì\83\8d\81[\83h
+                       void load(void){loadResource();};
+                       static void loadResource(void);
+                       // \83\8a\83\\81[\83X\82Ì\83A\83\93\83\8d\81[\83
+                       static void unloadResource(void);
+                       // \94z\92u\83}\83b\83v\82É\95`\89æ
+                       void draw(sf::application::scene::DispositionEditor * const pEditor,const float position,const bool bMouse);
+                       // \83I\83u\83W\83F\83N\83g\82Ì\90\90¬
+                       static Interface * const create(void) { return new SetArmy;};
+                       // \83L\81[\83R\81[\83h\89\9f\89º\8e\9e\82Ì\8f\88\97\9d 
+                       void keyDown(const DWORD keyCode,const DWORD extKeyCode);
+
+                       // ACCESS //
+
+                       // \8fo\8c»\88Ê\92u X 
+                       const float x() const {return mX;};
+                       void x(const float value){mX = value;};
+                       // \8fo\8c»\88Ê\92u Y 
+                       const float y() const {return mY;};
+                       void y(const float value){mY = value;};
+                       // \8fo\8c»\88Ê\92u Z
+                       const float z() const {return mZ;};
+                       void z(const float value){mZ = value;};
+                       // \93G\82Ì\8eí\97Þ                     
+                       const int enemyNo() const {return mEnemyNo;};
+                       void enemyNo(const int value){mEnemyNo = value;};
+                       // \93ï\88Õ\93
+                       const sf::application::scene::Game::DIFFICULTY difficulty() const {return mDifficulty;};
+                       void difficulty(const sf::application::scene::Game::DIFFICULTY value){mDifficulty = value;};
+                       // \93G\82Ì\8eí\97Þ\8dÅ\91å 
+                       const int max(void) const ;
+                       // \83I\83u\83W\83F\83N\83g\82Ì\83^\83C\83v\82ð\95Ô\82· 
+                       const TYPE id(void) const {return SET_ARMY;};
+               
+                       // INQUIRY //
+                       
+                       const bool isListeningMouse(void) const {return true;};
+                       const bool isListeningKeyboard(void) const {return true;};
+               
+               private:
+                       // \93G\94Ô\8d\86
+                       int mEnemyNo;
+                       // \93ï\88Õ\93x
+                       sf::application::scene::Game::DIFFICULTY mDifficulty;
+                       
+                       float mX;// \8fo\8c»X\8dÀ\95W
+                       float mY;// \8fo\8c»Y\8dÀ\95W
+                       float mZ;// \8fo\8c»Z\8dÀ\95W
+
+                       static  const sf::system::console::sprite::Info msSpriteInfos[sf::application::enemy::MAX_ARMYS_TYPE];
+                       static  sf::system::console::sprite::PSprite mspSprites[sf::application::enemy::MAX_ARMYS_TYPE];
+
+               };// SetArmy    
+
+       }// command
+
+       // \83R\83}\83\93\83h\90§\8cä \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+       class ControllerImpl : public Controller
+       {
+       public:
+       
+               // LIFECYCLE 
+               
+               ControllerImpl();
+               ~ControllerImpl();
+               
+               // OPERATIONS
+               
+               // \94z\92u\83f\81[\83^\82ð\94j\8aü\82·\82é
+               void unload(void);
+               // \94z\92u\83f\81[\83^\83t\83@\83C\83\8b\82Ì\83\8d\81[\83h
+               void load(const char * const pFileName);
+               // \94z\92u\83f\81[\83^\83t\83@\83C\83\8b\82Ì\83Z\81[\83u
+               void save(const char * const pFileName = NULL);
+               // \94z\92u\83f\81[\83^\82ð\8eÀ\8ds             
+               void exec(const float position);
+               // \8ew\92è\82µ\82½\88Ê\92u\82É\83C\83e\83\8c\81[\83^\82ð\88Ú\93®
+               void restart(const float position);
+
+               void insertCommand(const float position,command::Interface * const pInterface)
+               {       
+                       typedef std::pair<float,command::Interface * > value_type;
+                       pInterface->serialNo(mSerialNo++);
+                       mData.insert(value_type(position,pInterface));
+               };// insertCommand()
+               // \83V\83\8a\83A\83\8bNo\82Å\94z\92u\83f\81[\83^\82ð\8dí\8f\9c
+               void deleteCommand(const int serialNo){
+                       CommandList::iterator it = mData.begin();
+                       while(it != mData.end()){
+                               if(it->second->serialNo() == serialNo){
+                                       mData.erase(it);
+                                       break;
+                               }
+                               it++;
+                       }
+               };// deleteCommand()
+
+               // \94z\92u\83}\83b\83v\82Ì\88Ê\92u\82Å\93G\82ð\8dí\8f\9c 
+               void deleteCommand(const float x,const float y,const float position,const command::TYPE type);
+               // \83R\83}\83\93\83h\83I\83u\83W\83F\83N\83g\82Ì\90\90¬ 
+               static command::Interface * const create(const command::TYPE type){return (*mpCreateFunc[type])();};
+
+               // ACCESS //
+
+               // Game\83I\83u\83W\83F\83N\83g\82Ö\82Ì\83|\83C\83\93\83^
+               sf::application::scene::Game * game(void){ return mpGame;};
+               void game(sf::application::scene::Game *pGame){mpGame = pGame;};
+               
+               CommandList& commandList(void){return mData;};
+
+               static const int commandMax(void) {return command::MAX;};
+
+       private:
+//             command::Interface * create(command::TYPE command_id);
+               const int findCommand(const std::string &s);
+
+               CommandList mData;
+               CommandList::iterator mDataIter;
+               std::string mFileName;
+               sf::application::scene::Game * mpGame;
+               int mSerialNo;
+               // command parse\97p string table 
+               static const std::string mCommand[command::MAX];
+               static const CreateFuncPtr mpCreateFunc[command::MAX];
+
+       };// ControllerImpl()
+
+}
+}
+}
+
+#endif // !defined(AFX_DISPOSITIONCONTROL_H__B18EC6D6_B30C_4A24_B747_D0EBBC6F71F2__INCLUDED_)
diff --git a/project/s2001/EA01.cpp b/project/s2001/EA01.cpp
new file mode 100644 (file)
index 0000000..359dbd9
--- /dev/null
@@ -0,0 +1,388 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// EA01.cpp: EA01 \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//     \97\9a\97ð\81F
+// $Log: EA01.cpp,v $
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.5  2001/07/09 20:30:08  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.4  2001/07/01 21:30:33  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.3  2001/07/01 01:03:43  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.2  2001/06/10 21:18:15  fujiwara
+// \92n\8fã\97p\92Ç\89Á
+//
+// Revision 1.1  2001/06/03 09:21:49  fujiwara
+// \92n\8fã\93G\83N\83\89\83X\82Ì\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+// System Includes //
+
+#include <string>
+#include <vector>
+#include <memory>
+#include <stack>
+#include <list>
+#include <iostream>
+#include <fstream>
+#include <map>
+#include "stdio.h"
+#include "math.h"
+
+// Project Includes //
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "exception.h"
+#include "singleton.h"
+#include "system.h"
+#include "console.h"
+#include "input.h"
+#include "sound.h"
+
+#include "Obj.h"
+#include "Obj2D.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+
+#include "Background.h"
+#include "Scene.h"
+#include "main.h"
+
+#include "character.h"
+#include "Hit.h"
+#include "MyShip.h"
+#include "Game.h"
+#include "Enemys.h"
+#include "Armys.h"
+#include "EnemyBullets.h"
+#include "DispositionControl.h"
+#include "Effects.h"
+#include "Explosion.h"
+#include "EA01.h"
+#include "EB01.h"
+
+using namespace sf::application;
+using namespace sf::application::enemy;
+
+sf::system::console::sprite::PSprite EA01::mspSprite[2];
+
+
+const sf::system::console::sprite::Info EA01::msSpriteInfo[2] = 
+{
+       {"media\\ea01.png",0.0f,0.0f,64.0f,64.0f,0xff000000,console::sprite::SPRITE2D},
+       {"media\\ea01foot.tga",0.0f,0.0f,64.0f,64.0f,0xff000000,console::sprite::SPRITE2D}
+};
+
+const int EA01::SCORE = 20;
+const float LIGHT_OFFSET_Y = -14.0f;
+
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+EA01::EA01()
+{
+}// EA01()
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+EA01::~EA01()
+{
+       Armys::instance()->clear(index());
+}// ~EA01()
+
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void EA01::initialize()
+{
+       // \93\96\82è\94»\92è 
+       mHitRect.offsetTop(-24.0f);
+       mHitRect.offsetBottom(24.0f);
+       mHitRect.offsetLeft(-24.0f);
+       mHitRect.offsetRight(24.0f);
+
+       mHitRect.isChecking(true);
+       mHitRect.characterPtr(this);
+
+       direction((float)atan2((double)(game()->player()->y() - y()),(double)(game()->player()->x() - x())));
+       
+       if(direction() < 0.0f)
+               direction(2.0f * sf::system::PI + direction()); 
+       
+       speed(0.0f);
+       
+       mDeltaTime = sf::system::instance()->deltaTime();
+       mDeltaTimeRev = 1.0f / mDeltaTime;
+
+       if(!mspSprite[0].get())
+               load();
+
+       mObj.index(0);
+       mObj.sprite(mspSprite[0].get());
+       
+       mObj.z(Z_OFFSET_ARMYS + index() * Z_OFFSET_INDEX);
+       mObj.x(x());
+       mObj.y(y());
+
+       mObj.visibility(true);
+       mObj.color(0xffffffff);
+       mObj.drawMode(sf::system::console::DRAW_TRANS);
+       mObj.angle(direction());
+
+       mObjFoot.index(0);
+       mObjFoot.sprite(mspSprite[1].get());
+       
+       mObjFoot.z(Z_OFFSET_ARMYS + index() * Z_OFFSET_INDEX + Z_OFFSET_ASSEMBLE);
+       mObjFoot.x(x());
+       mObjFoot.y(y());
+
+       mObjFoot.visibility(true);
+       mObjFoot.color(0xffffffff);
+       mObjFoot.drawMode(sf::system::console::DRAW_TRANS);
+       
+       mbHit = false;
+       mDirCount = (rand() & 3) + 3;
+       mDirSpeed = (direction() > 0.0f) ? 0.04f * mDeltaTime : -0.04f * mDeltaTime;
+       mState = MOVE;
+       
+       mShootTimer = (80.0f - game()->currentDifficulty() * 15.0f) * mDeltaTimeRev;
+       mShootCount = game()->currentDifficulty() + 2.0f;
+       
+       mObjLight.x(x() + cosf(direction()) * LIGHT_OFFSET_Y );
+       mObjLight.y(y() + sinf(direction()) * LIGHT_OFFSET_Y );
+
+
+       mObjLight.z(z() - Z_OFFSET_ASSEMBLE);
+       initLight();
+}// initialize()
+
+// \83e\83N\83X\83`\83\83\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void EA01::load(void){
+       using namespace sf::system::console::sprite;
+       if(!mspSprite[0].get()){
+               PSprite ptemp(sf::system::instance()->console()->createSprite(&msSpriteInfo[0])); 
+               mspSprite[0] = ptemp;
+
+#ifdef _BORLAND
+               ptemp.reset(sf::system::instance()->console()->createSprite(&msSpriteInfo[1]));
+#else
+               ptemp = PSprite(sf::system::instance()->console()->createSprite(&msSpriteInfo[1]));
+#endif
+               mspSprite[1] = ptemp;
+
+//             PSprite ptemp1(sf::system::instance()->console()->createSprite(&msSpriteInfo[1])); 
+//             if(ptemp1.get() == NULL)
+//                     return false;
+//             mspSprite[1] = ptemp1;
+
+       }
+       Bullets::instance()->load(Bullets::EB01);
+       AbstractEnemy::loadLight();
+}// load()
+
+// \83e\83N\83X\83`\83\83\82Ì\83A\83\93\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void EA01::unload(void){
+       using namespace sf::system::console::sprite;
+       PSprite ptmp(NULL);
+       mspSprite[0] = ptmp;
+       mspSprite[1] = ptmp;
+
+}// unload()
+
+// \93G\82Ì\93®\8dì \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void EA01::move()
+{
+       using namespace sf::application;
+
+       float dir,tmpx,tmpy;
+
+       y(y() + game()->scrollSpeed());
+       
+       mObj.y(y());
+       mObjFoot.y(y());
+
+       switch(mState){
+       case MOVE:
+               // 
+               dir = fabs(mDirBackup - direction());
+               
+               if(dir > sf::system::PI)
+                       dir = 2.0f * sf::system::PI - dir;
+               
+               if(dir > 0.08f)
+               {
+                       direction(direction() + mDirSpeed);
+                       
+                       if(direction() < 0.0f)
+                               direction(2.0f * sf::system::PI + direction());
+               
+                       if(direction() > 2.0f * sf::system::PI)
+                               direction(direction() - 2.0f * sf::system::PI);
+
+                       dir = direction() - mDirBackup;
+                       
+                       if(dir < 0.0f) dir = dir + 2.0f * sf::system::PI;
+                       
+                       if(dir > sf::system::PI) 
+                               mDirSpeed = 0.04f;
+                       else
+                               mDirSpeed = -0.04f;
+       
+                       mObj.angle(direction());
+
+               }
+
+               if(!mDirCount--){
+                       mDirCount = 30.0f * mDeltaTimeRev;
+                       mDirBackup = Util::calcDirection(x(),y(),game()->player()->x(),game()->player()->y());
+                       if(mDirBackup < 0.0f)
+                               mDirBackup = 2.0f * sf::system::PI + mDirBackup; 
+
+                       dir = direction() - mDirBackup;
+                       if(dir < 0.0f) dir = dir + 2.0f * sf::system::PI;
+                       
+                       if(dir > sf::system::PI) 
+                               mDirSpeed = -0.04f * mDeltaTime;
+                       else
+                               mDirSpeed = 0.04f * mDeltaTime;
+                               
+               }
+       
+               if(mShootCount){
+                       if(!(mShootTimer--) ){
+                               mState = SHOOT;
+                               mShootCount--;
+                               mShootTimer = 80.0f * mDeltaTimeRev;
+                               mAnimTimer = (int)(2.0f * mDeltaTimeRev);
+                               mAnimSpeed = 1;
+                       }
+               }
+               
+               if(mbHit)
+               {
+                       die();
+                       return;
+               }
+
+               mObjLight.x(x() + cosf(direction()) * LIGHT_OFFSET_Y );
+               mObjLight.y(y() + sinf(direction()) * LIGHT_OFFSET_Y );
+               moveLight();
+
+               break;
+
+       case SHOOT:
+               if(!mAnimTimer--){
+                       if(mAnimSpeed == 1){
+                               if(mObj.index() == 3)
+                               {
+                                       tmpx = x() + cosf(direction()) * 6.0f;
+                                       tmpy = y() + sinf(direction()) * 6.0f;
+
+                                       EB01 *peb = (EB01 *)Bullets::instance()->create(Bullets::EB01,tmpx,tmpy,z() - 0.01f,game());
+                                       peb->direction(direction());
+                                       mAnimSpeed = -1;
+                                       mAnimTimer = (int)(2.0f * mDeltaTimeRev);
+                               } else {
+                                       mObj.index(mObj.index() + mAnimSpeed);
+                                       mAnimTimer = (int)(2.0f * mDeltaTimeRev);
+                               }
+                       } else {
+                               if(mObj.index() == 0){
+                                       mState = MOVE;
+                               } else {
+                                       mObj.index(mObj.index() + mAnimSpeed);
+                                       mAnimTimer = (int)(2.0f * mDeltaTimeRev);
+                               }
+                       }
+               };
+
+               mObjLight.x(x() + cosf(direction()) * LIGHT_OFFSET_Y );
+               mObjLight.y(y() + sinf(direction()) * LIGHT_OFFSET_Y );
+               
+               moveLight();
+               if(mbHit)
+               {
+                       die();
+                       return;
+               }
+
+               break;
+       case DEAD:
+               if(!mDirCount){
+                       mObjLight.visibility(false);
+                       mObj.visibility(false);
+                       return;
+               } else {
+                       mDirCount--;
+               }
+               
+               break;
+       
+       }
+
+       if( y() < -64.0f || y() > (sf::system::console::viewport::HEIGHT + 32.0f))
+               delete this;
+}//move()
+
+
+
+// \92e\82É\82 \82½\82Á\82½\82Æ\82«\82Ì\8f\88\97\9d \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void EA01::hit(Character * const pDest)
+{
+       if(pDest->life()){
+               mHitRect.isChecking(false);
+               mbHit = true;
+       }
+};
+
+// \93G\82Ì\90\90¬ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+sf::application::Character * const EA01::create(float x,float y ,float z,sf::application::scene::Game * const pGame,int index)
+{
+       EA01 * ptemp = new EA01;
+       ptemp->x(x);
+       ptemp->y(y);
+       ptemp->z(Z_OFFSET_ARMYS);
+       ptemp->index(index);
+       ptemp->game(pGame);
+       ptemp->initialize();
+       return ptemp;
+;}// create
+
+//\81@\8e\80\82ñ\82¾\82Æ\82«\82Ì\8f\88\97\9d  \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void EA01::die(void)
+{
+       
+       direction(3.0f * sf::system::PI / 2.0f );
+       speed( - game()->scrollSpeed());
+
+       effect::Explosion *pExp = (effect::Explosion*)effect::Effects::instance()->create(effect::Effects::EXPLOSION,x(),y(),0.5f,game(),this);
+       if(pExp){
+               pExp->scaling(1.0f);
+       }
+       mDirCount = 2;
+       mState = DEAD;
+       game()->score(game()->score() + SCORE);
+
+};// die()
+
+//  \91S\94\9a\94­\83C\83x\83\93\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void EA01::allBomb(void)
+{
+       die();
+}// allBomb()
\ No newline at end of file
diff --git a/project/s2001/EA01.h b/project/s2001/EA01.h
new file mode 100644 (file)
index 0000000..f1fa4a6
--- /dev/null
@@ -0,0 +1,88 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// EA01.h: EA01 \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: EA01.h,v $
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.3  2001/07/09 20:30:08  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.2  2001/07/01 01:03:43  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.1  2001/06/03 09:21:49  fujiwara
+// \92n\8fã\93G\83N\83\89\83X\82Ì\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_EA01_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_)
+#define AFX_EA01_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "AbstractEnemy.h"
+namespace sf {
+       namespace application {
+               namespace enemy {
+
+class EA01 : public AbstractEnemy
+{
+public:
+       // LIFECYCLE //
+       EA01();
+       virtual ~EA01();
+       // OPERATIONS //
+       void initialize();
+       // \83L\83\83\83\89\83N\83^\81[\88Ú\93®
+       void move(void);
+       void hit(Character * const pDest);
+       void allBomb(void);
+       // \83e\83N\83X\83`\83\83\82È\82Ç\82Ì\83\8d\81[\83h
+       static void load(void);
+       static void unload(void);
+       static Character * const create(float x,float y ,float z,sf::application::scene::Game * const pGame,int index);
+       // ACCESS //
+       sf::application::hit::Interface * const hitObj(void){return &mHitRect;};
+private:
+       enum State {
+               MOVE,
+               SHOOT,
+               DEAD
+       } mState;
+
+       void die(void);
+
+       int mDirCount;
+       float mDirSpeed;
+       sf::application::hit::HitRect mHitRect;
+       sf::system::console::ObjRectangle mObj;
+       sf::system::console::ObjRectangle mObjFoot;
+
+       static sf::system::console::sprite::PSprite mspSprite[2];
+       static const sf::system::console::sprite::Info msSpriteInfo[2];
+
+       static const int SCORE; 
+       
+       bool mbHit;
+       int mShootCount;
+       int mShootTimer;
+       float   mDeltaTime;
+       float   mDeltaTimeRev;
+       float mSpeed;
+       float mDirBackup;
+       int mAnimTimer;
+       int mAnimSpeed;
+
+};
+               }
+       }
+}
+
+#endif // !defined(AFX_EA01_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_)
diff --git a/project/s2001/EB01.cpp b/project/s2001/EB01.cpp
new file mode 100644 (file)
index 0000000..fcb8c33
--- /dev/null
@@ -0,0 +1,254 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// EB01.cpp: EB01 \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//     \97\9a\97ð\81F
+// $Log: EB01.cpp,v $
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.7  2001/07/09 20:30:08  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.6  2001/07/01 21:30:33  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.5  2001/07/01 01:03:43  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.4  2001/05/29 01:12:55  fujiwara
+// \8eG\8b\9b\83L\83\83\83\89(\94ò\8ds\95¨\81j\82Ì\8dì\90¬\81B\94z\92u\83G\83f\83B\83^\82Ì\83o\83O\8fC\90³
+//
+// Revision 1.3  2001/05/17 12:34:10  fujiwara
+// \92n\8fã\93G\83T\83\93\83v\83\8b\8dì\90¬
+//
+// Revision 1.2  2001/05/13 20:04:23  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.1  2001/05/12 22:26:16  fujiwara
+// \93G\92e\83N\83\89\83X\90V\8bK\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+// System Includes //
+
+#include <string>
+#include <vector>
+#include <memory>
+#include <stack>
+#include <list>
+#include <iostream>
+#include <fstream>
+#include <map>
+#include "stdio.h"
+#include "math.h"
+
+// Project Includes  //
+
+#include "exception.h"
+#include "singleton.h"
+#include "system.h"
+#include "console.h"
+#include "input.h"
+#include "sound.h"
+
+#include "Obj.h"
+#include "Obj2D.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+
+#include "Background.h"
+#include "Scene.h"
+#include "main.h"
+
+#include "character.h"
+#include "Hit.h"
+#include "MyShip.h"
+#include "Game.h"
+#include "Enemys.h"
+#include "Armys.h"
+#include "EnemyBullets.h"
+#include "DispositionControl.h"
+#include "Effects.h"
+#include "Explosion.h"
+#include "EB01.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+
+using namespace sf::application;
+using namespace sf::application::enemy;
+
+sf::system::console::sprite::PSprite EB01::mspSprite;
+
+const sf::system::console::sprite::Info EB01::msSpriteInfo = 
+{
+       "media\\EB01.tga",0.0f,0.0f,0.0f,0.0f,0xff000000,console::sprite::SPRITE2D
+};
+
+const int EB01::SCORE = 20;
+int            EB01::msSoundID = 0;
+
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+EB01::EB01()
+{
+
+}// EB01()
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+EB01::~EB01()
+{
+       Bullets::instance()->clear(index());
+}// ~EB01()
+
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void EB01::initialize()
+{
+       // \93\96\82è\94»\92è 
+       mHitRect.offsetTop(-8.0f);
+       mHitRect.offsetBottom(8.0f);
+       mHitRect.offsetLeft(-8.0f);
+       mHitRect.offsetRight(8.0f);
+
+       mHitRect.isChecking(true);
+       mHitRect.characterPtr(this);
+       float dtime = sf::system::instance()->deltaTime();
+       speed(8.0f * dtime);
+       
+       mObj.index(0);
+       mObj.sprite(mspSprite.get());
+       
+       mObj.z(z());
+       mObj.x(x());
+       mObj.y(y());
+       mObj.visibility(true);
+       mObj.color(0xffffffff);
+       mObj.drawMode(sf::system::console::DRAW_ADD);
+
+       mbHit = false;
+       mDirCount = 18;
+       mDirSpeed = (rand() & 1) ? -0.2f * dtime : 0.2f * dtime;
+       mState = MOVE;
+       sf::system::instance()->sound()->play(msSoundID,1,false,false);
+}// initialize()
+
+// \83e\83N\83X\83`\83\83\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void EB01::load(void){
+       using namespace sf::system::console::sprite;
+       if(!mspSprite.get()){
+               PSprite ptemp(sf::system::instance()->console()->createSprite(&msSpriteInfo)); 
+               mspSprite = ptemp;
+       }
+       // \83T\83E\83\93\83h\82Ì\83\8d\81[\83h
+       msSoundID = sf::system::instance()->sound()->load("EB01.WAV") ;
+}// load()
+
+// \83e\83N\83X\83`\83\83\82Ì\83A\83\93\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void EB01::unload(void){
+       using namespace sf::system::console::sprite;
+       PSprite ptmp(NULL);
+       mspSprite = ptmp;
+}// unload()
+
+// \93G\82Ì\93®\8dì \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void EB01::move()
+{
+       
+       using namespace sf::system::console;
+
+       y(y() + mDy);
+       x(x() + mDx);
+
+       switch(mState){
+       case MOVE:
+
+               mObj.x(x());
+               mObj.y(y());
+                               
+               mObj.angle(mObj.angle() + mDirSpeed);
+               
+               if(mObj.angle() > 2.0f * sf::system::PI)
+                       mObj.angle(mObj.angle() - 2 * sf::system::PI);
+
+               if(mObj.angle() < 0.0f)
+                       mObj.angle(2 * sf::system::PI - mObj.angle() );
+
+               if(mbHit)
+               {
+                       die();
+                       return;
+               }
+               break;
+       case DEAD:
+               delete this;
+               return;
+       }
+
+       if(Util::checkArea(x(),y(),mObj.sprite()))
+               delete this;
+
+}//move()
+
+
+
+// \8e©\8b@\82É\82 \82½\82Á\82½\82Æ\82«\82Ì\8f\88\97\9d \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void EB01::hit(Character * const pDest)
+{
+       mHitRect.isChecking(false);
+       mbHit = true;
+
+};
+
+// \93G\92e\82Ì\90\90¬ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+sf::application::Character * const EB01::create(float x,float y ,float z,sf::application::scene::Game * const pGame,int index)
+{
+       EB01 * ptemp = new EB01;
+       ptemp->x(x);
+       ptemp->y(y);
+       ptemp->z(z);
+       ptemp->index(index);
+       ptemp->game(pGame);
+       ptemp->initialize();
+       return ptemp;
+;}// create
+
+//\81@\8e\80\82ñ\82¾\82Æ\82«\82Ì\8f\88\97\9d  \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void EB01::die(void)
+{
+       effect::Explosion *pExp = (effect::Explosion*)effect::Effects::instance()->create(effect::Effects::EXPLOSION,x(),y(),0.1f,game(),this);
+       if(pExp){
+               pExp->scaling(1.5f);
+       }
+       mDirCount = 2;
+       mState = DEAD;
+       game()->score(game()->score() + SCORE);
+
+};// die()
+
+//  \91S\94\9a\94­\83C\83x\83\93\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void EB01::allBomb(void)
+{
+       die();
+}// allBomb()
+
+// \88Ú\93®\95û\8cü (\83\89\83W\83A\83\93\81j
+const float EB01::direction(void){return AbstractCharacter::direction();};
+void EB01::direction(const float value)
+{   AbstractCharacter::direction(value);
+       mDx = cosf(value) * speed();
+       mDy = sinf(value) * speed();
+       mObj.angle(value + sf::system::PI / 2.0f);
+};
diff --git a/project/s2001/EB01.h b/project/s2001/EB01.h
new file mode 100644 (file)
index 0000000..135ea6f
--- /dev/null
@@ -0,0 +1,95 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// EB01.h: EB01 \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: EB01.h,v $
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.5  2001/07/09 20:30:08  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.4  2001/07/01 01:03:43  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.3  2001/05/17 12:34:10  fujiwara
+// \92n\8fã\93G\83T\83\93\83v\83\8b\8dì\90¬
+//
+// Revision 1.2  2001/05/13 20:04:23  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.1  2001/05/12 22:26:16  fujiwara
+// \93G\92e\83N\83\89\83X\90V\8bK\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_EB01_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_)
+#define AFX_EB01_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "AbstractCharacter.h"
+namespace sf {
+       namespace application {
+               namespace enemy {
+
+class EB01 : public sf::application::AbstractCharacter,public Event
+{
+public:
+       // LIFECYCLE //
+       EB01();
+       virtual ~EB01();
+       // OPERATIONS //
+       void initialize(void);
+       // \83L\83\83\83\89\83N\83^\81[\88Ú\93®
+       void move(void);
+       void hit(Character * const pDest);
+       void allBomb(void);
+       
+       // \83e\83N\83X\83`\83\83\82È\82Ç\82Ì\83\8d\81[\83h
+       static void load(void);
+       static void unload(void);
+
+
+       static Character * const create(float x,float y ,float z,sf::application::scene::Game * const pGame,int index);
+       
+       // ACCESS //
+       // \88Ú\93®\95û\8cü (\83\89\83W\83A\83\93\81j
+       const float direction(void);
+       void direction(const float value);
+
+       sf::application::hit::Interface * const hitObj(void){return &mHitRect;};
+       static sf::system::console::sprite::Sprite * const pSprite(void){return mspSprite.get();};      
+       
+private:
+       enum State {
+               MOVE,
+               DEAD
+       } mState;
+
+       void die(void);
+       
+       float mDx;
+       float mDy;
+       int mDirCount;
+       float mDirSpeed;
+       sf::application::hit::HitRect mHitRect;
+       sf::system::console::ObjRectangle mObj;
+       static sf::system::console::sprite::PSprite mspSprite;
+       static const sf::system::console::sprite::Info msSpriteInfo;
+       static const int SCORE; 
+       bool mbHit;
+       static int msSoundID;
+       float mSpeed;
+};
+               }
+       }
+}
+
+#endif // !defined(AFX_EB01_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_)
diff --git a/project/s2001/Effects.cpp b/project/s2001/Effects.cpp
new file mode 100644 (file)
index 0000000..780f61b
--- /dev/null
@@ -0,0 +1,193 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Effects.cpp: Effects \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//     \97\9a\97ð\81F
+// $Log: Effects.cpp,v $
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.6  2001/07/09 20:30:08  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.5  2001/07/01 21:30:33  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.4  2001/05/13 20:04:23  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.3  2001/05/12 08:17:25  fujiwara
+// \88ê\94Ê\95Û\8cì\88á\94½\82ª\8bN\82±\82éBUG\8fC\90³
+//
+// Revision 1.2  2001/05/12 00:50:48  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include <string>
+#include <vector>
+#include <memory>
+#include <stack>
+#include <list>
+#include <iostream>
+#include <fstream>
+#include <map>
+
+#include "stdio.h"
+#include "math.h"
+
+#include "exception.h"
+#include "singleton.h"
+#include "system.h"
+#include "console.h"
+#include "input.h"
+#include "sound.h"
+
+#include "Obj.h"
+#include "Obj2D.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+
+#include "Background.h"
+#include "Scene.h"
+#include "main.h"
+
+#include "character.h"
+#include "Hit.h"
+#include "MyShip.h"
+#include "Game.h"
+#include "Effects.h"
+#include "explosion.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+using namespace sf::application::effect;
+using namespace sf::application;
+
+
+IMPLEMENT_SINGLETON(Effects,Effects)
+
+const Effects::LoaderFuncPtr Effects::mpLoaders[MAX_TYPE] = 
+{      &Explosion::load
+};
+
+const int Effects::INIT_EFFECTS = 16;
+
+const Effects::CreateFuncPtr Effects::mpFunctions[MAX_TYPE] = 
+{      &Explosion::create };
+
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Effects::Effects()
+{
+       int i;
+       mCount = 0;
+       mMax = INIT_EFFECTS;
+       
+       for(i = 0;i < MAX_EFFECTS;i++){
+               mpEffects[i] = NULL;
+       }
+
+}// Effects()
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Effects::~Effects()
+{
+       int i;
+       for(i = 0;i < MAX_EFFECTS;i++)
+       {
+               if(mpEffects[i]){
+                       delete mpEffects[i];
+                       mpEffects[i] = NULL;
+               }
+       }
+}// ~Effects()
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Effects::initialize(){
+       
+       int i;
+       for(i = 0;i < MAX_EFFECTS;i++)
+       {
+               if(mpEffects[i]){
+                       delete mpEffects[i];
+                       mpEffects[i] = NULL;
+               }
+       }
+
+       // \83r\83b\83g\83}\83b\83v\82Ì\83\8d\81[\83h
+       for(i = 0;i < MAX_TYPE;i++){
+               (*mpLoaders[i])();
+       }
+       
+       mCount = 0;
+}// initialize()
+
+// \92e\82Ì\88Ú\93® \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Effects::move(void)
+{
+       int count = 0;
+       for(int i = 0;i < MAX_EFFECTS;i++)
+       {
+               if(mpEffects[i]){
+                       mpEffects[i]->move();
+               }
+       }
+}// move()
+
+// \92e\82ð\90\90¬\82·\82é \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Character * const Effects::create(const TYPE id,const float x,const float y,const float z,sf::application::scene::Game *pGame,sf::application::Character *pCharacter)
+{
+       if(id >= MAX_TYPE)
+               return NULL;
+
+       if(mCount >= mMax)
+               return NULL;
+       
+       for(int i = 0 ; i < MAX_EFFECTS; i++){
+               if(mpEffects[i] == NULL){
+                       mpEffects[i] = (*mpFunctions[id])(x,y,z,pGame,pCharacter,i);
+                       mCount++;
+                       return mpEffects[i];
+               }
+       }
+       return NULL;
+}// create()
+
+// \93\96\82è\94»\92è \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+const bool Effects::hitCheck(Character * const pDest){
+       bool return_ = false;
+
+       for(int i = 0;i < MAX_EFFECTS;i++){
+               if(mpEffects[i]){
+                       if(mpEffects[i]->hitCheck(pDest)){
+                               mpEffects[i]->hit(pDest);
+                               pDest->hit(mpEffects[i]);
+                               return_ = true; 
+                       };
+               }
+       }
+       return return_;
+}// hitCheck(Character * const pDest)
+
+const bool Effects::hitCheck(Characters * const pDest){
+       bool return_ = false;
+
+       for(int i = 0;i < MAX_EFFECTS;i++){
+               if(mpEffects[i]){
+                       if(pDest->hitCheck(mpEffects[i]))
+                               return_ = true;
+               }
+       }
+
+       return return_;
+}// hitCheck(Characters * const pDest)
\ No newline at end of file
diff --git a/project/s2001/Effects.h b/project/s2001/Effects.h
new file mode 100644 (file)
index 0000000..8471381
--- /dev/null
@@ -0,0 +1,75 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Effects.h: Effects \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: Effects.h,v $
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.4  2001/07/09 20:30:08  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.3  2001/05/13 20:04:23  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.2  2001/05/12 00:50:48  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_EFFECTS_H__7CFEB852_73A7_4010_BD50_C93C56019091__INCLUDED_)
+#define AFX_EFFECTS_H__7CFEB852_73A7_4010_BD50_C93C56019091__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "character.h"
+namespace sf {
+       namespace application {
+               namespace effect {
+
+       const int MAX_TYPE = 1;
+       const int MAX_EFFECTS = 96;
+
+       class Effects : public Characters  
+       {
+               DECLARE_SINGLETON(Effects)
+               Effects();
+       public:
+               ~Effects();
+               // Type \92è\8b` //
+               // \83I\83u\83W\83F\83N\83g\90\90¬\83\81\83\\83b\83h\82Ö\82Ì\83|\83C\83\93\83
+               typedef sf::application::Character * const (*CreateFuncPtr)(float,float,float,sf::application::scene::Game * const ,sf::application::Character * const pCharacter,int);
+               // \83e\83N\83X\83`\83\83\83\8d\81[\83_\82Ö\82Ì\83|\83C\83\93\83^
+               typedef void (*LoaderFuncPtr)(void);
+               enum TYPE {
+                       EXPLOSION = 0
+               };
+               // OPERATIONS 
+               void initialize();
+               // \83L\83\83\83\89\83N\83^\81[\88Ú\93®
+               void move(void);
+
+               Character * const create(const TYPE id,const float x,const float y,const float z,sf::application::scene::Game * const pGame,sf::application::Character * const pCharacter = NULL);
+               const bool hitCheck(Character * const pDest);
+               const bool hitCheck(Characters * const pDest);
+               const void clear(int index){mpEffects[index] = NULL ; mCount-- ;};
+       private:
+               Character *mpEffects[MAX_EFFECTS];
+               int mCount;
+               int mMax;
+               static const LoaderFuncPtr mpLoaders[MAX_TYPE];
+               static const int INIT_EFFECTS;
+               static const CreateFuncPtr mpFunctions[MAX_TYPE];
+
+       };// Effects
+               }
+       }
+}
+
+#endif // !defined(AFX_EFFECTS_H__7CFEB852_73A7_4010_BD50_C93C56019091__INCLUDED_)
diff --git a/project/s2001/EnemyBullets.cpp b/project/s2001/EnemyBullets.cpp
new file mode 100644 (file)
index 0000000..662b4d9
--- /dev/null
@@ -0,0 +1,219 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Bullets.cpp: Bullets \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//     \97\9a\97ð\81F
+// $Log: EnemyBullets.cpp,v $
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.5  2001/07/09 20:30:08  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.4  2001/07/01 21:30:33  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.3  2001/07/01 01:03:43  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.2  2001/05/13 20:04:23  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.1  2001/05/12 21:46:39  fujiwara
+// \93G\92e\83N\83\89\83X\90V\8bK\92Ç\89Á
+//
+// Revision 1.4  2001/05/12 08:17:31  fujiwara
+// \88ê\94Ê\95Û\8cì\88á\94½\82ª\8bN\82±\82éBUG\8fC\90³
+//
+// Revision 1.3  2001/05/12 00:50:48  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include <string>
+#include <vector>
+#include <memory>
+#include <stack>
+#include <list>
+#include <iostream>
+#include <fstream>
+#include <map>
+#include "stdio.h"
+#include "math.h"
+
+#include "exception.h"
+#include "singleton.h"
+#include "system.h"
+#include "console.h"
+#include "input.h"
+#include "sound.h"
+
+#include "Obj.h"
+#include "Obj2D.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+
+#include "Background.h"
+#include "Scene.h"
+#include "main.h"
+
+#include "character.h"
+#include "Hit.h"
+#include "MyShip.h"
+#include "Game.h"
+#include "Enemys.h"
+#include "Armys.h"
+#include "DispositionControl.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "EnemyBullets.h"
+#include "EB01.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+
+using namespace sf::application::enemy;
+using namespace sf::application;
+
+IMPLEMENT_SINGLETON(Bullets,Bullets)
+
+const Bullets::LoaderFuncPtr Bullets::mpLoaders[MAX_BULLET_TYPE]
+={     &EB01::load };
+
+const int Bullets::INIT_BULLETS = 16;
+
+const Bullets::CreateFuncPtr Bullets::mpFunctions[MAX_BULLET_TYPE]
+ ={    &EB01::create };
+
+const Bullets::UnloadFuncPtr Bullets::mpUnloadFunc[MAX_BULLET_TYPE]
+ ={    &EB01::unload };
+
+
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Bullets::Bullets()
+{
+       int i;
+       mCount = 0;
+       mMax = INIT_BULLETS;
+       
+       for(i = 0;i < MAX_BULLETS;i++){
+               mpBullets[i] = NULL;
+       }
+
+}// Bullets()
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Bullets::~Bullets()
+{
+       int i;
+       for(i = 0;i < MAX_BULLETS;i++)
+       {
+               if(mpBullets[i]){
+                       delete mpBullets[i];
+                       mpBullets[i] = NULL;
+               }
+       }
+}// ~Bullets()
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Bullets::initialize(){
+       
+       int i;
+       for(i = 0;i < MAX_BULLETS;i++)
+       {
+               if(mpBullets[i]){
+                       delete mpBullets[i];
+                       mpBullets[i] = NULL;
+               }
+       }
+
+       mCount = 0;
+}// initialize()
+
+// \92e\82Ì\88Ú\93® \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Bullets::move(void)
+{
+       int count = 0;
+       for(int i = 0;i < MAX_BULLETS;i++)
+       {
+               if(mpBullets[i]){
+                       mpBullets[i]->move();
+               }
+       }
+}// move()
+
+// \92e\82ð\90\90¬\82·\82é \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Character * const Bullets::create(const TYPE id,const float x,const float y,const float z,sf::application::scene::Game *pGame)
+{
+       if(id >= MAX_BULLET_TYPE)
+               return NULL;
+
+       if(mCount >= mMax)
+               return NULL;
+       
+       for(int i = 0 ; i < MAX_BULLETS; i++){
+               if(mpBullets[i] == NULL){
+                       mpBullets[i] = (*mpFunctions[id])(x,y,z,pGame,i);
+                       mCount++;
+                       return mpBullets[i];
+               }
+       }
+       return NULL;
+}// create()
+
+// \93\96\82è\94»\92è \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+const bool Bullets::hitCheck(Character * const pDest){
+       bool return_ = false;
+
+       for(int i = 0;i < MAX_BULLETS;i++){
+               if(mpBullets[i]){
+                       if(mpBullets[i]->hitCheck(pDest)){
+                               mpBullets[i]->hit(pDest);
+                               pDest->hit(mpBullets[i]);
+                               return_ = true; 
+                       };
+               }
+       }
+       return return_;
+}// hitCheck(Character * const pDest)
+
+const bool Bullets::hitCheck(Characters * const pDest){
+       bool return_ = false;
+
+       for(int i = 0;i < MAX_BULLETS;i++){
+               if(mpBullets[i]){
+                       if(pDest->hitCheck(mpBullets[i]))
+                               return_ = true;
+               }
+       }
+
+       return return_;
+}// hitCheck(Characters * const pDest)
+
+// \83e\83N\83X\83`\83\83\82Ì\91S\8aJ\95ú \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Bullets::unload(void){
+       for(int i = 0;i < MAX_BULLET_TYPE;i++)
+       {
+               (*mpUnloadFunc[i])();
+       }
+}// unload()
+
+// \83e\83N\83X\83`\83\83\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Bullets::load(int value){
+       // \83r\83b\83g\83}\83b\83v\82Ì\83\8d\81[\83h
+       (*mpLoaders[value])();
+}// load()
+
diff --git a/project/s2001/EnemyBullets.h b/project/s2001/EnemyBullets.h
new file mode 100644 (file)
index 0000000..baa0673
--- /dev/null
@@ -0,0 +1,83 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// EnemyBullets.h: Bullets \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: EnemyBullets.h,v $
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.3  2001/07/09 20:30:08  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.2  2001/05/13 20:04:23  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.1  2001/05/12 21:46:39  fujiwara
+// \93G\92e\83N\83\89\83X\90V\8bK\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_BULLETS_H__8DC400E3_9678_4AA5_B5A2_B96809AEEEEA__INCLUDED_)
+#define AFX_BULLETS_H__8DC400E3_9678_4AA5_B5A2_B96809AEEEEA__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "character.h"
+namespace sf {
+       namespace application {
+               namespace enemy {
+       
+       const int MAX_BULLET_TYPE = 1;
+       const int MAX_BULLETS = 64;
+
+       class Bullets : public Characters  
+       {
+               DECLARE_SINGLETON(Bullets)
+               Bullets();
+       public:
+               ~Bullets();
+               // Type \92è\8b` //
+               // \83I\83u\83W\83F\83N\83g\90\90¬\83\81\83\\83b\83h\82Ö\82Ì\83|\83C\83\93\83
+               typedef sf::application::Character * const (*CreateFuncPtr)(float,float,float,sf::application::scene::Game * const ,int);
+               // \83e\83N\83X\83`\83\83\83\8d\81[\83_\82Ö\82Ì\83|\83C\83\93\83^
+               typedef void (*LoaderFuncPtr)(void);
+               // \83e\83N\83X\83`\83\83\8aJ\95ú\83\81\83\\83b\83h\82Ö\82Ì\83|\83C\83\93\83
+               typedef void (*UnloadFuncPtr)(void);
+               typedef sf::system::console::sprite::Sprite * const (*GetSpritePtrFunc)(void); 
+
+               enum TYPE {
+                       EB01 = 0
+               };
+               // OPERATIONS 
+               void initialize();
+               // \83L\83\83\83\89\83N\83^\81[\88Ú\93®
+               void move(void);
+
+               Character * const  create(const TYPE id,const float x,const float y,const float z,sf::application::scene::Game *pGame);
+               const bool hitCheck(Character * const pDest);
+               const bool hitCheck(Characters * const pDest);
+               const void clear(int index){mpBullets[index] = NULL ; mCount-- ;};
+               void unload(void);
+               void load(int value);
+               
+       private:
+               Character *mpBullets[MAX_BULLETS];
+               int mCount;
+               int mMax;
+               static const LoaderFuncPtr mpLoaders[MAX_BULLET_TYPE];
+               static const int INIT_BULLETS;
+               static const CreateFuncPtr mpFunctions[MAX_BULLET_TYPE];
+               static const UnloadFuncPtr mpUnloadFunc[MAX_BULLET_TYPE];
+
+       };// Bullets
+       
+               }// enemy
+       }// application
+}// sf
+
+#endif // !defined(AFX_BULLETS_H__8DC400E3_9678_4AA5_B5A2_B96809AEEEEA__INCLUDED_)
diff --git a/project/s2001/Enemys.cpp b/project/s2001/Enemys.cpp
new file mode 100644 (file)
index 0000000..ac8d223
--- /dev/null
@@ -0,0 +1,220 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Enemys.cpp: Enemys \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//     \97\9a\97ð\81F
+// $Log: Enemys.cpp,v $
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.8  2001/07/09 20:30:08  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.7  2001/07/01 21:30:33  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.6  2001/07/01 01:03:43  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.5  2001/05/13 20:04:23  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.4  2001/05/12 08:17:31  fujiwara
+// \88ê\94Ê\95Û\8cì\88á\94½\82ª\8bN\82±\82éBUG\8fC\90³
+//
+// Revision 1.3  2001/05/12 00:50:48  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include <string>
+#include <vector>
+#include <memory>
+#include <stack>
+#include <list>
+#include <iostream>
+#include <fstream>
+#include <map>
+#include "stdio.h"
+#include "math.h"
+
+#include "exception.h"
+#include "singleton.h"
+#include "system.h"
+#include "console.h"
+#include "input.h"
+#include "sound.h"
+
+#include "Obj.h"
+#include "Obj2D.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+
+#include "Background.h"
+#include "Scene.h"
+#include "main.h"
+#include "character.h"
+#include "Hit.h"
+#include "MyShip.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "Game.h"
+#include "Enemys.h"
+#include "Armys.h"
+#include "DispositionControl.h"
+#include "ZK01.h"
+#include "ZK02.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+
+using namespace sf::application::enemy;
+using namespace sf::application;
+
+IMPLEMENT_SINGLETON(Enemys,Enemys);
+const Enemys::LoaderFuncPtr Enemys::mpLoaders[MAX_TYPE] = 
+{      &ZK01::load,
+       &ZK02::load
+};
+
+const int Enemys::INIT_ENEMYS = 16;
+
+const Enemys::CreateFuncPtr Enemys::mpFunctions[MAX_TYPE] = 
+{      &ZK01::create,
+       &ZK02::create
+ };
+
+const Enemys::UnloadFuncPtr Enemys::mpUnloadFunc[MAX_TYPE] = 
+{      &ZK01::unload,
+       &ZK02::unload
+ };
+
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Enemys::Enemys()
+{
+       int i;
+       mCount = 0;
+       mMax = INIT_ENEMYS;
+       
+       for(i = 0;i < MAX_ENEMYS;i++){
+               mpEnemys[i] = NULL;
+       }
+
+}// Enemys()
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Enemys::~Enemys()
+{
+       int i;
+       for(i = 0;i < MAX_ENEMYS;i++)
+       {
+               if(mpEnemys[i]){
+                       delete mpEnemys[i];
+                       mpEnemys[i] = NULL;
+               }
+       }
+}// ~Enemys()
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Enemys::initialize(){
+       
+       int i;
+       for(i = 0;i < MAX_ENEMYS;i++)
+       {
+               if(mpEnemys[i]){
+                       delete mpEnemys[i];
+                       mpEnemys[i] = NULL;
+               }
+       }
+       mCount = 0;
+}// initialize()
+
+// \92e\82Ì\88Ú\93® \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Enemys::move(void)
+{
+       for(int i = 0;i < MAX_ENEMYS;i++)
+       {
+               if(mpEnemys[i]){
+                       mpEnemys[i]->move();
+               }
+       }
+}// move()
+
+// \92e\82ð\90\90¬\82·\82é \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+const bool Enemys::create(const TYPE id,const float x,const float y,const float z,sf::application::scene::Game *pGame)
+{
+       if(id >= MAX_TYPE)
+               return false;
+
+       if(mCount >= mMax)
+               return false;
+       
+       for(int i = 0 ; i < MAX_ENEMYS; i++){
+               if(mpEnemys[i] == NULL){
+                       mpEnemys[i] = (*mpFunctions[id])(x,y,z,pGame,i);
+                       mCount++;
+                       return true;
+               }
+       }
+       return false;
+}// create()
+
+// \93\96\82è\94»\92è \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+const bool Enemys::hitCheck(Character * const pDest){
+       bool return_ = false;
+
+       for(int i = 0;i < MAX_ENEMYS;i++){
+               if(mpEnemys[i]){
+                       if(mpEnemys[i]->hitCheck(pDest)){
+                               mpEnemys[i]->hit(pDest);
+                               pDest->hit(mpEnemys[i]);
+                               return_ = true; 
+                       };
+               }
+       }
+       return return_;
+}// hitCheck(Character * const pDest)
+
+const bool Enemys::hitCheck(Characters * const pDest){
+       bool return_ = false;
+
+       for(int i = 0;i < MAX_ENEMYS;i++){
+               if(mpEnemys[i]){
+                       if(pDest->hitCheck(mpEnemys[i]))
+                               return_ = true;
+               }
+       }
+
+       return return_;
+}// hitCheck(Characters * const pDest)
+
+// \83e\83N\83X\83`\83\83\82Ì\91S\8aJ\95ú \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Enemys::unload(void){
+       for(int i = 0;i < MAX_TYPE;i++)
+       {
+               (*mpUnloadFunc[i])();
+       }
+}// unload()
+
+// \83e\83N\83X\83`\83\83\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Enemys::load(int value){
+       // \83r\83b\83g\83}\83b\83v\82Ì\83\8d\81[\83h
+       (*mpLoaders[value])();
+}// load()
+
+void Enemys::allBomb(void){
+       ;
+}
diff --git a/project/s2001/Enemys.h b/project/s2001/Enemys.h
new file mode 100644 (file)
index 0000000..38feaea
--- /dev/null
@@ -0,0 +1,110 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Enemys.h: Enemys \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: Enemys.h,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.9  2001/07/09 20:30:08  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.8  2001/07/01 01:03:44  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.7  2001/06/03 09:22:32  fujiwara
+// \92n\8fã\93G\83N\83\89\83X\82¨\82æ\82Ñ\8eG\8b\9b\93G\82Ì\94÷\92²\90®
+//
+// Revision 1.6  2001/05/29 01:12:54  fujiwara
+// \8eG\8b\9b\83L\83\83\83\89(\94ò\8ds\95¨\81j\82Ì\8dì\90¬\81B\94z\92u\83G\83f\83B\83^\82Ì\83o\83O\8fC\90³
+//
+// Revision 1.5  2001/05/17 12:34:10  fujiwara
+// \92n\8fã\93G\83T\83\93\83v\83\8b\8dì\90¬
+//
+// Revision 1.4  2001/05/13 20:04:24  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.3  2001/05/12 00:50:48  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_ENEMYS_H__8DC400E3_9678_4AA5_B5A2_B96809AEEEEA__INCLUDED_)
+#define AFX_ENEMYS_H__8DC400E3_9678_4AA5_B5A2_B96809AEEEEA__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "character.h"
+namespace sf {
+       namespace application {
+               namespace enemy {
+       
+       const int MAX_TYPE = 2;
+       const int MAX_ENEMYS = 64;
+
+       const float Z_OFFSET_ENEMYS =  0.3f;
+       const float Z_OFFSET_ARMYS = 0.8f;
+       const float Z_OFFSET_INDEX = 0.001f;
+       const float Z_OFFSET_ASSEMBLE = 0.0001f;
+
+       class Event {
+       public:
+               virtual void allBomb(void) = 0;
+       };// Event
+
+       class Enemys : public Characters ,public Event
+       {
+               DECLARE_SINGLETON(Enemys)
+               Enemys();
+       public:
+               ~Enemys();
+               // Type \92è\8b` //
+               // \83I\83u\83W\83F\83N\83g\90\90¬\83\81\83\\83b\83h\82Ö\82Ì\83|\83C\83\93\83
+               typedef sf::application::Character * const (*CreateFuncPtr)(float,float,float,sf::application::scene::Game * const ,int);
+               // \83e\83N\83X\83`\83\83\83\8d\81[\83_\82Ö\82Ì\83|\83C\83\93\83^
+               typedef void (*LoaderFuncPtr)(void);
+               // \83e\83N\83X\83`\83\83\8aJ\95ú\83\81\83\\83b\83h\82Ö\82Ì\83|\83C\83\93\83
+               typedef void (*UnloadFuncPtr)(void);
+               typedef sf::system::console::sprite::Sprite * const (*GetSpritePtrFunc)(void); 
+
+               enum TYPE {
+                       ZK01 = 0
+               };
+               // OPERATIONS 
+               void initialize();
+               // \83L\83\83\83\89\83N\83^\81[\88Ú\93®
+               void move(void);
+
+               const bool create(const TYPE id,const float x,const float y,const float z,sf::application::scene::Game *pGame);
+               const bool hitCheck(Character * const pDest);
+               const bool hitCheck(Characters * const pDest);
+               const void clear(int index){mpEnemys[index] = NULL ; mCount-- ;};
+               void unload(void);
+               void load(const int value);
+               
+               // Event 
+               void allBomb(void);
+       
+       private:
+               Character *mpEnemys[MAX_ENEMYS];
+               int mCount;
+               int mMax;
+               static const LoaderFuncPtr mpLoaders[MAX_TYPE];
+               static const int INIT_ENEMYS;
+               static const CreateFuncPtr mpFunctions[MAX_TYPE];
+               static const UnloadFuncPtr mpUnloadFunc[MAX_TYPE];
+
+       };// Enemys
+
+               }// enemy
+       }// application
+}// sf
+
+#endif // !defined(AFX_ENEMYS_H__8DC400E3_9678_4AA5_B5A2_B96809AEEEEA__INCLUDED_)
diff --git a/project/s2001/Explosion.cpp b/project/s2001/Explosion.cpp
new file mode 100644 (file)
index 0000000..9eeac0e
--- /dev/null
@@ -0,0 +1,203 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Explosion.cpp: Explosion \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//     \97\9a\97ð\81F
+// $Log: Explosion.cpp,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.6  2001/07/09 20:30:08  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.5  2001/07/01 21:30:33  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.4  2001/07/01 01:03:44  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.3  2001/05/17 12:34:10  fujiwara
+// \92n\8fã\93G\83T\83\93\83v\83\8b\8dì\90¬
+//
+// Revision 1.2  2001/05/12 00:50:33  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include <string>
+#include <vector>
+#include <memory>
+#include <stack>
+#include <list>
+#include <iostream>
+#include <fstream>
+#include <map>
+#include "stdio.h"
+#include "math.h"
+
+#include "exception.h"
+#include "singleton.h"
+#include "system.h"
+#include "console.h"
+#include "input.h"
+#include "sound.h"
+
+#include "Obj.h"
+#include "Obj2D.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+
+#include "Background.h"
+#include "Scene.h"
+#include "main.h"
+
+#include "character.h"
+#include "Hit.h"
+#include "MyShip.h"
+#include "Game.h"
+#include "Enemys.h"
+#include "Armys.h"
+#include "DispositionControl.h"
+#include "Effects.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "Explosion.h"
+
+using namespace sf::application;
+using namespace sf::application::effect;
+
+sf::system::console::sprite::PSprite Explosion::mspSprite[MAX_EXPLOSION];
+int Explosion::msSoundID = 0;
+
+const sf::system::console::sprite::Info Explosion::msSpriteInfo[MAX_EXPLOSION] = 
+{
+       {"media\\explosion.png",0.0f,0.0f,64.0f,64.0f,0xff000000,console::sprite::SPRITE2D},
+       {"media\\explosion2.png",0.0f,0.0f,64.0f,64.0f,0xff000000,console::sprite::SPRITE2D},
+};
+
+
+
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Explosion::Explosion()
+{
+
+}// Explosion()
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Explosion::~Explosion()
+{
+       Effects::instance()->clear(index());
+}// ~Explosion()
+
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Explosion::initialize()
+{
+       // \93\96\82è\94»\92è 
+/*
+       mHitRect.offsetTop(-24.0f);
+       mHitRect.offsetBottom(24.0f);
+       mHitRect.offsetLeft(-24.0f);
+       mHitRect.offsetRight(24.0f);
+*/
+       mHitRect.isChecking(false);
+       mHitRect.characterPtr(this);
+       mScaling = 1.0f;
+
+       mObj.scalingX(mScaling);
+       mObj.scalingY(mScaling);
+
+/*     mRadian = (float)atan2((double)(game()->player()->y() - y()),(double)(game()->player()->x() - x()));
+       
+       
+       mSpeed = 6.0f;
+*/
+       mDx = cosf(direction()) * speed();
+       mDy = sinf(direction()) * speed();
+       
+       mObj.index(0);
+       mObj.sprite(mspSprite[rand() & 0x1].get());
+       
+       mObj.z(z());
+       mObj.x(x());
+       mObj.y(y());
+       mObj.visibility(true);
+       mObj.color(0xF0ffffff);
+       mObj.drawMode(sf::system::console::DRAW_ADD);
+       mObj.angle(direction());
+       mObj.reverseX(rand() & 0x1?true:false);
+       mObj.reverseY(rand() & 0x1?true:false);
+
+       mbHit = false;
+//     mDirCount = 24;
+//     mDirSpeed = (rand() & 1) ? -0.01 : 0.01;
+       sf::system::instance()->sound()->play(msSoundID,1,false,false);
+}// initialize()
+
+// \83e\83N\83X\83`\83\83\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Explosion::load(void){
+       using namespace sf::system::console::sprite;
+       PSprite *ptemp;
+       int i;
+
+       if(!mspSprite[0].get()){
+               for(i = 0;i < MAX_EXPLOSION;i++){
+                       ptemp = new PSprite(sf::system::instance()->console()->createSprite(&msSpriteInfo[i])); 
+                       mspSprite[i] = *ptemp;
+                       delete ptemp;
+               }
+       }
+
+       // \83T\83E\83\93\83h\83f\81[\83^\82Ì\83\8d\81[\83
+       msSoundID = sf::system::instance()->sound()->load("explos.wav");
+}// load()
+
+// \93G\82Ì\93®\8dì \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Explosion::move()
+{
+       mCount++;       
+       y(y() + mDy);
+       x(x() + mDx);
+       mObj.x(x());
+       mObj.y(y());
+       mObj.index(mObj.index() + (mCount & 1));
+       
+       if(mObj.index() > 15){
+               delete this;
+               return;
+       }
+}//move()
+
+void Explosion::hit(Character * const pDest)
+{
+//     mHitRect.isChecking(false);
+//     mbHit = true;
+};
+
+// \93G\82Ì\90\90¬ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+sf::application::Character * const Explosion::create(float x,float y ,float z,sf::application::scene::Game * const pGame,Character *pCharacter,int index)
+{
+       Explosion * ptemp = new Explosion;
+       ptemp->x(x);
+       ptemp->y(y);
+       ptemp->z(z);
+       ptemp->index(index);
+       ptemp->game(pGame);
+       ptemp->speed(pCharacter->speed());
+       ptemp->direction(pCharacter->direction());
+       ptemp->initialize();
+       return ptemp;
+;}// create
+
diff --git a/project/s2001/Hit.cpp b/project/s2001/Hit.cpp
new file mode 100644 (file)
index 0000000..c09e026
--- /dev/null
@@ -0,0 +1,38 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Hit.cpp: Hit \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//     \97\9a\97ð\81F
+// $Log: Hit.cpp,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.4  2001/07/01 21:30:34  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.3  2001/05/13 20:04:24  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.2  2001/05/12 00:50:23  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include       <string>
+#include       <vector>
+#include "system.h"
+#include "Console.h"
+#include "character.h"
+#include "Hit.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
diff --git a/project/s2001/Hit.h b/project/s2001/Hit.h
new file mode 100644 (file)
index 0000000..5a2c478
--- /dev/null
@@ -0,0 +1,220 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Hit.h: Hit \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: Hit.h,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.2  2001/05/12 00:50:17  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_HIT_H__197186A8_1D82_4ABA_9C67_C142B720501C__INCLUDED_)
+#define AFX_HIT_H__197186A8_1D82_4ABA_9C67_C142B720501C__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+namespace sf {
+       namespace application {
+               namespace hit {
+
+
+class HitRect;
+class HitRects;
+// \93\96\82è\94»\92è\83C\83\93\83^\81[\83t\83F\81[\83X
+class Interface  
+{
+public:
+       Interface(){;};
+       virtual ~Interface(){;};
+       virtual const bool check(Interface * const pInterface) = 0;
+       virtual const bool check(HitRect &rHitRect) = 0;
+       virtual const bool check(HitRects &rHitRects) = 0;
+       virtual const bool isChecking(void) = 0;
+       virtual void isChecking(const bool value) = 0 ;
+       virtual void characterPtr(Character * const value) = 0;
+
+};// Interface()
+
+// \93\96\82è\94»\92è
+class HitRect : public Interface
+{
+public:
+       // LIFECYCLE //
+       HitRect(){
+               mTop = mBottom = mLeft = mRight = 0.0f;
+               mbCheck = false;
+       };
+
+       HitRect(Character *pCharacter){ mpCharacter = pCharacter;mbCheck= false;};
+       HitRect(Character *pCharacter,float top,float bottom,float left,float right)
+       {
+               mbCheck = false;
+               mpCharacter = pCharacter;
+               mTop = top;
+               mBottom = bottom;
+               mLeft = left;
+               mRight = right;
+       };
+
+       virtual ~HitRect(){};
+
+       // OPERATIONS //
+       const bool check(Interface * const pInterface){return pInterface->check(*this);};
+       inline const bool check(HitRects & rHitRects);
+       
+       const bool check(HitRect & rHitRect){
+               if(!isChecking() || !rHitRect.isChecking())
+                       return false;
+
+               if(rHitRect.bottom() < top() ||  
+                       rHitRect.top() > bottom() 
+                       )
+               {
+                       // \82Í\82¸\82ê
+                       return false;
+               }
+
+               if(rHitRect.right() < left() ||
+                       rHitRect.left() > right())
+               {
+                       // \82Í\82¸\82ê
+                       return false;
+               }
+               // \93\96\82è!
+               return true;
+       };
+
+       const float top(){return mpCharacter->y() + mTop;};
+       const float bottom(){return mpCharacter->y() + mBottom;};
+       const float left(){return mpCharacter->x() + mLeft;};
+       const float right(){return mpCharacter->x() + mRight;};
+
+       const float offsetTop(void){ return mTop;};
+       void offsetTop(const float value){ mTop = value;};
+       const float offsetBottom(void){ return mBottom;};
+       void offsetBottom(const float value){ mBottom = value;};
+       const float offsetLeft(void){ return mLeft;};
+       void offsetLeft(const float value){ mLeft = value;};
+       const float offsetRight(void){ return mRight;};
+       void offsetRight(const float value){ mRight = value;};
+       
+       const bool isChecking(void){return mbCheck;};
+       void isChecking(const bool value){mbCheck = value;};
+
+       void characterPtr(Character * const value){mpCharacter = value;};
+               
+private:
+
+       float mTop,mBottom;
+       float mLeft,mRight;
+       float mHitPosX,mHitPosY;
+       bool mbCheck;
+       Character *mpCharacter;
+};// HitRect()
+
+typedef std::vector<HitRect *> HitRectVector;
+
+class HitRects : public Interface {
+public:
+       // \93\96\82è\94»\92è(\95¡\90\94\95Û\8e\9d\94Å)
+       HitRects(Character *pCharacter){ mpCharacter = pCharacter;mHitIndex = 0;};
+       HitRects(){mHitIndex = 0;mbCheck = false;};
+       virtual ~HitRects()
+       {
+               for(HitRectVector::iterator it = mHitRectVector.begin();
+                       it != mHitRectVector.end();it ++)
+               {
+                       delete *it;
+               }
+       };
+
+       void insertRect(HitRect * const pHitRect){mHitRectVector.push_back(pHitRect);};
+
+       const bool check(Interface *pInterface){
+               return pInterface->check(this);
+       };
+
+       const bool check(HitRects & rHitRects){
+               
+               if(!isChecking() || !rHitRects.isChecking())
+                       return false;
+
+               int i,j;
+               for(i = 0 ; i < rHitRects.size();i++)
+               {
+                       for(j = 0 ; j < size() ; j ++)
+                       {
+                               if( rHitRects.hitRect(i).check(hitRect(j)))
+                               {
+                                       mHitIndex = j;
+                                       rHitRects.mHitIndex = i;
+                                       return true;
+                               }
+                       }
+               }
+               return false;
+       };
+       
+       const bool check(HitRect & rHitRect){
+               if(!isChecking() || !rHitRect.isChecking())
+                       return false;
+
+               int j;
+               for(j = 0 ; j <size() ; j ++){
+                       if(mHitRectVector[j]->check(rHitRect)){
+                               mHitIndex = j;
+                               return true;
+                       };
+               }
+               return false;
+       };
+
+       HitRectVector& hitRectVector(void){return mHitRectVector;};
+       HitRect& hitRect(int i){return *(mHitRectVector[i]);};
+
+       const int size(void){return mHitRectVector.size();};
+       const int hitIndex(void){return mHitIndex;};
+       void hitIndex(const int value){mHitIndex = value;};
+
+       const bool isChecking(void){return mbCheck;};
+       void isChecking(const bool value){mbCheck = value;};
+
+       void characterPtr(Character * const value){mpCharacter = value;};
+
+private:
+       bool mbCheck;
+       Character *mpCharacter;
+       HitRectVector mHitRectVector;
+       int mHitIndex;
+};// HitRects()
+
+const bool HitRect::check(HitRects &rHitRects)
+{
+       if(!isChecking() || !rHitRects.isChecking())
+               return false;
+       int j;
+
+       for(j = 0 ; j < rHitRects.size() ; j ++)
+       {
+               if(check(rHitRects.hitRect(j))){
+                       rHitRects.hitIndex(j);
+                       return true;
+               }
+       }
+       return false;
+};
+
+
+               }
+       }
+}
+
+#endif // !defined(AFX_HIT_H__197186A8_1D82_4ABA_9C67_C142B720501C__INCLUDED_)
diff --git a/project/s2001/MainApp.cpp b/project/s2001/MainApp.cpp
new file mode 100644 (file)
index 0000000..dc89c75
--- /dev/null
@@ -0,0 +1,117 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+//     MainApp \83A\83v\83\8a\83P\81[\83V\83\87\83\93\83\81\83C\83\93
+//  \81@aMain\82Ì\8bï\8fÛ\83N\83\89\83X\82Å\82·\81B
+//     \97\9a\97ð:
+// $Log: MainApp.cpp,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.5  2001/07/09 20:30:09  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.4  2001/07/01 21:30:34  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.3  2001/07/01 01:03:44  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.2  2001/05/12 00:49:43  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//     2001/01/29 \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p\83\89\83C\83u\83\89\83\8a\82Ì\92Ç\89Á 
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sf.h"
+#include "sfdebug.h"
+
+// SYSTEM INCLUDES
+//
+
+#include <stdio.h>
+#include <list>
+#include <vector>
+#include <fstream>
+
+// PROJECT INCLUDES
+//
+#include "exception.h"
+#include "singleton.h"
+#include "System.h"
+#include "Console.h"
+#include "Sound.h"
+#include "input.h"
+#include "Scene.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "MainApp.h"
+#include "Manager.h"
+#include "s2001.h"
+
+using namespace sf::application;
+using namespace sf::system;
+
+IMPLEMENT_SINGLETON(MainImpl,MainImpl)
+
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+// MainFactory\83N\83\89\83
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Main * Main::instance()
+{
+       return MainImpl::instance();
+}
+
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+// MainImpl\83N\83\89\83
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+
+// \83R\83\93\83X\83g\83\89\83N\83^ -------------------------------------------------------------
+MainImpl::MainImpl()
+{
+       mpSpriteBlank = NULL;
+
+}
+
+// \83f\83X\83g\83\89\83N\83^ ---------------------------------------------------------------
+MainImpl::~MainImpl()
+{
+       if(mpSpriteBlank)
+               delete mpSpriteBlank;
+
+}// ~MainImpl()
+
+// \8f\89\8aú\89» ---------------------------------------------------------------------
+void MainImpl::initialize(void)
+{
+//     mState = INITIALIZE;
+
+       mpSystem = system::instance();
+       mpConsole = mpSystem->console();
+       mpSound = mpSystem->sound();
+
+       // \83u\83\89\83\93\83\83X\83v\83\89\83C\83g\82Ì\83\8d\81[\83h
+       console::sprite::Info brank_info = 
+       {"media\\blank.bmp",0.0f,0.0f,0x0,console::sprite::SPRITE2D};
+       
+       if(NULL == (mpSpriteBlank = mpConsole->createSprite(&brank_info)))
+               return;
+
+       ::createScene(scene::AUTHOR);
+
+}// intialize()
+
+// \83\81\83C\83\93\82Ì\8eÀ\8ds ---------------------------------------------------------------
+void MainImpl::run()
+{      // \83V\81[\83\93\82Ì\8eÀ\8ds
+       scene::Container::instance()->move();
+       scene::Container::instance()->eraseNull();
+}// run()
+
diff --git a/project/s2001/MainApp.h b/project/s2001/MainApp.h
new file mode 100644 (file)
index 0000000..6162cf5
--- /dev/null
@@ -0,0 +1,66 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+//     MainImpl \83A\83v\83\8a\83P\81[\83V\83\87\83\93\83\81\83C\83\93
+//  \81@Main\82Ì\8bï\8fÛ\83N\83\89\83X\82Å\82·\81B
+// $Log: MainApp.h,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.3  2001/07/09 20:30:09  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.2  2001/05/12 00:49:43  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_MainImpl_H__A78603C6_C6A5_4017_9BA8_6228600E3D63__INCLUDED_)
+#define AFX_MainImpl_H__A78603C6_C6A5_4017_9BA8_6228600E3D63__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "Main.h"
+namespace sf {
+       namespace application {
+               enum State {
+                       INITIALIZE,
+                       MAIN,
+                       EDIT,
+                       END
+               };
+
+               class MainImpl  : public Main
+               {
+                       // LIFECYCLE //
+                       MainImpl();
+                       DECLARE_SINGLETON(MainImpl)
+               public:
+                       virtual ~MainImpl();
+                       
+                       // OPERATORS //
+                       // OPEARTIONS //
+                       // \8f\89\8aú\89»
+                       void initialize(void);
+                       //
+                       void run();
+                       system::console::sprite::Sprite * const getBlankSprite(){return mpSpriteBlank;};
+
+                       // INQUIRY //
+               private:
+
+                       State mState;
+                       
+                       system::System * mpSystem;
+                       system::console::Console * mpConsole;
+                       system::sound::Sound * mpSound;
+                       system::console::sprite::Sprite *mpSpriteBlank;
+               };// MainImpl
+       }// application
+
+}// sf
+#endif // !defined(AFX_MainImpl_H__A78603C6_C6A5_4017_9BA8_6228600E3D63__INCLUDED_)
diff --git a/project/s2001/Manager.cpp b/project/s2001/Manager.cpp
new file mode 100644 (file)
index 0000000..b360d5d
--- /dev/null
@@ -0,0 +1,85 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Manager.cpp: Manager \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//     \97\9a\97ð\81F
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+// System Includes //
+#include <stack>
+#include <list>
+#include <vector>
+#include <string>
+#include <map>
+#include <fstream>
+
+// Project Includes //
+#include "exception.h"
+#include "singleton.h"
+#include "system.h"
+#include "console.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "Scene.h"
+#include "Manager.h"
+
+
+using namespace sf::application::scene;
+// ---------------------------------------------------------------------------
+// Scene::Container \83N\83\89\83X\81@\8eÀ\91\95\95\94
+// ---------------------------------------------------------------------------
+
+// \83R\83\93\83e\83i\83V\83\93\83O\83\8b\83g\83\93 -------------------------------------------------------
+IMPLEMENT_SINGLETON(Container,Container);
+
+// \83R\83\93\83X\83g\83\89\83N\83^ -------------------------------------------------------------
+Container::Container()
+{
+       ;
+}// Container()
+
+// \83f\83X\83g\83\89\83N\83^ --------------------------------------------------------------- 
+Container::~Container()
+{
+       SceneContainer::iterator it = mContainer.begin();
+
+       while(it != mContainer.end())
+       {
+               if(*it != NULL){
+                       delete (*it);
+               }
+               it = mContainer.erase(it);
+       }
+
+}// ~Container()
+
+IMPLEMENT_SINGLETON(DLLManager,DLLManager);
+
+/*
+// \83V\81[\83\93\90\90¬\83\81\83\\83b\83h\81i\90»\8dì\8eÒ\95\\8e¦) -----------------------------------------------
+Scene * const AuthorParameter::createScene(bool bAddSceneContainer)
+{
+       Scene *pscene = new Author(this);
+       if(bAddSceneContainer)
+               Container::instance()->add(pscene);
+       return pscene;
+}//  AuthorParameter::createScene()
+
+// \83V\81[\83\93\90\90¬\83\81\83\\83b\83h(\83t\83F\81[\83h\83C\83\93\81E\83A\83E\83g) ---------------------------------------
+Scene * const FadeParameter::createScene(bool bAddSceneContainer)
+{
+       Scene *pscene = new Fade(this);
+       if(bAddSceneContainer)
+               Container::instance()->add(pscene);
+       return pscene;
+}//  FadeParameter::createScene()
+*/
diff --git a/project/s2001/Manager.h b/project/s2001/Manager.h
new file mode 100644 (file)
index 0000000..e005652
--- /dev/null
@@ -0,0 +1,398 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Manager.h: Manager \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_MANAGER_H__54ECBFD0_103D_4D71_83BB_83D948FD2892__INCLUDED_)
+#define AFX_MANAGER_H__54ECBFD0_103D_4D71_83BB_83D948FD2892__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "windows.h"
+#include "Exception.h"
+#include <iosfwd>
+#include "stdafx.h"
+namespace sf {
+       namespace application {
+               namespace scene {
+                       // ----------------------------------------------------------------
+                       // \83R\83\93\83e\83i\83N\83\89\83
+                       // ----------------------------------------------------------------
+                       typedef std::list<Scene *> SceneContainer;
+
+                       class Container : public Listener
+                       {
+                               DECLARE_SINGLETON(Container)
+
+                               Container();
+                       public:
+                               ~Container();
+
+                               void add(Scene * const pScene)
+                               {  
+                                       mContainer.push_back(pScene);
+                                       pScene->addListener(this);
+                               };
+
+                               // \83V\81[\83\93\83|\83C\83\93\83^\82Ì\8eæ\93¾
+                               void move(void)
+                               {
+                                       
+                                       if(mContainer.empty()){
+                                               throw sf::system::RecoverbleErrorException("Scene is Empty",__FILE__,__LINE__,sf::system::Exception::SCENE_IS_EMPTY);
+                                       };
+
+                                       for(SceneContainer::iterator it = mContainer.begin();it != mContainer.end();++it)
+                                       {
+                                               if(*it != NULL){
+                                                       if((*it)->isActive()){
+                                                               (*it)->move();
+                                                       }
+                                               }
+                                       }
+                               };
+
+                               // NULL\83|\83C\83\93\83^\82Ì\8dí\8f\9c
+                               void eraseNull(void)
+                               {
+                                       for(SceneContainer::iterator it = mContainer.begin();it != mContainer.end();++it)
+                                       {
+                                               if(*it == NULL){
+                                                       it = mContainer.erase(it);
+                                               }
+                                       }
+
+                               };
+
+                               // \83V\81[\83\93\8fI\97¹\8e\9e\82Ì\8f\88\97\9d 
+                               virtual void endOfScene(Scene * const pScene)
+                               {       
+                                       for(SceneContainer::iterator it = mContainer.begin();it != mContainer.end();++it)
+                                       {
+                                               if(*it == pScene){
+                                                       *it = NULL;
+                                                       break;
+                                               }
+                                       }
+
+                               };
+
+                               // \83V\81[\83\93\8fI\97¹\8e\9e\82Ì\8f\88\97\9d 
+                               const bool findScene(Scene * const pScene)
+                               {       
+                                       for(SceneContainer::iterator it = mContainer.begin();it != mContainer.end();++it)
+                                       {
+                                               if(*it == pScene){
+                                                       return true;
+                                               }
+                                       }
+                                       return false;
+                               };
+                               
+                               virtual void exitKeyPressed(Scene * const pScene)
+                               {       endOfScene(pScene);};
+                       private:
+                                SceneContainer mContainer;
+                       };// Container
+                       
+                       
+                       // \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+                       // \83V\81[\83\93\82c\82k\82k\90§\8cä\97p\83N\83\89\83X
+                       // \93®\93I\82¨\82æ\82Ñ\90Ã\93I\82É\83V\81[\83\93\82c\82k\82k\82ð\83\8d\81[\83h\81A\8aJ\95ú\82·\82é\8ed\91g\82Ý\82ð\92ñ\8b\9f\82·\82é
+                       // \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+
+                       class DLL;
+
+                       std::ostream & operator <<
+                ( std::ostream &rOStrm    
+                , const sf::application::scene::DLL & rDll);  
+                       
+                       std::istream& operator >> 
+                               (       std::istream& rIStrm, 
+                               sf::application::scene::DLL &rDLL);
+
+                       // DLL
+                       class DLL : public sf::application::scene::Listener
+                       {
+                       public:
+                               friend std::ostream & operator <<
+                ( std::ostream &rOStrm    // cStrStrm
+                       , const sf::application::scene::DLL & rDll);
+                               friend std::istream& operator >> 
+                               (       std::istream& rIStrm, 
+                               sf::application::scene::DLL &rDLL);
+                               
+                               // LIFE CYCLE;
+                               DLL()
+                               {
+                                       mbPreLoad = false;
+                                       mhModule = NULL;
+                                       mpCreateFunc = NULL;
+                               };
+
+                               DLL(const char * pDLLName,const bool bPreLoad = false)
+                               {
+                                       mDLLName = pDLLName;
+                                       if(bPreLoad){
+                                               mbPreLoad = true;
+                                               mhModule = LoadLibrary(pDLLName);
+                                               mpCreateFunc = (CreateSceneMethod)GetProcAddress(mhModule,"createScene");
+
+                                       } else {
+                                               mbPreLoad = false;
+                                               mhModule = NULL;
+                                               mpCreateFunc = NULL;
+                                       }
+                               };
+
+                               ~DLL()
+                               {
+                                       // \8dí\8f\9c\82³\82ê\82é\91O\82ÉTalker\82Ö\82ÌListner\93o\98^\82ð\8dí\8f\9c
+                                       std::vector<Scene *>::iterator it = mSceneList.begin();
+                                       while(it != mSceneList.end()){
+                                               (*it)->removeListener(this);
+                                               it = mSceneList.erase(it);
+                                               it++;
+                                       }
+                                       // \95Û\8e\9d\82µ\82Ä\82¢\82é\83\89\83C\83u\83\89\83\8a\82ð\8aJ\95ú\82·\82é
+                                       if(mhModule){
+                                               FreeLibrary(mhModule);
+                                       }
+
+                               };
+
+                               // OPERATORS //
+                               // OPERATIONS //
+                               // DLL\82Ì\83\8d\81[\83h
+                               void load()
+                               {
+                                       if(mhModule) return;
+                                       mhModule = LoadLibrary(mDLLName.c_str());
+                                       mpCreateFunc = (CreateSceneMethod)GetProcAddress(mhModule,"createScene");
+                               };
+
+                               // DLL\93à\82Ì\83V\81[\83\93\82Ì\8dì\90¬
+                               Scene * const createScene(const int id,const bool bAddSceneContainer = true)
+                               {
+                                       if(mhModule){
+                                               Scene * pscene = (*mpCreateFunc)(id);
+                                               pscene->addListener(this);
+                                               mSceneList.push_back(pscene);
+                                               addRef();
+                                               if(bAddSceneContainer){
+                                                       Container::instance()->add(pscene);
+                                               }
+                                               return pscene;
+                                       };
+                                       return NULL;
+                               }
+
+                               // \83m\81[\83}\83\8b\8fI\97¹
+                               void endOfScene(Scene * const pScene)
+                               {
+                                       std::vector<Scene *>::iterator it = mSceneList.begin();
+                                       while(it != mSceneList.end()){
+                                               if(*it == pScene){
+                                                       mSceneList.erase(it);
+                                                       break;
+                                               }
+                                               it++;
+                                       }
+                                       release();
+                               };
+
+                               // Exit\83L\81[\82ª\89\9f\82³\82ê\82½
+                               void exitKeyPressed(Scene * const pScene){;};
+
+                               // INQUIRY //
+                               // DLL\82ª\83\8d\81[\83h\82³\82ê\82Ä\82¢\82é\82©\82Ç\82¤\82©
+                               const bool isLoad() const {return (mhModule != NULL);};
+                               const std::string & name(void){return mDLLName;};
+                       private:
+                               // DLL\82Ì\8aJ\95ú
+                               void freeLibrary()
+                               {       FreeLibrary(mhModule);
+                                       mhModule = NULL;
+                               };
+
+                               // \8eQ\8fÆ\83J\83E\83\93\83^\82Ì\89Á\8e
+                               void addRef(){mRefCount++;};
+
+                               // \8eQ\8fÆ\83J\83E\83\93\83^\82Ì\8c¸\8eZ\81A\83\8a\83\8a\81[\83
+                               void release()
+                               {       if(mRefCount){
+                                               mRefCount--;
+                                               if(!mRefCount && !mbPreLoad){
+                                                       freeLibrary();
+                                               }
+                                       }
+                               };
+
+                               std::string mDLLName;
+                               HMODULE mhModule;
+                               bool mbPreLoad;
+                               CreateSceneMethod mpCreateFunc;
+                               int mRefCount;
+
+                               // Talker\82Ö\82Ì\83|\83C\83\93\83^\82ð\95Û\8e\9d //
+                               std::vector<Scene *> mSceneList;
+
+                       };// DLL \83N\83\89\83X;
+                       
+                       // DLL\83\8d\81[\83f\83B\83\93\83O\97p\83I\83y\83\8c\81[\83^\83I\81[\83o\81[\83\8d\81[\83h
+                       std::ostream& operator <<
+                ( std::ostream &rOStrm    
+                , const sf::application::scene::DLL & rDLL)   
+                       {
+                               rOStrm << rDLL.mDLLName;
+                               if(rDLL.mbPreLoad){
+                                       rOStrm << " PRELOAD";
+                               } else {
+                                       rOStrm << " DELAYLOAD";
+                               }
+                               return rOStrm;
+                       };// std::ostream & operator<<;
+
+                       std::istream& operator >> 
+                               (       std::istream& rIStrm, 
+                               sf::application::scene::DLL &rDLL)
+                       {
+                               std::string tmp;
+                               rIStrm >> rDLL.mDLLName;
+                               rIStrm >> tmp;
+                               
+                               if(tmp == "PRELOAD"){
+                                       rDLL.mbPreLoad = true;
+                               } else {
+                                       rDLL.mbPreLoad = false;
+                               }
+                               return rIStrm;
+                       };// std::istream& operator >> 
+                       
+                       // \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+                       // DLL\8aÇ\97\9d\83N\83\89\83
+                       // \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+                       class DLLManager
+                       {
+                               DECLARE_SINGLETON(DLLManager)
+                       public:
+                               ~DLLManager(){
+                                       unload();
+                               };//
+
+                               // \83V\81[\83\93DLL\82Ì\83\8d\81[\83h //
+                               void load(const char * pFileName)
+                               {
+                                       std::fstream dll_conf(pFileName,std::ios::in);
+                                       if(!dll_conf.is_open()){
+                                               throw sf::system::FatalErrorException("Scene Def File Not Found",__FILE__,__LINE__);
+                                       }
+                                       
+                                       int i = 0;
+                                       int scene_index;
+
+                                       while(!dll_conf.eof())
+                                       {
+                                               dll_conf >> scene_index;
+                                               DLL* pdll = new DLL;
+                                               dll_conf >> (*pdll);
+                                               int j;
+                                               int dll_index = i;
+                                               
+                                               for(j = 0;j < mDLLs.size();j++){
+                                                       if(mDLLs[j]->name() == pdll->name()){
+                                                               dll_index = j;
+                                                               break;
+                                                       }
+                                               }
+                                               
+                                               if(dll_index == i){
+                                                       mDLLs.push_back(pdll);
+                                               } else {
+                                                       delete pdll;
+                                               };
+
+                                               Node* nd = new Node;
+                                               nd->mDLLIndex = dll_index;
+                                               nd->mDLLInternalIndex = scene_index;
+                                               mSceneIndex.push_back(nd);
+                                       };
+
+                               };// load()
+                               
+                               // \83A\83\93\83\8d\81[\83h //
+                               void unload(){
+
+                                       std::vector<Node *>::iterator it = mSceneIndex.begin();
+                                       while(!mSceneIndex.empty()){
+                                               delete *it;
+                                               it = mSceneIndex.erase(it);
+                                       }
+
+                                       std::vector<sf::application::scene::DLL *>::iterator it1 = mDLLs.begin();
+                                       while(!mDLLs.empty()){
+                                               delete *it1;
+                                               it1 = mDLLs.erase(it1);
+                                       }
+
+                               };// unload()
+
+                               // \83V\81[\83\93\83C\83\93\83X\83^\83\93\83X\82Ì\90\90¬ //
+                               Scene * const createScene(const int id,const bool bAddSceneContainer = true){
+                                       return mDLLs[mSceneIndex[id]->mDLLIndex]->createScene(mSceneIndex[id]->mDLLInternalIndex,bAddSceneContainer); 
+                               };// createScene()
+
+                       private:
+                               
+                               struct Node {
+                                       int mDLLIndex;
+                                       int mDLLInternalIndex;
+                               };
+
+                               // DLL\82Ì\83\8a\83X\83g
+                               std::vector<sf::application::scene::DLL *> mDLLs;
+                               // \83V\81[\83\93\81¨DLL\91Î\89\9e\95\
+                               std::vector<Node *> mSceneIndex;
+                       };// DLLManager
+                       
+/*
+                       // ----------------------------------------------------------------
+                       // \95Ò\8fW\89æ\96Ê\83p\83\89\83\81\81[\83\83N\83\89\83
+                       // ----------------------------------------------------------------
+                       class Game;
+
+                       SF_INTERFACE BGEditor
+                       {
+                       public:
+                               BGEditor(){;};
+                               virtual ~BGEditor(){;};
+                               // OPERATORS //
+                               // OPERATIONS //
+                               // ACCESS //
+                               virtual void game(Game * const pGame) = 0;
+                               virtual Game * const game(void) const = 0;
+                       };
+
+                       SF_INTERFACE DispositionEditor
+                       {
+                       public:
+                               DispositionEditorParameter(){;};
+                               virtual ~DispositionEditorParameter(){;};
+                               // OPERATORS //
+                               // OPERATIONS //
+                               // ACCESS //
+                               
+                               virtual void game(Game * const pGame) = 0;
+                               virtual Game * const game(void) const  = 0; 
+                       };
+*/
+
+               }
+       }
+}
+
+#endif // !defined(AFX_MANAGER_H__54ECBFD0_103D_4D71_83BB_83D948FD2892__INCLUDED_)
diff --git a/project/s2001/MyBullets.cpp b/project/s2001/MyBullets.cpp
new file mode 100644 (file)
index 0000000..b611a86
--- /dev/null
@@ -0,0 +1,316 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// MyBullets.cpp: MyBullets \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//     \97\9a\97ð\81F
+// $Log: MyBullets.cpp,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.8  2001/07/09 20:30:09  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.7  2001/07/01 21:30:34  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.6  2001/07/01 01:03:44  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.5  2001/06/10 21:17:01  fujiwara
+// \83^\81[\83Q\83b\83g\92Ç\89Á\81i\92n\8fã\97p\81j
+//
+// Revision 1.4  2001/05/29 01:12:35  fujiwara
+// \8eG\8b\9b\83L\83\83\83\89(\94ò\8ds\95¨\81j\82Ì\8dì\90¬\81B\94z\92u\83G\83f\83B\83^\82Ì\83o\83O\8fC\90³
+//
+// Revision 1.3  2001/05/13 20:04:24  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.2  2001/05/12 00:49:34  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include <string>
+#include <vector>
+#include <memory>
+#include <stack>
+#include <list>
+#include <iostream>
+#include <fstream>
+#include <map>
+
+#include "stdio.h"
+#include "math.h"
+
+#include "exception.h"
+#include "singleton.h"
+#include "system.h"
+#include "console.h"
+#include "input.h"
+#include "sound.h"
+
+#include "Obj.h"
+#include "Obj2D.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+
+#include "Background.h"
+#include "Scene.h"
+#include "main.h"
+
+#include "character.h"
+#include "Hit.h"
+#include "MyShip.h"
+#include "Game.h"
+#include "Enemys.h"
+#include "Armys.h"
+#include "DispositionControl.h"
+#include "AbstractCharacter.h"
+#include "MyBullets.h"
+
+using namespace sf::application;
+using namespace sf::system::console;
+using namespace sf::application::player::bullet;
+
+//////////////////////////////////////////////////////////////////////
+// Bullets 
+//////////////////////////////////////////////////////////////////////
+
+const int Bullets::INIT_BULLETS = 3;
+
+// \83I\83u\83W\83F\83N\83g\90\90¬\83\81\83\\83b\83h\82Ö\82Ì\83|\83C\83\93\83
+const Bullets::CreateFuncPtr Bullets::mpFunctions[MAX_TYPE] = {
+       &Normal::create
+};
+
+// \83e\83N\83X\83`\83\83\83\8d\81[\83_\81[\82Ö\82Ì\83|\83C\83\93\83^
+const Bullets::LoaderFuncPtr Bullets::mpLoaders[MAX_TYPE] = {
+       &Normal::load
+};
+
+int Normal::mSoundID = 0;
+int Normal::mSoundIDB = 0;
+
+// \83V\83\93\83O\83\8b\83g\83\93\83p\83^\81[\83\93\82ð\92[\90Ü\82é\82½\82ß\82Ì\83}\83N\83\8d
+IMPLEMENT_SINGLETON(Bullets,Bullets)
+
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Bullets::Bullets()
+{
+       int i;
+       for(i = 0;i < MAX_BULLETS;i++){
+               mpBullets[i] = NULL;
+       }
+
+       mMax = INIT_BULLETS;
+       mCount = 0;
+}// Bullets()
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Bullets::~Bullets()
+{
+       int i;
+
+       for(i = 0;i < MAX_BULLETS;i++)
+       {
+               if(mpBullets[i]){
+                       delete mpBullets[i];
+                       mpBullets[i] = NULL;
+               }
+       }
+
+
+}// ~Bullets()
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Bullets::initialize(){
+       
+       int i;
+       for(i = 0;i < MAX_BULLETS;i++)
+       {
+               if(mpBullets[i]){
+                       delete mpBullets[i];
+                       mpBullets[i] = NULL;
+               }
+       }
+
+       // \83r\83b\83g\83}\83b\83v\82Ì\83\8d\81[\83h
+       for(i = 0;i < MAX_TYPE;i++){
+               (*mpLoaders[i])();
+       }
+       mCount = 0;
+}// initialize()
+
+// \92e\82Ì\88Ú\93® \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Bullets::move(void)
+{
+       int count = 0;
+       for(int i = 0;i < MAX_BULLETS;i++)
+       {
+               if(mpBullets[i]){
+                       mpBullets[i]->move();
+               }
+       }
+}// move()
+
+// \92e\82ð\90\90¬\82·\82é \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+const bool Bullets::create(const TYPE id,const float x,const float y,const float z,sf::application::scene::Game * const pGame)
+{
+       if(id >= MAX_TYPE)
+               return false;
+
+       if(mCount >= mMax)
+               return false;
+       
+       for(int i = 0 ; i < MAX_BULLETS; i++){
+               if(mpBullets[i] == NULL){
+                       mpBullets[i] = (*mpFunctions[id])(x,y,z,pGame,i);
+                       mCount++;
+                       return true;
+               }
+       }
+       return false;
+}// create()
+
+// \93\96\82è\94»\92è \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+const bool Bullets::hitCheck(Character * const pDest){
+       bool return_ = false;
+
+       for(int i = 0;i < MAX_BULLETS;i++){
+               if(mpBullets[i]){
+                       if(mpBullets[i]->hitCheck(pDest)){
+                               mpBullets[i]->hit(pDest);
+                               pDest->hit(mpBullets[i]);
+                               return_ = true;
+                       };
+               }
+       }
+       return return_;
+}// hitCheck(Character * const pDest)
+
+const bool Bullets::hitCheck(Characters * const pDest){
+       bool return_ = false;
+
+       for(int i = 0;i < MAX_BULLETS;i++){
+               if(mpBullets[i]){
+                       if(pDest->hitCheck(mpBullets[i]))
+                               return_ = true;
+               }
+       }
+
+       return return_;
+}// hitCheck(Characters * const pDest)
+
+
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+// \83m\81[\83}\83\8b\92e
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+
+const console::sprite::Info Normal::mSpriteInfo = {
+       "media\\normal.png",0.0f,0.0f,0.0f,0.0f,0xff000000,console::sprite::SPRITE2D
+};
+
+const console::sprite::Info Normal::mSpriteBInfo = {
+       "media\\normalb.png",0.0f,0.0f,32.0f,32.0f,0xff000000,console::sprite::SPRITE2D
+};
+
+const float Normal::mTextureHeight = 32.0f;
+const float Normal::mTextureWidth = 32.0f;
+
+std::auto_ptr<sf::system::console::sprite::Sprite> Normal::mpSprite;
+std::auto_ptr<sf::system::console::sprite::Sprite> Normal::mpSpriteB;
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Normal::initialize()
+{
+       mHitRect.offsetTop(-8.0f);
+       mHitRect.offsetLeft(-2.0f);
+       mHitRect.offsetBottom(8.0f);
+       mHitRect.offsetRight(2.0f);
+       mHitRect.isChecking(true);
+       mHitRect.characterPtr(this);
+       mbHit = false;
+       mObj.x(x());
+       mObj.y(y());
+       mObj.z(z() + Z_OFFSET);
+       mObj.color(0xc0ffffff);
+       mObj.drawMode(DRAW_ADD);
+
+       mObj.sprite(mpSprite.get());
+       mObj.visibility(true);
+       
+       speed(-48.0f * sf::system::instance()->deltaTime());
+       direction(sf::system::PI / 2.0f);
+       mObj.angle(direction());
+       mBeforeY = y();
+       sf::system::instance()->sound()->play(mSoundID,1,false,false);
+       life(1);
+       mState = MOVE;
+}// Normal::initialize
+
+// \92e\82Ì\93®\82« \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Normal::move(void){
+       
+       switch(mState)
+       {
+       case MOVE:
+               mBeforeY = y();
+               y(y() + speed());
+               mObj.y(y());
+       
+               if(y() < (viewport::Y - mTextureHeight / 2.0f)){
+                       delete this;
+                       return;
+               }
+               // \93\96\82è\94»\92è\82Ì\95â\90³ 
+               mHitRect.offsetBottom(mHitRect.offsetTop() - speed() );
+               break;
+       case BOUND:
+               mAnimCount++;
+               if(mAnimCount > 7.0f){
+                       mState = DEAD;
+                       break;
+               }
+               mObj.index(mAnimCount);
+               break;
+       case DEAD:
+               delete this;
+               return;
+       }
+}// Normal::move()
+
+// \83e\83N\83X\83`\83\83\81E\83T\83E\83\93\83h\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Normal::load(void){
+       using namespace sf::system::console::sprite;
+       if(!mpSprite.get()){
+               std::auto_ptr<sf::system::console::sprite::Sprite> ptemp(sf::system::instance()->console()->createSprite(&mSpriteInfo)); 
+               mpSprite = ptemp;
+               std::auto_ptr<sf::system::console::sprite::Sprite> ptemp1(sf::system::instance()->console()->createSprite(&mSpriteBInfo)); 
+               mpSpriteB = ptemp1;
+       }
+       using namespace sf::system;
+       mSoundID = instance()->sound()->load("beam.wav");
+       mSoundIDB = instance()->sound()->load("bound.wav");
+
+}// Normal::load()
+
+Character * const Normal::create(float x,float y ,float z,sf::application::scene::Game * const pGame,int index)
+{
+       Normal * ptemp = new Normal;
+       ptemp->x(x);
+       ptemp->y(y);
+       ptemp->z(z);
+       ptemp->index(index);
+       ptemp->game(pGame);
+       ptemp->initialize();
+       return ptemp;
+};// create()
diff --git a/project/s2001/MyBullets.h b/project/s2001/MyBullets.h
new file mode 100644 (file)
index 0000000..6b5e48a
--- /dev/null
@@ -0,0 +1,151 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// MyBullets.h: MyBullets \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: MyBullets.h,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.6  2001/07/09 20:30:09  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.5  2001/07/01 01:03:44  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.4  2001/06/10 21:17:01  fujiwara
+// \83^\81[\83Q\83b\83g\92Ç\89Á\81i\92n\8fã\97p\81j
+//
+// Revision 1.3  2001/05/13 20:04:24  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.2  2001/05/12 00:49:34  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_MYBULLETS_H__A11104A5_01DB_4B55_B2D4_04853C553E9C__INCLUDED_)
+#define AFX_MYBULLETS_H__A11104A5_01DB_4B55_B2D4_04853C553E9C__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+namespace sf {
+       namespace application {
+               namespace player {
+                       namespace bullet {
+
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+// \8e©\92e\92è\8b
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+
+const  int MAX_BULLETS = 8;
+const  int MAX_TYPE = 1;
+
+class Bullets : public Characters {
+       DECLARE_SINGLETON(Bullets)
+       Bullets();
+public:
+       ~Bullets();
+       // Type \92è\8b` //
+       // \83I\83u\83W\83F\83N\83g\90\90¬\83\81\83\\83b\83h\82Ö\82Ì\83|\83C\83\93\83
+       typedef Character * const (*CreateFuncPtr)(float,float,float,sf::application::scene::Game * const,int);
+       // \83e\83N\83X\83`\83\83\83\8d\81[\83_\82Ö\82Ì\83|\83C\83\93\83^
+       typedef void (*LoaderFuncPtr)(void);
+       enum TYPE {
+               NORMAL = 0
+       };
+       // OPERATIONS 
+       void initialize();
+       // \83L\83\83\83\89\83N\83^\81[\88Ú\93®
+       void move(void);
+
+       const bool create(const TYPE id,const float x,const float y,const float z,sf::application::scene::Game * const pGame);
+       const bool hitCheck(Character * const pDest);
+       const bool hitCheck(Characters * const pDest);
+       const void clear(int index){mpBullets[index] = NULL ; mCount-- ;};
+private:
+       Character *mpBullets[MAX_BULLETS];
+       int mCount;
+       int mMax;
+       static const LoaderFuncPtr mpLoaders[MAX_TYPE];
+       static const int INIT_BULLETS;
+       static const CreateFuncPtr mpFunctions[MAX_TYPE];
+};// Bullets()
+
+       // 
+       const float Z_OFFSET = 0.2f;
+       
+       // \83m\81[\83}\83\8b\92\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+       class Normal : public sf::application::AbstractCharacter {
+       public:
+               // LIFECYCLE //
+               Normal(){};
+               ~Normal(){ sf::application::player::bullet::Bullets::instance()->clear(index());};
+               // OPERATORS //
+               // OPERATIONS //
+               void initialize();
+               // \83L\83\83\83\89\83N\83^\81[\88Ú\93®
+               void move(void);
+
+               // \92\86\90S\8dÀ\95W
+
+               void hit(Character * const pDest)
+               {       
+                       if(mState == MOVE){
+                               if(pDest->life() > life()){
+                                       mHitRect.isChecking(false);
+                                       mbHit = true;
+                                       mState = BOUND;
+                                       mObj.sprite(mpSpriteB.get());
+                                       mAnimCount = 0.0f;
+                                       sf::system::instance()->sound()->play(mSoundIDB,1,false,false);
+                               } else {
+                                       mHitRect.isChecking(false);
+                                       mbHit = true;
+                                       mState = DEAD;
+                               }
+                       }
+               };
+
+               static Character * const create(float x,float y ,float z,sf::application::scene::Game * const pGame,int index);
+               static void load(void);
+               
+               // ACCESS //
+               sf::application::hit::Interface * const hitObj(void){ return &mHitRect;};
+               // INQUIRY //
+       private:
+               enum STATE {
+                       MOVE,
+                       BOUND,
+                       DEAD
+               } mState;
+
+               hit::HitRect mHitRect;
+               bool mbHit;
+//             float mSpeed;
+               float mBeforeY;
+               float mAnimCount;
+
+               sf::system::console::ObjRectangle mObj;
+               static int mSoundID;
+               static int mSoundIDB;
+               static std::auto_ptr<sf::system::console::sprite::Sprite> mpSprite;
+               static std::auto_ptr<sf::system::console::sprite::Sprite> mpSpriteB;
+
+               static const console::sprite::Info mSpriteInfo;
+               static const console::sprite::Info mSpriteBInfo;
+               static const float mTextureWidth;
+               static const float mTextureHeight;
+       };// Normal 
+
+};
+               }       
+       }
+}
+
+#endif // !defined(AFX_MYBULLETS_H__A11104A5_01DB_4B55_B2D4_04853C553E9C__INCLUDED_)
diff --git a/project/s2001/MyGroundBullets.cpp b/project/s2001/MyGroundBullets.cpp
new file mode 100644 (file)
index 0000000..7eb30ae
--- /dev/null
@@ -0,0 +1,367 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// MyGroundBullets.cpp: MyGroundBullets \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//     \97\9a\97ð\81F
+// $Log: MyGroundBullets.cpp,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.4  2001/07/09 20:30:09  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.3  2001/07/01 21:30:34  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.2  2001/07/01 01:03:44  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.1  2001/06/10 21:17:34  fujiwara
+// \92n\8fã\97p\92Ç\89Á
+//
+// Revision 1.4  2001/05/29 01:12:35  fujiwara
+// \8eG\8b\9b\83L\83\83\83\89(\94ò\8ds\95¨\81j\82Ì\8dì\90¬\81B\94z\92u\83G\83f\83B\83^\82Ì\83o\83O\8fC\90³
+//
+// Revision 1.3  2001/05/13 20:04:24  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.2  2001/05/12 00:49:34  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include <string>
+#include <vector>
+#include <memory>
+#include <stack>
+#include <list>
+#include <iostream>
+#include <fstream>
+#include <map>
+
+#include "stdio.h"
+#include "math.h"
+
+#include "exception.h"
+#include "singleton.h"
+#include "system.h"
+#include "console.h"
+#include "input.h"
+#include "sound.h"
+
+#include "Obj.h"
+#include "Obj2D.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+
+#include "Background.h"
+#include "Scene.h"
+#include "main.h"
+
+#include "character.h"
+#include "Hit.h"
+#include "MyShip.h"
+#include "Game.h"
+#include "Enemys.h"
+#include "Armys.h"
+#include "DispositionControl.h"
+#include "AbstractCharacter.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "MyGroundBullets.h"
+#include "Target.h"
+#include "Effects.h"
+#include "Explosion.h"
+#include "Enemys.h"
+
+
+using namespace sf::application;
+using namespace sf::system::console;
+using namespace sf::application::player::bullet;
+
+//////////////////////////////////////////////////////////////////////
+// GroundBullets 
+//////////////////////////////////////////////////////////////////////
+
+const int GroundBullets::INIT_GROUNDBULLETS = 1;
+
+// \83I\83u\83W\83F\83N\83g\90\90¬\83\81\83\\83b\83h\82Ö\82Ì\83|\83C\83\93\83
+const GroundBullets::CreateFuncPtr GroundBullets::mpFunctions[MAX_GROUNDTYPE] = {
+       &GroundNormal::create
+};
+
+// \83e\83N\83X\83`\83\83\83\8d\81[\83_\81[\82Ö\82Ì\83|\83C\83\93\83^
+const GroundBullets::LoaderFuncPtr GroundBullets::mpLoaders[MAX_GROUNDTYPE] = {
+       &GroundNormal::load
+};
+
+int GroundNormal::mSoundID = 0;
+
+// \83V\83\93\83O\83\8b\83g\83\93\83p\83^\81[\83\93\82ð\92[\90Ü\82é\82½\82ß\82Ì\83}\83N\83\8d
+IMPLEMENT_SINGLETON(GroundBullets,GroundBullets)
+
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+GroundBullets::GroundBullets()
+{
+       int i;
+       for(i = 0;i < MAX_GROUNDBULLETS;i++){
+               mpGroundBullets[i] = NULL;
+       }
+
+       mMax = INIT_GROUNDBULLETS;
+       mCount = 0;
+}// GroundBullets()
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+GroundBullets::~GroundBullets()
+{
+       int i;
+
+       for(i = 0;i < MAX_GROUNDBULLETS;i++)
+       {
+               if(mpGroundBullets[i]){
+                       delete mpGroundBullets[i];
+                       mpGroundBullets[i] = NULL;
+               }
+       }
+
+
+}// ~GroundBullets()
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void GroundBullets::initialize(){
+       
+       int i;
+       for(i = 0;i < MAX_GROUNDBULLETS;i++)
+       {
+               if(mpGroundBullets[i]){
+                       delete mpGroundBullets[i];
+                       mpGroundBullets[i] = NULL;
+               }
+       }
+
+       // \83r\83b\83g\83}\83b\83v\82Ì\83\8d\81[\83h
+       for(i = 0;i < MAX_GROUNDTYPE;i++){
+               (*mpLoaders[i])();
+       }
+       mCount = 0;
+}// initialize()
+
+// \92e\82Ì\88Ú\93® \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void GroundBullets::move(void)
+{
+       int count = 0;
+       for(int i = 0;i < MAX_GROUNDBULLETS;i++)
+       {
+               if(mpGroundBullets[i]){
+                       mpGroundBullets[i]->move();
+               }
+       }
+}// move()
+
+// \92e\82ð\90\90¬\82·\82é \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+const bool GroundBullets::create(const TYPE id,const float x,const float y,const float z,sf::application::scene::Game * const pGame)
+{
+       if(id >= MAX_GROUNDTYPE)
+               return false;
+
+       if(mCount >= mMax)
+               return false;
+       
+       for(int i = 0 ; i < MAX_GROUNDBULLETS; i++){
+               if(mpGroundBullets[i] == NULL){
+                       mpGroundBullets[i] = (*mpFunctions[id])(x,y,z,pGame,i);
+                       mCount++;
+                       return true;
+               }
+       }
+       return false;
+}// create()
+
+// \93\96\82è\94»\92è \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+const bool GroundBullets::hitCheck(Character * const pDest){
+       bool return_ = false;
+
+       for(int i = 0;i < MAX_GROUNDBULLETS;i++){
+               if(mpGroundBullets[i]){
+                       if(mpGroundBullets[i]->hitCheck(pDest)){
+                               mpGroundBullets[i]->hit(pDest);
+                               pDest->hit(mpGroundBullets[i]);
+                               return_ = true;
+                       };
+               }
+       }
+       return return_;
+}// hitCheck(Character * const pDest)
+
+const bool GroundBullets::hitCheck(Characters * const pDest){
+       bool return_ = false;
+
+       for(int i = 0;i < MAX_GROUNDBULLETS;i++){
+               if(mpGroundBullets[i]){
+                       if(pDest->hitCheck(mpGroundBullets[i]))
+                               return_ = true;
+               }
+       }
+
+       return return_;
+}// hitCheck(Characters * const pDest)
+
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+// \83m\81[\83}\83\8b\92e
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+
+const console::sprite::Info GroundNormal::mSpriteInfo = {
+       "media\\groundnormal.png",0.0f,0.0f,0.0f,0.0f,0xff000000,console::sprite::SPRITE2D
+};
+
+const float GroundNormal::mTextureHeight = 32.0f;
+const float GroundNormal::mTextureWidth = 32.0f;
+const float GroundNormal::INIT_SPEED = -3.0f;
+const float GroundNormal::INIT_ACCEL = 1.0f;
+std::auto_ptr<sf::system::console::sprite::Sprite> GroundNormal::mpSprite;
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void GroundNormal::initialize()
+{
+       mHitRect.offsetTop(-4.0f);
+       mHitRect.offsetLeft(-4.0f);
+       mHitRect.offsetBottom(4.0f);
+       mHitRect.offsetRight(4.0f);
+
+       mHitRect.isChecking(false);
+       mHitRect.characterPtr(this);
+       mbHit = false;
+       
+       mObj.x(x());
+       mObj.y(y());
+       mObj.z(z() + GROUND_Z_OFFSET);
+
+       mObj.color(0xc0ffffff);
+       mObj.drawMode(DRAW_ADD);
+
+       mObj.sprite(mpSprite.get());
+       mObj.visibility(true);
+
+       mObj.scalingX(1.0f);
+       mObj.scalingY(1.0f);
+
+       mObjTarget.x(x());
+       mObjTarget.y(y() + Target::OFFSET_Y);
+       mObjTarget.z(z() + GROUND_Z_OFFSET);
+
+       mObjTarget.color(0x40ff0000);
+       mObjTarget.drawMode(DRAW_ADD);
+
+       mObjTarget.sprite(Target::sprite());
+       mObjTarget.visibility(true);
+
+       mObjTarget.scalingX(1.0f);
+       mObjTarget.scalingY(1.0f);
+       
+       speed(INIT_SPEED * sf::system::instance()->deltaTime());
+       
+       mOffsetY = - Target::OFFSET_Y;
+
+       direction(sf::system::PI);
+       life(1);
+       sf::system::instance()->sound()->play(mSoundID,1,false,false);
+       mState = MOVE;
+}// GroundNormal::initialize
+
+// \92e\82Ì\93®\82« \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void GroundNormal::move(void){
+       
+       
+       switch(mState){
+       case MOVE:
+               main();
+               return;
+       case BOMB:
+               die();
+               return;
+       }
+
+
+}// GroundNormal::move()
+
+void GroundNormal::main(void)
+{
+               y(y() + speed());
+               mObj.angle(mObj.angle() + 0.25f);
+               mObj.y(y());
+               mObj.scalingX(mObj.scalingX() - 0.02f);
+               mObj.scalingY(mObj.scalingY() - 0.02f);
+               
+               mObjTarget.y(mObjTarget.y() + game()->scrollSpeed());
+               
+               mOffsetY += speed();
+               mOffsetY -= game()->scrollSpeed();
+
+               if(mOffsetY < 0.0f)
+               {
+                       mState = BOMB;
+                       mHitRect.isChecking(true);
+//                     mTimer = 3;
+               }
+               
+
+               if(mbHit || y() < (viewport::Y - mTextureHeight / 2.0f)){
+                       delete this;
+                       return;
+               }
+               
+               // \93\96\82è\94»\92è\82Ì\95â\90³ 
+
+               mHitRect.offsetBottom(mHitRect.offsetTop() - speed() );
+}// main()
+
+void GroundNormal::die(void)
+{
+       using namespace sf::application;
+       direction(3.0f * sf::system::PI / 2.0f );
+       speed( - game()->scrollSpeed());
+
+       effect::Explosion *pExp = (effect::Explosion*)effect::Effects::instance()->create(effect::Effects::EXPLOSION,x(),y(),enemy::Z_OFFSET_ARMYS - 0.01f,game(),this);
+       if(pExp){
+               pExp->scaling(0.8f);
+       }
+       delete this;
+
+}// die()
+
+// \83e\83N\83X\83`\83\83\81E\83T\83E\83\93\83h\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void GroundNormal::load(void){
+       using namespace sf::system::console::sprite;
+       if(!mpSprite.get()){
+               std::auto_ptr<sf::system::console::sprite::Sprite> ptemp(sf::system::instance()->console()->createSprite(&mSpriteInfo)); 
+               mpSprite = ptemp;
+//             mpSprite = std::auto_ptr<sf::system::console::sprite::Sprite *>(sf::system::instance()->console()->createSprite(&mSpriteInfo));
+       }
+       using namespace sf::system;
+       mSoundID = instance()->sound()->load("gnormal.wav");
+}// GroundNormal::load()
+
+Character * const GroundNormal::create(float x,float y ,float z,sf::application::scene::Game * const pGame,int index)
+{
+       GroundNormal * ptemp = new GroundNormal;
+       ptemp->x(x);
+       ptemp->y(y);
+       ptemp->z(z);
+       ptemp->index(index);
+       ptemp->game(pGame);
+       ptemp->initialize();
+       return ptemp;
+}// create();
diff --git a/project/s2001/MyGroundBullets.h b/project/s2001/MyGroundBullets.h
new file mode 100644 (file)
index 0000000..0d40227
--- /dev/null
@@ -0,0 +1,129 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// MyGroundBullets.h: MyGroundBullets \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: MyGroundBullets.h,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.2  2001/07/09 20:30:09  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.1  2001/06/10 21:17:34  fujiwara
+// \92n\8fã\97p\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_MYGROUNDBULLETS_H__A11104A5_01DB_4B55_B2D4_04853C553E9C__INCLUDED_)
+#define AFX_MYGROUNDBULLETS_H__A11104A5_01DB_4B55_B2D4_04853C553E9C__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+namespace sf {
+       namespace application {
+               namespace player {
+                       namespace bullet {
+
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+// \8e©\92e\92è\8b
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+
+       const   int MAX_GROUNDBULLETS = 1;
+       const   int MAX_GROUNDTYPE = 1;
+
+class GroundBullets : public Characters {
+       DECLARE_SINGLETON(GroundBullets)
+       GroundBullets();
+public:
+       ~GroundBullets();
+       // Type \92è\8b` //
+       // \83I\83u\83W\83F\83N\83g\90\90¬\83\81\83\\83b\83h\82Ö\82Ì\83|\83C\83\93\83
+       typedef Character * const (*CreateFuncPtr)(float,float,float,sf::application::scene::Game * const,int);
+       // \83e\83N\83X\83`\83\83\83\8d\81[\83_\82Ö\82Ì\83|\83C\83\93\83^
+       typedef void (*LoaderFuncPtr)(void);
+       enum TYPE {
+               NORMAL = 0
+       };
+       // OPERATIONS 
+       void initialize();
+       // \83L\83\83\83\89\83N\83^\81[\88Ú\93®
+       void move(void);
+
+       const bool create(const TYPE id,const float x,const float y,const float z,sf::application::scene::Game * const pGame);
+       const bool hitCheck(Character * const pDest);
+       const bool hitCheck(Characters * const pDest);
+       const void clear(int index){mpGroundBullets[index] = NULL ; mCount-- ;};
+       //
+
+private:
+       Character *mpGroundBullets[MAX_GROUNDBULLETS];
+       int mCount;
+       int mMax;
+       static const LoaderFuncPtr mpLoaders[MAX_GROUNDTYPE];
+       static const int INIT_GROUNDBULLETS;
+       static const CreateFuncPtr mpFunctions[MAX_GROUNDTYPE];
+};// GroundBullets()
+
+       // 
+       const float GROUND_Z_OFFSET = 0.5f;
+       
+       // \83m\81[\83}\83\8b\92\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+       class GroundNormal : public sf::application::AbstractCharacter {
+       public:
+               // LIFECYCLE //
+               GroundNormal(){};
+               ~GroundNormal(){ sf::application::player::bullet::GroundBullets::instance()->clear(index());};
+               // OPERATORS //
+               // OPERATIONS //
+               void initialize();
+               // \83L\83\83\83\89\83N\83^\81[\88Ú\93®
+               void move(void);
+
+               // \92\86\90S\8dÀ\95W
+
+               void hit(Character * const pDest){mHitRect.isChecking(false);mbHit = true;};
+
+               static Character * const create(float x,float y ,float z,sf::application::scene::Game * const pGame,int index);
+               static void load(void);
+               
+               // ACCESS //
+               sf::application::hit::Interface * const hitObj(void){ return &mHitRect;};
+               // INQUIRY //
+       private:
+               
+               void main();
+               void die();
+
+               enum STATE {
+                       MOVE,
+                       BOMB
+               } mState;
+               hit::HitRect mHitRect;
+               bool mbHit;
+               float mOffsetY;
+               float mAccel;
+               int mTimer;
+
+               sf::system::console::ObjRectangle mObj;
+               sf::system::console::ObjRectangle mObjTarget;
+               
+               static int mSoundID;
+               static std::auto_ptr<sf::system::console::sprite::Sprite> mpSprite;
+               static const console::sprite::Info mSpriteInfo;
+               static const float mTextureWidth;
+               static const float mTextureHeight;
+               
+               static const float INIT_SPEED;
+               static const float INIT_ACCEL;
+       };// GroundNormal 
+
+};
+               }       
+       }
+}
+
+#endif // !defined(AFX_MYGROUNDBULLETS_H__A11104A5_01DB_4B55_B2D4_04853C553E9C__INCLUDED_)
diff --git a/project/s2001/MyShip.cpp b/project/s2001/MyShip.cpp
new file mode 100644 (file)
index 0000000..5f4b920
--- /dev/null
@@ -0,0 +1,294 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Ship.cpp: Ship \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//     \97\9a\97ð\81F
+// $Log: MyShip.cpp,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.8  2001/07/09 20:30:09  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.7  2001/07/01 21:30:34  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.6  2001/07/01 01:03:44  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.5  2001/06/10 21:17:01  fujiwara
+// \83^\81[\83Q\83b\83g\92Ç\89Á\81i\92n\8fã\97p\81j
+//
+// Revision 1.4  2001/05/29 01:12:35  fujiwara
+// \8eG\8b\9b\83L\83\83\83\89(\94ò\8ds\95¨\81j\82Ì\8dì\90¬\81B\94z\92u\83G\83f\83B\83^\82Ì\83o\83O\8fC\90³
+//
+// Revision 1.3  2001/05/12 00:49:34  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//   2001/5/4 \8e©\92e\8aÖ\98A\82Ì\8eÀ\91\95\82ð\92Ç\89Á
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include <string>
+#include <vector>
+#include <memory>
+#include <stack>
+#include <list>
+#include <iostream>
+#include <fstream>
+#include <map>
+
+#include "stdio.h"
+#include "math.h"
+
+#include "exception.h"
+#include "singleton.h"
+#include "system.h"
+#include "console.h"
+#include "input.h"
+#include "sound.h"
+
+#include "Obj.h"
+#include "Obj2D.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+
+#include "Background.h"
+#include "Scene.h"
+#include "main.h"
+
+#include "character.h"
+#include "Hit.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "DispositionControl.h"
+#include "Game.h"
+#include "MyShip.h"
+#include "Enemys.h"
+#include "Armys.h"
+#include "AbstractCharacter.h"
+#include "MyBullets.h"
+#include "Effects.h"
+#include "Explosion.h"
+#include "Target.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+using namespace sf::application;
+using namespace sf::application::player;
+using namespace sf::system::console;
+
+const float Ship::INIT_X = (float)(viewport::X + viewport::WIDTH / 2);
+const float Ship::INIT_Y = (float)(viewport::Y + viewport::HEIGHT * 2 / 3);
+const float Ship::INIT_Z = 0.2f;
+
+const float Ship::BODY_HEIGHT = 64.0f;
+const float Ship::BODY_WIDTH = 64.0f;
+const float Ship::INIT_SPEED = 8.0f;
+const int Ship::INIT_LIFE = 3;
+
+const int Ship::PATTERN_MAX = 7;
+const int Ship::PATTERN_MIDDLE = 3;
+
+const console::sprite::Info Ship::INFO_BODY =
+{ "media\\myship.png",0.0f,0.0f,64.0f,64.0f,0xff000000,console::sprite::SPRITE2D};
+
+const int OBJ_BODY_NO = 2;
+
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Ship::Ship(scene::Game *pGame){
+       mpGame = NULL;
+       mBody.x(INIT_X);
+       mBody.y(INIT_Y);
+       mBody.z(INIT_Z);
+
+       mpConsole = NULL;
+       mpSystem = NULL;
+       mpSound = NULL;
+       mpInput = NULL;
+       mpSpriteShip = NULL;
+       mpGame = pGame;
+       mpTarget = NULL;
+}
+
+Ship::Ship()
+{
+       mpGame = NULL;
+       mBody.x(INIT_X);
+       mBody.y(INIT_Y);
+       mBody.z(INIT_Z);
+
+       mpConsole = NULL;
+       mpSystem = NULL;
+       mpSound = NULL;
+       mpInput = NULL;
+       mpSpriteShip = NULL;
+       mpTarget = NULL;
+       
+}
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Ship::~Ship()
+{
+       if(mpSpriteShip)
+               delete mpSpriteShip;
+       if(mpTarget)
+               delete mpTarget;
+
+}// ~Ship()
+
+// \8e©\8b@\82Ì\93®\82« \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Ship::move(void)
+{
+       using namespace sf::system::console;
+       bool bmove = false;
+       
+
+       switch (mState)
+       {
+       case MOVE:
+
+               
+               if(mpInput->left() && x() > (viewport::X + BODY_WIDTH / 2.0f)){
+                       x(x() - speed());
+                       if(mBody.index() > 0){
+                               mBody.index(mBody.index() - 1);
+                       }
+                       bmove = true;
+               }
+
+               if(mpInput->right() && x() < (viewport::X + viewport::WIDTH - BODY_WIDTH / 2.0f))
+               {
+                       x(x() + speed());
+                       if(mBody.index() < PATTERN_MAX){
+                               mBody.index(mBody.index() + 1);
+                       }
+                       bmove = true;
+               }
+
+               if(!bmove){
+                       if(mBody.index() < PATTERN_MIDDLE){
+                               mBody.index(mBody.index() + 1);
+                       } else {
+                               if(mBody.index() > PATTERN_MIDDLE){
+                                       mBody.index(mBody.index() - 1);
+                               }
+                       }
+
+               }
+               if(mpInput->up() && y() > (viewport::Y + BODY_HEIGHT / 2.0f))
+                       y(y() - speed());
+
+               if(mpInput->down() && y() < (viewport::Y + viewport::HEIGHT - BODY_HEIGHT / 2.0f))
+                       y(y() + speed());
+               
+               mBody.x(x());
+               mBody.y(y());
+               mpTarget->move();
+
+               // \92e\90§\8cä
+               if(mpInput->buttonA(true))
+                       bullet::Bullets::instance()->create(bullet::Bullets::NORMAL,mBody.x(),mBody.y(),mBody.z(),mpGame);
+               break;
+       case DEAD:
+               mCounter--;
+               
+               if(mCounter == 60){
+                       mBody.visibility(false);
+                       delete mpTarget;
+                       mpTarget = NULL;
+               }
+               
+               if(mCounter == 0){
+                       life(life() - 1);
+                       if(life() == 0){
+                               mpGame->state(scene::Game::OVER);
+                       } else {
+                               mpGame->state(scene::Game::RESTART);
+                       }
+               }
+
+       }
+
+
+}// move()
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Ship::initialize()
+{
+       x(INIT_X);
+       y(INIT_Y);
+       z(INIT_Z);
+
+       mBody.x(INIT_X);
+       mBody.y(INIT_Y);
+       mBody.z(INIT_Z);
+       mBody.index(PATTERN_MIDDLE);
+       mBody.color(0xffffffff);
+       mBody.drawMode(DRAW_TRANS);
+       
+       mShipHitArea.characterPtr(this);
+       mShipHitArea.offsetBottom(20.0f);
+       mShipHitArea.offsetTop(-20.0f);
+       mShipHitArea.offsetLeft(-10.0f);
+       mShipHitArea.offsetRight(10.0f);
+       mShipHitArea.isChecking(true);
+
+/*
+       mBody.scalingX(0.5f);
+       mBody.scalingY(0.5f);
+       mBody.scalingZ(0.5f);
+*/
+//     mBody.angleZ(PI);
+//     mBody.angleX(PI/2.0f);
+       
+       mpSystem = system::instance();
+       mpConsole = mpSystem->console();
+       mpSound = mpSystem->sound();
+       mpInput = mpSystem->input();
+       if(!mpSpriteShip)
+               mpSpriteShip = mpConsole->createSprite(&INFO_BODY);
+       
+       mBody.sprite(mpSpriteShip );
+       mTimer = 0;
+       mBody.visibility(true);
+       speed(INIT_SPEED * sf::system::instance()->deltaTime());
+       mState =MOVE;
+       Target::load();
+       if(!mpTarget)
+               mpTarget = new Target(mpGame);
+       mpTarget->initialize();
+}// initialize()
+
+// \93\96\82è\8f\88\97\9d \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Ship::hit(Character * const pDest){
+       mShipHitArea.isChecking(false);
+       mState = DEAD;
+       mCounter = 66;
+       effect::Explosion *pExp = (effect::Explosion*)effect::Effects::instance()->create(effect::Effects::EXPLOSION,x(),y(),0.1f,mpGame,this);
+       if(pExp){
+                       pExp->scaling(2.0f);
+       }
+}// hit();
+
+// \83\8a\83X\83^\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Ship::restart(void){
+//     mBody.visibility(true);
+       mShipHitArea.isChecking(true);
+       mState =MOVE;
+}// restart();
+
+
diff --git a/project/s2001/MyShip.h b/project/s2001/MyShip.h
new file mode 100644 (file)
index 0000000..d8f1cf1
--- /dev/null
@@ -0,0 +1,134 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Ship.h: Ship \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+// \93\96\82è\94»\92è\82 \82½\82è\82ª\82¿\82å\82Á\82Æ\82Ü\82í\82è\82­\82Ç\82¢\82©\82È\81D\81D\81D\81B
+//     \97\9a\97ð\81F
+// $Log: MyShip.h,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.5  2001/07/09 20:30:09  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.4  2001/06/10 21:17:01  fujiwara
+// \83^\81[\83Q\83b\83g\92Ç\89Á\81i\92n\8fã\97p\81j
+//
+// Revision 1.3  2001/05/12 00:49:34  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_MYSHIP_H__97EA7373_4E0F_416E_9888_3AB874F5B372__INCLUDED_)
+#define AFX_MYSHIP_H__97EA7373_4E0F_416E_9888_3AB874F5B372__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "character.h"
+namespace sf {
+       namespace application {
+//             namespace scene {
+//                     class Game;
+//             }
+
+               using namespace sf::system;
+namespace player {
+class Target;
+
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+// \8e©\8b@\83N\83\89\83X\92è\8b
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+class Ship : public Character  
+{
+public:
+       Ship();
+       Ship(scene::Game *pGame);
+       virtual ~Ship();
+       // OPERATIONS //
+       void initialize();
+       void move(void);
+       void restart(void);
+       // \92\86\90S\8dÀ\95W
+       const float x(void){return mX;};
+       void x(const float value){mX = value;};
+
+       const float y(void){return mY;};
+       void y(const float value){mY = value;};
+
+       const float z(void){return mZ;};
+       void z(const float value){mZ = value;};
+       // \83\89\83C\83t       
+       const int life(void){return mLife;};
+       void life(const int value){mLife = value;};
+       // \88Ú\93®\83X\83s\81[\83h
+       const float speed(void){return mMoveSpeed;};
+       void speed(const float value){mMoveSpeed = value;};
+       // \88Ú\93®\95û\8cü (\83\89\83W\83A\83\93\81j
+       const float direction(void){return mMoveDirection;};
+       void direction(const float value){mMoveDirection = value;};
+       
+       const bool hitCheck(Character * const pDest){
+               if(mShipHitArea.check(pDest->hitObj())){
+                       hit(pDest);
+                       pDest->hit(this);
+                       return true;
+               };
+               return false;
+       };
+
+       const bool hitCheck(Characters * const pDest){
+               return pDest->hitCheck(this);
+       };
+
+       void hit(Character * const pDest);
+       sf::application::hit::Interface * const hitObj(void){return &mShipHitArea;};
+
+       void visibility(const bool value){mBody.visibility(value);};
+       const bool visibility(void){return mBody.visibility();};
+       
+       static const int INIT_LIFE;
+private:
+       enum STATE {
+               MOVE,
+               DEAD
+       } mState;
+
+       float mX,mY,mZ;
+       int mLife;
+       float mMoveSpeed,mMoveDirection;
+       System* mpSystem;
+       console::Console* mpConsole;
+       input::Input* mpInput;
+       sound::Sound* mpSound;
+
+       console::ObjRectangle mBody;
+       console::sprite::Sprite * mpSpriteShip;
+       Target * mpTarget;
+       scene::Game *mpGame;
+       hit::HitRect mShipHitArea;
+       int mTimer;
+       int mCounter;
+       static const console::sprite::Info INFO_BODY;
+       static const float BODY_WIDTH;
+       static const float BODY_HEIGHT;
+
+       static const float INIT_X;
+       static const float INIT_Y;
+       static const float INIT_Z;
+       
+       static const float INIT_SPEED;
+       static const int PATTERN_MAX;
+       static const int PATTERN_MIDDLE;
+
+};// Ship()
+
+
+               }// player
+       } // application
+}// sf
+
+#endif // !defined(AFX_MYSHIP_H__97EA7373_4E0F_416E_9888_3AB874F5B372__INCLUDED_)
diff --git a/project/s2001/ReadMe.txt b/project/s2001/ReadMe.txt
new file mode 100644 (file)
index 0000000..b274de2
--- /dev/null
@@ -0,0 +1,41 @@
+========================================================================
+       \83_\83C\83i\83~\83b\83\83\8a\83\93\83\83\89\83C\83u\83\89\83\8a : s2001
+========================================================================
+
+
+AppWizard \82Í\82±\82Ì s2001 DLL \82ð\8dì\90¬\82µ\82Ü\82µ\82½\81B
+
+\82±\82Ì\83t\83@\83C\83\8b\82É\82Í s2001 \83A\83v\83\8a\83P\81[\83V\83\87\83\93\82ð\8d\\90¬\82µ\82Ä\82¢\82é\8ae\83t\83@\83C\83\8b\82Ì\8aT\97v
+\90à\96¾\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82Ü\82·\81B
+
+s2001.dsp
+    \82±\82Ì\83t\83@\83C\83\8b (\83v\83\8d\83W\83F\83N\83\83t\83@\83C\83\8b\82Í\83v\83\8d\83W\83F\83N\83\83\8c\83x\83\8b\82Ì\8fî\95ñ\82ð\8aÜ\82Ý\81A
+    \83V\83\93\83O\83\8b \83v\83\8d\83W\83F\83N\83g\82Ü\82½\82Í\83T\83\83v\83\8d\83W\83F\83N\83g\82Ì\83r\83\8b\83h\82É\8eg\97p\82³\82ê\82Ü\82·\81B\91¼\82Ì
+    \83\86\81[\83U\81[\82Æ\83v\83\8d\83W\83F\83N\83\83t\83@\83C\83\8b (.dsp) \82ð\8b¤\97L\82Å\82«\82Ü\82·\82ª\81A\83\81\83C\83\83t\83@\83C\83\8b
+    \82Í\83\8d\81[\83J\83\8b\82É\83G\83N\83X\83|\81[\83g\82µ\82Ä\82­\82¾\82³\82¢\81B
+s2001.cpp
+    \82±\82Ì\83t\83@\83C\83\8b\82Í DLL \82Ì\92\86\90S\82Æ\82È\82é\83\\81[\83\83t\83@\83C\83\8b\82Å\82·\81B
+
+       \8dì\90¬\82³\82ê\82½\8fó\91Ô\82Å\82Í\81A\82±\82Ì DLL \82Í\83V\83\93\83{\83\8b\82Ì\83G\83N\83X\83|\81[\83g\82ð\8ds\82Á\82Ä\82¢\82Ü\82¹\82ñ\81B
+       \82»\82Ì\82½\82ß\83r\83\8b\83h\82ð\8ds\82Á\82Ä\82à .LIB \83t\83@\83C\83\8b\82Í\8dì\90¬\82³\82ê\82Ü\82¹\82ñ\81B\82±\82Ì\83v\83\8d\83W\83F\83N\83g\82ð
+       \91¼\82Ì\83v\83\8d\83W\83F\83N\83g\82É\88Ë\91\8aÖ\8cW\82ð\8e\9d\82½\82¹\82½\82¢\8fê\8d\87\82É\82Í\81A\82±\82Ì DLL \82©\82ç\83V\83\93\83{\83\8b\82ð
+       \83G\83N\83X\83|\81[\83g\82·\82é\82½\82ß\82Ì\83R\81[\83h\82ð\92Ç\89Á\82µ\82Ä\83\89\83C\83u\83\89\83\8a\82Ì\83G\83N\83X\83|\81[\83g\82ð\8ds\82¢\81A
+       \83v\83\8d\83W\83F\83N\83g\90Ý\92è\82Ì [\83\8a\83\93\83N] \83^\83u\8fã\82Å [LIB \83t\83@\83C\83\8b\82ð\90\90¬\82µ\82È\82¢] \83I\83v\83V\83\87\83\93
+       \82ð\83N\83\8a\83A\82·\82é\95K\97v\82ª\82 \82è\82Ü\82·\81B
+
+/////////////////////////////////////////////////////////////////////////////
+\82»\82Ì\91¼\82Ì\95W\8f\80\83t\83@\83C\83\8b:
+
+StdAfx.h, StdAfx.cpp
+    \82±\82ê\82ç\82Ì\83t\83@\83C\83\8b\82Í\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\82Ý\83w\83b\83_\81[\83t\83@\83C\83\8b (PCH) s2001.pch
+    \82â\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\82Ý\8c^\83t\83@\83C\83\8b StdAfx.obj \82ð\8d\\92z\82·\82é\82½\82ß\82É\8eg\97p\82³\82ê\82Ü\82·\81B
+
+
+/////////////////////////////////////////////////////////////////////////////
+\82»\82Ì\91¼\82Ì\92\8d\88Ó:
+
+AppWizard \82Í "TODO:" \82Å\8en\82Ü\82é\83R\83\81\83\93\83g\82Å\81A\83\\81[\83X\83R\81[\83h\82Ì\92Ç\89Á\82â\83J\83X\83^\83}\83C\83Y\82Ì\95K\97v
+\82È\8fê\8f\8a\82ð\8e¦\82µ\82Ü\82·\81B
+
+
+/////////////////////////////////////////////////////////////////////////////
diff --git a/project/s2001/Scene.h b/project/s2001/Scene.h
new file mode 100644 (file)
index 0000000..3a82654
--- /dev/null
@@ -0,0 +1,86 @@
+/**
+ * @file
+ * @brief \83V\81[\83\93\83C\83\93\83^\81[\83t\83F\81[\83X\81A\82¨\82æ\82Ñ\82»\82Ì\8aÖ\98A\92è\8b`\82ð\8ds\82¤.
+ * 
+ * @author S.F.
+ * @version $Id:
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+/// \8fd\95¡\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#ifndef SCENE_H
+#define SCENE_H
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "singleton.h"
+#include "sfinterface.h"
+#include "scenetype.h"
+namespace sf {
+       namespace application {
+               /// \83V\81[\83\93\82É\8aÖ\98A\82·\82é\82à\82Ì\82Í\82·\82×\82Ä\82±\82Ì\96¼\91O\8bó\8aÔ\82É\8aÜ\82Ü\82ê\82Ü\82·\81B
+               namespace scene{
+
+                       class Scene;
+                       class Listener;
+
+                       /** \83V\81[\83\93\83C\83\93\83^\81[\83t\83F\81[\83X.
+                        * \83V\81[\83\93\82Æ\82Í\81A\82±\82Ì\83Q\81[\83\80\92\86\82Å\82Í\83X\83^\81[\83g\89æ\96Ê\81A\83Q\81[\83\80\89æ\96Ê\81A\83^\83C\83g\83\8b\89æ\96Ê\81D\81D\81D\82È\82Ç\82Ì\82±\82Æ\82ð\8ew\82µ\82Ü\82·\81B
+                        * \83V\81[\83\93\90Ø\82è\91Ö\82¦\8e\9e\82É\8ds\82í\82ê\82é\83g\83\89\83\93\83W\83V\83\87\83\93\82à\82P\82Â\82Ì\83V\81[\83\93\82Æ\82µ\82Ä\82Æ\82ç\82¦\82Ä\82Ü\82·\81B
+                        */
+                       class SF_INTERFACE Scene 
+                       {
+                       public:
+                               /// \83R\83\93\83X\83g\83\89\83N\83^
+                               Scene() {};
+                               /// \83f\83X\83g\83\89\83N\83^
+                               virtual ~Scene() {};
+                               // OPERATORS //
+                               // OPERATIONS //
+                               /// \83V\81[\83\93\82ð\8eÀ\8ds\82·\82é
+                               virtual void move(void) = 0;
+                               /** \83V\81[\83\93\82ª\94­\8ds\82·\82é\83C\83x\83\93\83g\82ð\8eó\82¯\8eæ\82éListener\83C\83\93\83^\81[\83t\83F\81[\83X\82ð\93o\98^\82·\82é 
+                                * @param Listener \82Ì\83|\83C\83\93\83^ */
+                               virtual void addListener(Listener * const pListener) = 0;
+
+                               /** \83V\81[\83\93\82ª\94­\8ds\82·\82é\83C\83x\83\93\83g\82ð\8eó\82¯\8eæ\82éListener\83C\83\93\83^\81[\83t\83F\81[\83X\82ð\8dí\8f\9c\82·\82é 
+                                * @param Listener \82Ì\83|\83C\83\93\83^ */
+                               virtual void removeListener(Listener * const pListener) = 0;
+                               /** \83V\81[\83\93\82ð\8bx\8e~\82·\82é */
+                               virtual void sleep(void) = 0;
+                               /** \83V\81[\83\93\82ð\83A\83N\83e\83B\83u\82É\82·\82é */
+                               virtual void active(void) = 0;
+                               // ACCESS //
+                               /** \83V\81[\83\93\82Ì\8eí\97Þ\82ð\8eæ\93¾\82·\82é
+                                * @return scent::Type */
+                               virtual const scene::TYPE  type() const = 0;
+                               // INQUIRY //
+                               /** \83V\81[\83\93\82Ì\8fó\91Ô\82ð\8eæ\93¾\82·\82é
+                                @retval true \8a\88\93®\92\86 
+                                @retval false \8bx\8e~\92\86 */
+                               virtual const bool  isActive(void) const = 0;
+                       };// Scene()
+
+                       /** Scene\82ð\90\90¬\82·\82é\83\81\83\\83b\83h */
+                       typedef Scene *(*CreateSceneMethod)(int);
+       
+               
+                       /** \83C\83x\83\93\83g\83\8a\83X\83i\81[\83C\83\93\83^\83t\83F\81[\83X */
+                       class SF_INTERFACE Listener 
+                       {
+                       public:
+                               /**  \83V\81[\83\93\82ª\8fI\97¹\82µ\82½ 
+                                @param pScene Scene \83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^ */
+                               virtual void endOfScene(Scene * const pScene) = 0;
+                               /**  ExitKey\82ª\89\9f\82³\82ê\82½
+                                @param pScene Scene \83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^ */
+                               virtual void exitKeyPressed(Scene * const pScene) = 0;
+                       };// Listener
+
+               }// scene
+       }// application
+}// sf
+
+#endif
\ No newline at end of file
diff --git a/project/s2001/StdAfx.cpp b/project/s2001/StdAfx.cpp
new file mode 100644 (file)
index 0000000..53d2dfd
--- /dev/null
@@ -0,0 +1,8 @@
+// stdafx.cpp : \95W\8f\80\83C\83\93\83N\83\8b\81[\83h\83t\83@\83C\83\8b\82ð\8aÜ\82Þ\83\\81[\83\83t\83@\83C\83\8b
+//              s2001.pch \90\90¬\82³\82ê\82é\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\83w\83b\83_\81[
+//              stdafx.obj \90\90¬\82³\82ê\82é\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\83^\83C\83v\8fî\95ñ
+
+#include "stdafx.h"
+
+// TODO: STDAFX.H \82É\8aÜ\82Ü\82ê\82Ä\82¢\82Ä\81A\82±\82Ì\83t\83@\83C\83\8b\82É\8bL\8fq\82³\82ê\82Ä\82¢\82È\82¢
+// \83w\83b\83_\81[\83t\83@\83C\83\8b\82ð\92Ç\89Á\82µ\82Ä\82­\82¾\82³\82¢\81B
diff --git a/project/s2001/StdAfx.h b/project/s2001/StdAfx.h
new file mode 100644 (file)
index 0000000..12ad883
--- /dev/null
@@ -0,0 +1,29 @@
+// stdafx.h : \95W\8f\80\82Ì\83V\83X\83e\83\80 \83C\83\93\83N\83\8b\81[\83\83t\83@\83C\83\8b\81A
+//            \82Ü\82½\82Í\8eQ\8fÆ\89ñ\90\94\82ª\91½\82­\81A\82©\82Â\82 \82Ü\82è\95Ï\8dX\82³\82ê\82È\82¢
+//            \83v\83\8d\83W\83F\83N\83g\90ê\97p\82Ì\83C\83\93\83N\83\8b\81[\83\83t\83@\83C\83\8b\82ð\8bL\8fq\82µ\82Ü\82·\81B
+//
+
+#if !defined(AFX_STDAFX_H__D9B79EF9_6192_4C1D_8ECC_A97BA3C0D033__INCLUDED_)
+#define AFX_STDAFX_H__D9B79EF9_6192_4C1D_8ECC_A97BA3C0D033__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+
+// \82±\82Ì\88Ê\92u\82É\83w\83b\83_\81[\82ð\91}\93ü\82µ\82Ä\82­\82¾\82³\82¢
+#define WIN32_LEAN_AND_MEAN            // Windows \83w\83b\83_\81[\82©\82ç\96w\82Ç\8eg\97p\82³\82ê\82È\82¢\83X\83^\83b\83t\82ð\8f\9c\8aO\82µ\82Ü\82·
+
+#include <windows.h>
+#ifdef S2001_EXPORTS 
+       #define S2001DLL __declspec(dllexport)
+#else
+       #define S2001DLL __declspec(dllimport)
+#endif
+
+// TODO: \83v\83\8d\83O\83\89\83\80\82Å\95K\97v\82È\83w\83b\83_\81[\8eQ\8fÆ\82ð\92Ç\89Á\82µ\82Ä\82­\82¾\82³\82¢\81B
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ \82Í\91O\8ds\82Ì\92¼\91O\82É\92Ç\89Á\82Ì\90é\8c¾\82ð\91}\93ü\82µ\82Ü\82·\81B
+
+#endif // !defined(AFX_STDAFX_H__D9B79EF9_6192_4C1D_8ECC_A97BA3C0D033__INCLUDED_)
diff --git a/project/s2001/Target.cpp b/project/s2001/Target.cpp
new file mode 100644 (file)
index 0000000..4715b27
--- /dev/null
@@ -0,0 +1,199 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Target.cpp: Target \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//     \97\9a\97ð\81F
+// $Log: Target.cpp,v $
+// Revision 1.1  2001/10/28 21:40:37  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.4  2001/07/09 20:30:10  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.3  2001/07/01 21:30:34  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.2  2001/07/01 01:03:45  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.1  2001/06/10 21:16:43  fujiwara
+// \83^\81[\83Q\83b\83g\92Ç\89Á\81i\92n\8fã\97p\81j
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include <string>
+#include <vector>
+#include <memory>
+#include <stack>
+#include <list>
+#include <iostream>
+#include <fstream>
+#include <map>
+
+#include "stdio.h"
+#include "math.h"
+
+#include "exception.h"
+#include "singleton.h"
+#include "system.h"
+#include "console.h"
+#include "input.h"
+#include "sound.h"
+
+#include "Obj.h"
+#include "Obj2D.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+
+#include "Background.h"
+#include "Scene.h"
+#include "main.h"
+
+#include "character.h"
+#include "Hit.h"
+#include "MyShip.h"
+#include "Game.h"
+#include "Enemys.h"
+#include "Armys.h"
+#include "DispositionControl.h"
+#include "AbstractCharacter.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "Target.h"
+#include "MyGroundBullets.h"
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+using namespace sf::application::player;
+using namespace sf::system;
+const console::sprite::Info Target::msSpriteInfo = {
+       "media\\target.png",0.0f,0.0f,0.0f,0.0f,0xff000000,console::sprite::SPRITE2D
+};
+
+std::auto_ptr<sf::system::console::sprite::Sprite> Target::mpSprite;
+
+const float Target::OFFSET_Y = -156.0f;
+int Target::mSoundID = 0;
+Target::Target(sf::application::scene::Game *pGame)
+{
+       game(pGame);
+}
+
+Target::~Target()
+{
+
+}
+
+void Target::initialize(void)
+{
+       
+       x(game()->player()->x());
+       y(game()->player()->y());
+       z(game()->player()->z());
+
+       mHitRect.offsetTop(-4.0f);
+       mHitRect.offsetLeft(-4.0f);
+       mHitRect.offsetBottom(4.0f);
+       mHitRect.offsetRight(4.0f);
+       mHitRect.isChecking(true);
+       mHitRect.characterPtr(this);
+       mbHit = false;
+       
+       mObj.x(x());
+       mObj.y(y() + OFFSET_Y);
+       mObj.z(z());
+       mObj.color(0x80ffffff);
+       mObj.drawMode(console::DRAW_TRANS);
+
+       mObj.sprite(mpSprite.get());
+       mObj.visibility(true);
+
+       mObjMark.x(x());
+       mObjMark.y(y() + OFFSET_Y);
+       mObjMark.z(z());
+       mObjMark.color(0x80ff0000);
+       mObjMark.drawMode(console::DRAW_TRANS);
+
+       mObjMark.sprite(mpSprite.get());
+       mObjMark.visibility(false);
+       
+       life(0);
+
+       speed(0.0f);
+       direction(0.0f);
+       mTimerPeriod = (int)( 3.0f / sf::system::instance()->deltaTime());
+       mTimer = mTimerPeriod;
+}// initialize()
+
+// \93®\8dì 
+void Target::move(void)
+{
+       // 
+       mTimer--;
+       hitCheck(sf::application::enemy::Armys::instance());
+       if(mTimer <= 0){
+               mTimer = mTimerPeriod;
+               if(mbHit){
+                       sf::system::instance()->sound()->play(mSoundID,1,false,false);
+                       mbHit = false;
+                       if(mObj.color() == 0xc0ff0000)
+                               mObj.color(0x80ffffff);
+                       else
+                               mObj.color(0xc0ff0000);
+                       mObj.drawMode(console::DRAW_ADD);
+               } else {
+                       mObj.color(0x80ffffff);
+                       mObj.drawMode(console::DRAW_TRANS);
+               }
+       };
+
+       x(game()->player()->x());
+       y(game()->player()->y() + OFFSET_Y );
+       z(game()->player()->z());
+
+       mObj.x(x());
+       mObj.y(y());
+       mObj.z(z());
+       
+       //
+
+       if(sf::system::instance()->input()->buttonB(true))
+       {
+               bullet::GroundBullets::instance()->create(
+                       bullet::GroundBullets::NORMAL,
+                       game()->player()->x(),
+                       game()->player()->y(),
+                       game()->player()->z(),
+                       game());
+       }
+
+}// move()
+
+// \83\8a\83\\81[\83X\82Ì\83\8d\81[\83h //
+void Target::load(void)
+{
+       // \83r\83b\83g\83}\83b\83
+       using namespace sf::system::console::sprite;
+       if(!mpSprite.get()){
+               std::auto_ptr<sf::system::console::sprite::Sprite> ptemp(sf::system::instance()->console()->createSprite(&msSpriteInfo)); 
+               mpSprite = ptemp;
+       }
+       
+       // \83T\83E\83\93\83h\83f\81[\83^
+       using namespace sf::system;
+       mSoundID = instance()->sound()->load("target.wav");
+
+//             mpSprite = std::auto_ptr<sf::system::console::sprite::Sprite *>(sf::system::instance()->console()->createSprite(&mSpriteInfo));
+}// load
diff --git a/project/s2001/Target.h b/project/s2001/Target.h
new file mode 100644 (file)
index 0000000..e91c990
--- /dev/null
@@ -0,0 +1,65 @@
+//////////////////////////////////////////////////////////////////////
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Target.h: Target \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+//  $Log: Target.h,v $
+//  Revision 1.1  2001/10/28 21:40:37  fujiwara
+//  DLL\82É\95ª\8a\84
+//
+//  Revision 1.3  2001/07/09 20:30:10  fujiwara
+//  \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+//  Revision 1.2  2001/07/01 01:03:45  fujiwara
+//  const \82Ì\8c©\92¼\82µ
+//  \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+//  Revision 1.1  2001/06/10 21:16:43  fujiwara
+//  \83^\81[\83Q\83b\83g\92Ç\89Á\81i\92n\8fã\97p\81j
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_TARGET_H__C55622EE_11CD_4849_ABE0_F3C657CAB60B__INCLUDED_)
+#define AFX_TARGET_H__C55622EE_11CD_4849_ABE0_F3C657CAB60B__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "AbstractCharacter.h"
+namespace sf {
+       namespace application {
+               namespace player {
+
+class Target : public AbstractCharacter  
+{
+public:
+       Target(sf::application::scene::Game *pGame);
+       virtual ~Target();
+       // OPERATORS //
+       // OPERATIONS //
+       virtual void initialize();
+       // \83L\83\83\83\89\83N\83^\81[\88Ú\93®
+       void move(void);
+       sf::application::hit::Interface * const hitObj(void){return &mHitRect;};
+       void hit(sf::application::Character * const pDest){mbHit = true;};
+       static void load(void);
+       static const float OFFSET_Y;
+       static sf::system::console::sprite::Sprite * sprite(){return mpSprite.get();};
+private:
+       bool mbHit;
+       hit::HitRect mHitRect;
+       sf::system::console::ObjRectangle mObj;
+       sf::system::console::ObjRectangle mObjMark;
+       int mTimer,mTimerPeriod;
+       static int mSoundID;
+       static std::auto_ptr<sf::system::console::sprite::Sprite> mpSprite;
+       static const console::sprite::Info msSpriteInfo;
+};
+               }
+       }
+}
+
+#endif // !defined(AFX_TARGET_H__C55622EE_11CD_4849_ABE0_F3C657CAB60B__INCLUDED_)
diff --git a/project/s2001/ZK01.cpp b/project/s2001/ZK01.cpp
new file mode 100644 (file)
index 0000000..f8504ea
--- /dev/null
@@ -0,0 +1,312 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// ZK01.cpp: ZK01 \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//     \97\9a\97ð\81F
+// $Log: ZK01.cpp,v $
+// Revision 1.1  2001/10/28 21:40:37  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.9  2001/07/09 20:30:10  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.8  2001/07/01 21:30:34  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.7  2001/07/01 01:03:45  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.6  2001/06/03 09:22:32  fujiwara
+// \92n\8fã\93G\83N\83\89\83X\82¨\82æ\82Ñ\8eG\8b\9b\93G\82Ì\94÷\92²\90®
+//
+// Revision 1.5  2001/05/29 01:12:10  fujiwara
+// \8eG\8b\9b\83L\83\83\83\89(\94ò\8ds\95¨\81j\82Ì\8dì\90¬\81B\94z\92u\83G\83f\83B\83^\82Ì\83o\83O\8fC\90³
+//
+// Revision 1.4  2001/05/17 12:31:29  fujiwara
+// \92n\8fã\93G\83T\83\93\83v\83\8b\8dì\90¬
+//
+// Revision 1.3  2001/05/13 20:04:24  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.2  2001/05/12 00:48:35  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include <string>
+#include <vector>
+#include <memory>
+#include <stack>
+#include <list>
+#include <iostream>
+#include <fstream>
+#include <map>
+
+#include "stdio.h"
+#include "math.h"
+
+#include "exception.h"
+#include "singleton.h"
+#include "system.h"
+#include "console.h"
+#include "input.h"
+#include "sound.h"
+
+#include "Obj.h"
+#include "Obj2D.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+
+#include "Background.h"
+#include "Scene.h"
+#include "main.h"
+
+#include "character.h"
+#include "Hit.h"
+#include "MyShip.h"
+#include "Game.h"
+#include "Enemys.h"
+#include "Armys.h"
+#include "AbstractEnemy.h"
+#include "EnemyBullets.h"
+#include "DispositionControl.h"
+#include "Effects.h"
+#include "Explosion.h"
+
+
+#include "ZK01.h"
+#include "EB01.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+using namespace sf::application;
+using namespace sf::application::enemy;
+
+sf::system::console::sprite::PSprite ZK01::mspSprite;
+
+int ZK01::mBalletTimer = 0;
+int ZK01::mBalletTimerInit = 0;
+
+const sf::system::console::sprite::Info ZK01::msSpriteInfo = 
+{
+       "media\\zk01.png",0.0f,0.0f,64.0f,64.0f,0xff000000,console::sprite::SPRITE2D
+};
+
+const int ZK01::SCORE = 20;
+
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+ZK01::ZK01()
+{
+}// ZK01()
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+ZK01::~ZK01()
+{
+       Enemys::instance()->clear(index());
+}// ~ZK01()
+
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ZK01::initialize()
+{
+       // \93\96\82è\94»\92è 
+       mHitRect.offsetTop(-24.0f);
+       mHitRect.offsetBottom(24.0f);
+       mHitRect.offsetLeft(-24.0f);
+       mHitRect.offsetRight(24.0f);
+
+       mHitRect.isChecking(true);
+       mHitRect.characterPtr(this);
+       direction((float)atan2((double)(game()->player()->y() - y()),(double)(game()->player()->x() - x())));
+       
+       mDeltaTime = sf::system::instance()->deltaTime();
+       mDeltaTimeRev = 1.0f / mDeltaTime;
+       speed(3.0f * mDeltaTime);
+
+       mDx = cosf(direction()) * speed();
+       mDy = sinf(direction()) * speed();
+       
+       // Body \95\94\95ª 
+       mObj.index(0);
+
+       if(!mspSprite.get())
+               load();
+
+       mObj.sprite(mspSprite.get());
+       
+       mObj.z(z() + (float)index() * 0.0001f );
+       mObj.x(x());
+       mObj.y(y());
+       mObj.visibility(true);
+       mObj.color(0xffffffff);
+       mObj.drawMode(sf::system::console::DRAW_TRANS);
+       mObj.angle(direction());
+
+       // Light\95\94\95ª
+       mObjLight.z(z() + (float)index() * 0.0001f + 0.00001f);
+       mObjLight.x(x());
+       mObjLight.y(y());
+
+       initLight();
+       
+       mbHit = false;
+       mDirCount = 18.0f * mDeltaTime;
+       mDirSpeed = (rand() & 1) ? -0.02f * mDeltaTime : 0.02f * mDeltaTime;
+       
+       mState = MOVE;
+       
+       mShootTimer = (int)((20.0f + (float)(rand() & 0x7)) * mDeltaTimeRev);
+       mbShoot = false;
+       mAccel = 0.2f * mDeltaTime;
+
+       if(!mBalletTimerInit)
+       {
+               mBalletTimer = mBalletTimerInit = (3.0f - game()->currentDifficulty()) * mDeltaTimeRev;
+               mbShoot = false;
+       } else {
+               mBalletTimer--;
+               if(!mBalletTimer){
+                       mBalletTimer = mBalletTimerInit;
+                       mBalletTimerInit = (3.0f - game()->currentDifficulty()) * mDeltaTimeRev;
+                       mbShoot = false;
+               } else {
+                       mbShoot = true;
+               }
+       }
+
+}// initialize()
+
+// \83e\83N\83X\83`\83\83\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ZK01::load(void){
+       using namespace sf::system::console::sprite;
+       if(!mspSprite.get()){
+               sf::system::console::sprite::PSprite ptemp(sf::system::instance()->console()->createSprite(&msSpriteInfo)); 
+               mspSprite = ptemp;
+       }
+       Bullets::instance()->load(Bullets::EB01);
+       AbstractEnemy::loadLight();
+}// load()
+
+// \83e\83N\83X\83`\83\83\82Ì\83A\83\93\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ZK01::unload(void){
+       using namespace sf::system::console::sprite;
+       PSprite ptmp(NULL);
+       mspSprite = ptmp;
+}// unload()
+
+// \93G\82Ì\93®\8dì \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ZK01::move()
+{
+       using namespace sf::application;
+       float tx,ty;
+
+       y(y() + mDy);
+       x(x() + mDx);
+
+       switch(mState){
+       case MOVE:
+               // \93®\82«\82Ì\83\81\83C\83\93
+               if(!--mDirCount){
+                       mDirCount = (int)(2.0f * mDeltaTimeRev);
+                       direction(direction() + mDirSpeed);
+                       speed(speed() + mAccel);
+                       mDx = cosf(direction()) * speed();
+                       mDy = sinf(direction()) * speed();
+               }
+
+               // \8dÀ\95W\88Ê\92u\81A\8ap\93x\82Ì\90Ý\92è         
+               mObj.x(x());
+               mObj.y(y());
+               mObj.angle(direction());
+
+               mObjLight.x(x());
+               mObjLight.y(y());
+               moveLight();
+               
+               // \92e\94­\8eË 
+               if(!mbShoot){
+                       if(!(mShootTimer--) ){
+                               tx = x() + 20.0f * cosf(direction());
+                               ty = y() + 20.0f * sinf(direction());
+                               EB01 *peb = (EB01 *)Bullets::instance()->create(Bullets::EB01,tx,ty,z() + 0.01f,game());
+                               peb->direction(Util::calcDirection(x(),y(),game()->player()->x(),game()->player()->y()));
+                               mbShoot = true;
+                       }
+               }
+               
+               // \92e\82É\82 \82½\82Á\82½\82©\82Ç\82¤\82©\82Ì\94»\92è
+               if(mbHit)
+               {
+                       die();
+                       return;
+               }
+               break;// case MOVE:
+
+       case DEAD:
+               if(!--mDirCount){
+                       delete this;
+                       return;
+               }
+               mObj.x(x());
+               mObj.y(y());
+               break;
+       }
+
+       // \89æ\96Ê\8fÁ\8b\8e\94»\92è
+       if(Util::checkArea(x(),y(),64.0f,64.0f))
+               delete this;
+}//move()
+
+
+
+// \92e\82É\82 \82½\82Á\82½\82Æ\82«\82Ì\8f\88\97\9d \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ZK01::hit(Character * const pDest)
+{
+       mHitRect.isChecking(false);
+       mbHit = true;
+
+};
+
+// \93G\82Ì\90\90¬ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+sf::application::Character * const ZK01::create(float x,float y ,float z,sf::application::scene::Game * const pGame,int index)
+{
+       ZK01 * ptemp = new ZK01;
+       ptemp->x(x);
+       ptemp->y(y);
+       ptemp->z(z);
+       ptemp->index(index);
+       ptemp->game(pGame);
+       ptemp->initialize();
+       return ptemp;
+;}// create
+
+//\81@\8e\80\82ñ\82¾\82Æ\82«\82Ì\8f\88\97\9d  \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ZK01::die(void)
+{
+       effect::Explosion *pExp = (effect::Explosion*)effect::Effects::instance()->create(effect::Effects::EXPLOSION,x(),y(),0.1f,game(),this);
+       if(pExp){
+               pExp->scaling(1.5f);
+       }
+       mDirCount = 2;
+       mState = DEAD;
+       game()->score(game()->score() + SCORE);
+
+};// die()
+
+//  \91S\94\9a\94­\83C\83x\83\93\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ZK01::allBomb(void)
+{
+       die();
+}// allBomb()
\ No newline at end of file
diff --git a/project/s2001/ZK01.h b/project/s2001/ZK01.h
new file mode 100644 (file)
index 0000000..7f247cb
--- /dev/null
@@ -0,0 +1,108 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// ZK01.h: ZK01 \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: ZK01.h,v $
+// Revision 1.1  2001/10/28 21:40:37  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.8  2001/07/09 20:30:10  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.7  2001/07/01 01:03:45  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.6  2001/06/03 09:22:32  fujiwara
+// \92n\8fã\93G\83N\83\89\83X\82¨\82æ\82Ñ\8eG\8b\9b\93G\82Ì\94÷\92²\90®
+//
+// Revision 1.5  2001/05/29 01:12:10  fujiwara
+// \8eG\8b\9b\83L\83\83\83\89(\94ò\8ds\95¨\81j\82Ì\8dì\90¬\81B\94z\92u\83G\83f\83B\83^\82Ì\83o\83O\8fC\90³
+//
+// Revision 1.4  2001/05/13 20:04:24  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.3  2001/05/12 00:48:35  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_ZK01_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_)
+#define AFX_ZK01_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "AbstractEnemy.h"
+namespace sf {
+       namespace application {
+               namespace enemy {
+
+class ZK01 : public AbstractEnemy
+{
+public:
+       // LIFECYCLE //
+       ZK01();
+       virtual ~ZK01();
+       // OPERATIONS //
+       void initialize();
+       // \83L\83\83\83\89\83N\83^\81[\88Ú\93®
+       void move(void);
+       void hit(Character * const pDest);
+       void allBomb(void);
+       // \83e\83N\83X\83`\83\83\82È\82Ç\82Ì\83\8d\81[\83h
+       static void load(void);
+       static void unload(void);
+
+       static Character * const create(float x,float y ,float z,sf::application::scene::Game * const pGame,int index);
+       // ACCESS //
+       sf::application::hit::Interface * const hitObj(void){return &mHitRect;};
+
+       static sf::system::console::sprite::Sprite * const pSprite(void){return mspSprite.get();};      
+       
+private:
+       enum State {
+               MOVE,
+               DEAD
+       } mState;
+
+       void die(void);
+
+//     float mRadian;
+       float mDx;
+       float mDy;
+       int mDirCount;
+       float mDirSpeed;
+       
+       int mAnimCount;
+       sf::application::hit::HitRect mHitRect;
+       
+       sf::system::console::ObjRectangle mObj;
+       
+       static sf::system::console::sprite::PSprite mspSprite;
+       
+       static const sf::system::console::sprite::Info msSpriteInfo;
+       
+       static const int SCORE; 
+       static int mBalletTimer;
+       static int mBalletTimerInit;
+       
+       bool mbHit;
+       bool mbShoot;
+       
+       int mShootTimer;
+       
+       float mSpeed;
+       float mAccel;
+       float mDeltaTime;
+       float mDeltaTimeRev;
+
+};
+               }
+       }
+}
+
+#endif // !defined(AFX_ZK01_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_)
diff --git a/project/s2001/ZK02.cpp b/project/s2001/ZK02.cpp
new file mode 100644 (file)
index 0000000..f034ef0
--- /dev/null
@@ -0,0 +1,426 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// ZK02.cpp: ZK02 \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//     \97\9a\97ð\81F
+// $Log: ZK02.cpp,v $
+// Revision 1.1  2001/10/28 21:40:37  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.4  2001/07/09 20:30:10  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.3  2001/07/01 21:30:34  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.2  2001/07/01 01:03:45  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.1  2001/06/10 21:16:12  fujiwara
+// \8eG\8b\9b\83L\83\83\83\89\82Q\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include <string>
+#include <vector>
+#include <memory>
+#include <stack>
+#include <list>
+#include <iostream>
+#include <fstream>
+#include <map>
+
+#include "stdio.h"
+#include "math.h"
+
+#include "exception.h"
+#include "singleton.h"
+#include "system.h"
+#include "console.h"
+#include "input.h"
+#include "sound.h"
+
+#include "Obj.h"
+#include "Obj2D.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+
+#include "Background.h"
+#include "Scene.h"
+#include "main.h"
+
+#include "character.h"
+#include "Hit.h"
+#include "MyShip.h"
+#include "Game.h"
+#include "Enemys.h"
+#include "Armys.h"
+#include "AbstractEnemy.h"
+#include "EnemyBullets.h"
+#include "DispositionControl.h"
+#include "Effects.h"
+#include "Explosion.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "ZK02.h"
+#include "EB01.h"
+
+using namespace sf::application;
+using namespace sf::application::enemy;
+using namespace sf::system;
+
+sf::system::console::sprite::PSprite ZK02::mspSprite;
+
+
+const sf::system::console::sprite::Info ZK02::msSpriteInfo = 
+{
+       "media\\ZK02.png",0.0f,0.0f,64.0f,64.0f,0xff000000,console::sprite::SPRITE2D
+};
+
+const int ZK02::SCORE = 20;
+
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+ZK02::ZK02()
+{
+}// ZK02()
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+ZK02::~ZK02()
+{
+       Enemys::instance()->clear(index());
+}// ~ZK02()
+
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ZK02::initialize(void)
+{
+       // \93\96\82è\94»\92è 
+       mHitRect.offsetTop(-20.0f);
+       mHitRect.offsetBottom(20.0f);
+       mHitRect.offsetLeft(-20.0f);
+       mHitRect.offsetRight(20.0f);
+
+       mHitRect.isChecking(true);
+       mHitRect.characterPtr(this);
+       direction(Util::calcDirection(x(),y(),game()->player()->x(),game()->player()->y()));
+       
+       mDeltaTime = sf::system::instance()->deltaTime();
+       mDeltaTimeRev = 1.0f / mDeltaTime;
+       speed(8.0f * mDeltaTime + (rand() & 0x7) + game()->currentDifficulty());
+
+       mDx = cosf(direction());
+       mDy = sinf(direction());
+       
+       // Body \95\94\95ª 
+       mObj.index(0);
+
+       if(!mspSprite.get())
+               load();
+
+       mObj.sprite(mspSprite.get());
+       
+       mObj.z(z() + (float)index() * 0.0001f );
+       mObj.x(x());
+       mObj.y(y());
+
+       mObj.visibility(true);
+       mObj.color(0xffffffff);
+       mObj.drawMode(sf::system::console::DRAW_TRANS);
+       mObj.angle(direction());
+
+       // Light\95\94\95ª
+       mObjLight.z(z() + (float)index() * 0.0001f - 0.00001f);
+       mObjLight.x(x());
+       mObjLight.y(y());
+       
+       life(2);
+
+       initLight();
+       
+       mbHit = false;
+       mState = APPROACH;
+       mAccel = 0.3f * mDeltaTime;
+
+}// initialize()
+
+// \83e\83N\83X\83`\83\83\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ZK02::load(void){
+       using namespace sf::system::console::sprite;
+       if(!mspSprite.get()){
+               sf::system::console::sprite::PSprite ptemp(sf::system::instance()->console()->createSprite(&msSpriteInfo)); 
+               mspSprite = ptemp;
+       }
+       Bullets::instance()->load(Bullets::EB01);
+       AbstractEnemy::loadLight();
+}// load()
+
+// \83e\83N\83X\83`\83\83\82Ì\83A\83\93\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ZK02::unload(void){
+       using namespace sf::system::console::sprite;
+       PSprite ptmp(NULL);
+       mspSprite = ptmp;
+}// unload()
+
+// \93G\82Ì\93®\8dì \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ZK02::move()
+{
+       using namespace sf::application;
+
+
+       switch(mState){
+       case APPROACH:
+               approach();
+               break;
+       case SHOOT:
+               shoot();
+               break;
+       case ESCAPE:
+               escape();
+               break;
+       case DEAD:
+               if(!--mDirCount){
+                       delete this;
+                       return;
+               }
+               mObj.x(x());
+               mObj.y(y());
+               return ;
+       }
+
+       // \92e\82É\82 \82½\82Á\82½\82©\82Ç\82¤\82©\82Ì\94»\92è
+       if(mbHit)
+       {
+               mObj.color(0xffff8080);
+               mObj.drawMode(sf::system::console::DRAW_ADD);
+               mbHit = false;
+       } else {
+               mObj.drawMode(sf::system::console::DRAW_TRANS);
+               mObj.color(0xffffffff);
+       }
+
+
+       // \89æ\96Ê\8fÁ\8b\8e\94»\92è
+       if(Util::checkArea(x(),y(),64.0f,64.0f))
+               delete this;
+}//move()
+
+
+// \83v\83\8c\83C\83\84\81[\82É\90Ú\8bß \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ZK02::approach(void){
+
+       float dir_player = Util::calcDirection(x(),y(),game()->player()->x(),game()->player()->y());
+       float dir = fabs(direction() - dir_player);
+               
+       if(dir > sf::system::PI)
+               dir = 2.0f * sf::system::PI - dir;
+               
+       if(dir > 0.08f)
+       {
+
+               dir = direction() - dir_player;
+                       
+               if(dir < 0.0f) dir = dir + 2.0f * sf::system::PI;
+                       
+               if(dir > sf::system::PI) 
+                       mDirSpeed = 0.04f;
+               else
+                       mDirSpeed = -0.04f;
+       
+               direction(direction() + mDirSpeed);
+                       
+               if(direction() < 0.0f)
+                       direction(2.0f * sf::system::PI + direction());
+       
+               if(direction() > 2.0f * sf::system::PI)
+                       direction(direction() - 2.0f * sf::system::PI);
+
+               mObj.angle(direction());
+               
+               mDx = cosf(direction());
+               mDy = sinf(direction());
+       
+
+       } 
+
+       y(y() + mDy * speed());
+       x(x() + mDx * speed());
+       
+       mObj.x(x());
+       mObj.y(y());
+
+       mObjLight.x(x() + cosf(direction()) * -8.0f );
+       mObjLight.y(y() + sinf(direction()) * -8.0f );
+
+       moveLight();
+
+       speed(speed() - mAccel);
+
+       if(speed() < 0.0f){
+               speed(0.0f);
+               mState = SHOOT;
+               mAnimCount = 0.0f;
+       }
+       
+
+}// approach()
+
+// \83v\83\8c\83C\83\84\81[\95û\8cü\82ð\8cü\82«\81A\92e\82ð\94­\8eË\82·\82é \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ZK02::shoot(void){
+       
+
+       mAnimCount += 0.2f;
+
+       if(mAnimCount <= 3.0f){
+               mObj.index((int)mAnimCount);
+
+       } else {
+               if(mAnimCount > 4.0f){
+                       float tx = x() + 8.0f * cosf(direction());
+                       float ty = y() + 8.0f * sinf(direction());
+                       EB01 *peb = (EB01 *)Bullets::instance()->create(Bullets::EB01,tx,ty,z() + 0.01f,game());
+                       peb->direction(direction());
+                       mbShoot = true;
+                       mState = ESCAPE;
+                       mDirSpeed = (x() < (float)(console::viewport::X + console::viewport::WIDTH / 2))?-0.08f:0.08f;
+                       mDirCount = 0.0f;
+                       mAnimCount = 3.0f;
+                       mObj.index((int)mAnimCount);
+                       return;
+               }
+       }
+
+       float dir_player = Util::calcDirection(x(),y(),game()->player()->x(),game()->player()->y());
+       float dir = fabs(direction() - dir_player);
+               
+       if(dir > sf::system::PI)
+               dir = 2.0f * sf::system::PI - dir;
+               
+       if(dir > 0.08f)
+       {
+
+               dir = direction() - dir_player;
+                       
+               if(dir < 0.0f) dir = dir + 2.0f * sf::system::PI;
+                       
+               if(dir > sf::system::PI) 
+                       mDirSpeed = 0.04f;
+               else
+                       mDirSpeed = -0.04f;
+       
+               direction(direction() + mDirSpeed);
+                       
+               if(direction() < 0.0f)
+                       direction(2.0f * sf::system::PI + direction());
+       
+               if(direction() > 2.0f * sf::system::PI)
+                       direction(direction() - 2.0f * sf::system::PI);
+
+               mObj.angle(direction());
+               
+               mDx = cosf(direction());
+               mDy = sinf(direction());
+       
+
+       }
+
+       mObj.x(x());
+       mObj.y(y());
+
+       mObjLight.x(x() + cosf(direction()) * -8.0f );
+       mObjLight.y(y() + sinf(direction()) * -8.0f );
+       moveLight();
+
+}// shoot()
+
+// \97£\92E\82·\82é \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ZK02::escape(void)
+{
+       if(mAnimCount > 0.0f){
+               mAnimCount -= 0.2f;
+               mObj.index((int)mAnimCount);
+       }
+
+       if(mDirCount < sf::system::PI){
+               mDirCount += mDirSpeed > 0 ? mDirSpeed:-mDirSpeed;
+               direction(direction() + mDirSpeed);
+               speed(speed() + 0.1f);
+               mDx = cosf(direction());
+               mDy = sinf(direction());
+       }
+       
+       mObj.angle(direction());
+
+       x(x() + mDx * speed());
+       y(y() + mDy * speed());
+
+       mObj.x(x());
+       mObj.y(y());
+
+       mObjLight.x(x() + cosf(direction()) * -8.0f );
+       mObjLight.y(y() + sinf(direction()) * -8.0f );
+       moveLight();
+
+}// escape()
+
+// \92e\82É\82 \82½\82Á\82½\82Æ\82«\82Ì\8f\88\97\9d \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ZK02::hit(Character * const pDest)
+{
+       if(pDest->life()){
+               life(life() - pDest->life());
+               if(life() < 0) {
+                       y(y() + mDy * speed());
+                       x(x() + mDx * speed());
+
+
+                       mHitRect.isChecking(false);
+                       mbHit = true;
+                       die();
+               } else {
+                       mbHit = true;
+               }
+       }
+};
+
+// \93G\82Ì\90\90¬ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+sf::application::Character * const ZK02::create(float x,float y ,float z,sf::application::scene::Game * const pGame,int index)
+{
+       ZK02 * ptemp = new ZK02;
+       ptemp->x(x);
+       ptemp->y(y);
+       ptemp->z(z);
+       ptemp->index(index);
+       ptemp->game(pGame);
+       ptemp->initialize();
+       return ptemp;
+;}// create
+
+//\81@\8e\80\82ñ\82¾\82Æ\82«\82Ì\8f\88\97\9d  \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ZK02::die(void)
+{
+       effect::Explosion *pExp = (effect::Explosion*)effect::Effects::instance()->create(effect::Effects::EXPLOSION,x(),y(),0.1f,game(),this);
+       if(pExp){
+               pExp->scaling(1.5f);
+       }
+       mDirCount = 4;
+       mState = DEAD;
+       game()->score(game()->score() + SCORE);
+
+};// die()
+
+//  \91S\94\9a\94­\83C\83x\83\93\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ZK02::allBomb(void)
+{
+       die();
+}// allBomb()
\ No newline at end of file
diff --git a/project/s2001/ZK02.h b/project/s2001/ZK02.h
new file mode 100644 (file)
index 0000000..9a8039d
--- /dev/null
@@ -0,0 +1,93 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// ZK02.h: ZK02 \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: ZK02.h,v $
+// Revision 1.1  2001/10/28 21:40:37  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.2  2001/07/01 01:03:45  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.1  2001/06/10 21:16:12  fujiwara
+// \8eG\8b\9b\83L\83\83\83\89\82Q\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_ZK02_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_)
+#define AFX_ZK02_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "AbstractEnemy.h"
+namespace sf {
+       namespace application {
+               namespace enemy {
+
+class ZK02 : public AbstractEnemy
+{
+public:
+       // LIFECYCLE //
+       ZK02();
+       virtual ~ZK02();
+       // OPERATIONS //
+       void initialize();
+       // \83L\83\83\83\89\83N\83^\81[\88Ú\93®
+       void move(void);
+       void hit(Character * const pDest);
+       void allBomb(void);
+       // \83e\83N\83X\83`\83\83\82È\82Ç\82Ì\83\8d\81[\83h
+       static void load(void);
+       static void unload(void);
+       static Character * const create(float x,float y ,float z,sf::application::scene::Game * const pGame,int index);
+       // ACCESS //
+       sf::application::hit::Interface * const hitObj(void){return &mHitRect;};
+
+       static sf::system::console::sprite::Sprite * const pSprite(void){return mspSprite.get();};      
+       
+private:
+       enum State {
+               APPROACH,
+               SHOOT,
+               ESCAPE,
+               DEAD
+       } mState;
+
+       void escape(void);
+       void approach(void);
+       void shoot(void);
+       void die(void);
+
+//     float mRadian;
+       float mDx;
+       float mDy;
+
+       float mAnimCount;
+       sf::application::hit::HitRect mHitRect;
+       
+       sf::system::console::ObjRectangle mObj;
+       
+       static sf::system::console::sprite::PSprite mspSprite;
+       
+       static const sf::system::console::sprite::Info msSpriteInfo;
+       
+       static const int SCORE; 
+
+       bool mbHit;
+       bool mbShoot;
+
+       float mAccel;
+       float mDeltaTime;
+       float mDeltaTimeRev;
+       float mDirSpeed,mDirCount;
+
+};
+               }
+       }
+}
+
+#endif // !defined(AFX_ZK02_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_)
diff --git a/project/s2001/afxres.h b/project/s2001/afxres.h
new file mode 100644 (file)
index 0000000..d901e3d
--- /dev/null
@@ -0,0 +1,2 @@
+// Dummy file to allow the C++Builder XercesLib project to use
+// the same Version resource file as Visual C++
diff --git a/project/s2001/character.cpp b/project/s2001/character.cpp
new file mode 100644 (file)
index 0000000..24035a6
--- /dev/null
@@ -0,0 +1,99 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// character.cpp: Character \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//     \97\9a\97ð\81F
+// $Log: character.cpp,v $
+// Revision 1.1  2001/10/28 21:40:37  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.5  2001/07/01 21:30:35  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.4  2001/07/01 01:03:45  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.3  2001/05/13 20:04:24  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.2  2001/05/12 00:51:09  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+// System Includes //
+
+#include <string>
+
+// Project Includes //
+
+#include "system.h"
+#include "Console.h"
+#include "stdio.h"
+#include "math.h"
+#include "character.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+using namespace sf::application;
+
+Character::Character()
+{
+
+}
+
+Character::~Character()
+{
+
+}
+
+const float Util::calcDirection(const float x1,const float y1,const float x2,const float y2)
+{
+       float return_ =  (float)atan2((double)(y2 - y1),(double)(x2 - x1));
+       
+       if(return_ < 0.0f)
+               return_ = 2.0f * sf::system::PI + return_;
+       
+       return return_;
+}
+
+const bool Util::checkArea(const float x,const float y,sf::system::console::sprite::Sprite *  const pSprite)
+{
+       using namespace sf::system::console;
+       float x1 = x + pSprite->centerX();
+       float y1 = y + pSprite->centerY();
+       
+       float wh = pSprite->width() / 2.0f;
+       float hh = pSprite->width() / 2.0f;
+
+       if(     x1 < (viewport::X - wh) ||
+               x1 > (viewport::X + viewport::WIDTH + wh) ||
+               y1 < (viewport::Y - hh) ||
+               y1 > (viewport::Y + viewport::HEIGHT + hh))
+               return true;
+       return false;           
+}
+
+const bool Util::checkArea(const float x,const float y,const float width,const float height)
+{
+       using namespace sf::system::console;
+       if(     x < (viewport::X - width) || 
+               x > (viewport::X + viewport::WIDTH + width) ||
+               y < (viewport::Y - height) ||
+               y > (viewport::Y + viewport::HEIGHT + height))
+               return true;
+       return false;
+}
diff --git a/project/s2001/character.h b/project/s2001/character.h
new file mode 100644 (file)
index 0000000..d279c5a
--- /dev/null
@@ -0,0 +1,126 @@
+//////////////////////////////////////////////////////////////////////
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// character.h: Character \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: character.h,v $
+// Revision 1.1  2001/10/28 21:40:37  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.6  2001/07/09 20:39:04  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.5  2001/07/01 01:03:45  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.4  2001/05/29 01:13:06  fujiwara
+// \8eG\8b\9b\83L\83\83\83\89(\94ò\8ds\95¨\81j\82Ì\8dì\90¬\81B\94z\92u\83G\83f\83B\83^\82Ì\83o\83O\8fC\90³
+//
+// Revision 1.3  2001/05/13 20:04:24  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.2  2001/05/12 00:51:04  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_CHARACTER_H__5B8090E2_17CC_46C4_80A1_309AF177B9D5__INCLUDED_)
+#define AFX_CHARACTER_H__5B8090E2_17CC_46C4_80A1_309AF177B9D5__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+namespace sf {
+       namespace application {
+               namespace hit{
+                       class Interface;
+                       class HitRect;
+               };
+
+class Characters;
+class Game;
+
+class Character
+{
+public:
+       Character();
+       virtual ~Character();
+       // OPERATION //
+       virtual void initialize(void) = 0;
+       // \83L\83\83\83\89\83N\83^\81[\88Ú\93®
+       virtual void move(void) = 0;
+
+       // ACCESS //
+       // \92\86\90S\8dÀ\95W
+       virtual const float x(void) = 0;
+       virtual void x(const float value) = 0;
+
+       virtual const float y(void) = 0;
+       virtual void y(const float value) = 0;
+
+       virtual const float z(void) = 0;
+       virtual void z(const float value) = 0;
+
+       // \83\89\83C\83
+       virtual const int life(void) = 0;
+       virtual void life(const int value) = 0;
+       // \88Ú\93®\83X\83s\81[\83h
+       virtual const float speed(void) = 0;
+       virtual void speed(const float value) = 0;
+       // \88Ú\93®\95û\8cü (\83\89\83W\83A\83\93\81j
+       virtual const float direction(void) = 0;
+       virtual void direction(const float value) = 0;
+
+
+
+       virtual const bool hitCheck(Character * const pDest) = 0;
+       virtual const bool hitCheck(Characters * const pDest) = 0;
+       virtual void hit(Character * const pDest) = 0;
+
+       virtual sf::application::hit::Interface * const hitObj(void) = 0;
+};
+
+
+class Characters {
+public:
+       Characters(){};
+       virtual ~Characters(){};
+       virtual void initialize(void) = 0;
+       virtual void move(void) = 0;
+       virtual const bool hitCheck(Character * const pDest) = 0;
+       virtual const bool hitCheck(Characters * const pDest) = 0;
+};
+
+class Util {
+public:
+       static const float calcDirection(const float x1,const float y1,const float x2,const float y2);
+       static const bool checkArea(const float x,const float y,sf::system::console::sprite::Sprite*  const pSprite);
+       static const bool checkArea(const float x,const float y,const float width,const float height);
+       // \83\89\83f\83B\83A\83\93\92l\82Ì\95â\90³
+       static const float adjustRadian( float radian)
+       {
+               if(radian > 2.0f * sf::system::PI){
+                       while(radian > 2.0f * sf::system::PI){
+                               radian -= 2.0f * sf::system::PI;
+                       }
+                       return radian;
+               }
+
+               if(radian < 0.0f){
+                       while(radian < 0.0f){
+                               radian += 2.0f * sf::system::PI;
+                       }
+                       return radian;
+               }
+       };
+};
+
+       }
+}
+
+#endif // !defined(AFX_CHARACTER_H__5B8090E2_17CC_46C4_80A1_309AF177B9D5__INCLUDED_)
diff --git a/project/s2001/explosion.h b/project/s2001/explosion.h
new file mode 100644 (file)
index 0000000..1f2a7c2
--- /dev/null
@@ -0,0 +1,82 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Explosion.h: Explosion \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: explosion.h,v $
+// Revision 1.1  2001/10/28 21:40:37  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.5  2001/07/09 20:38:48  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.4  2001/07/01 01:03:45  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.3  2001/05/17 12:34:11  fujiwara
+// \92n\8fã\93G\83T\83\93\83v\83\8b\8dì\90¬
+//
+// Revision 1.2  2001/05/12 00:50:33  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_Explosion_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_)
+#define AFX_Explosion_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "AbstractCharacter.h"
+namespace sf {
+       namespace application {
+               namespace effect {
+
+
+                       const int MAX_EXPLOSION = 2;
+class Explosion : public sf::application::AbstractCharacter  
+{
+public:
+       // LIFECYCLE //
+       Explosion();
+       virtual ~Explosion();
+       // OPERATIONS //
+       void initialize();
+       // \83L\83\83\83\89\83N\83^\81[\88Ú\93®
+       void move(void);
+       void hit(Character * const pDest);
+       // \83e\83N\83X\83`\83\83\82È\82Ç\82Ì\83\8d\81[\83h
+       static void load(void);
+       static Character * const create(float x,float y ,float z,sf::application::scene::Game * const pGame,sf::application::Character * const pCharacter,int index);
+       // ACCESS //
+       sf::application::hit::Interface * const hitObj(void){return &mHitRect;};
+       
+       const float scaling(void) {return mScaling;};
+       void scaling(const float value)
+       {       mScaling = value;
+               mObj.scalingX(mScaling);
+               mObj.scalingY(mScaling);
+       };
+
+private:
+       float mRadian;
+       float mDx;
+       float mDy;
+       float mScaling;
+       int mCount;
+       sf::application::hit::HitRect mHitRect;
+       sf::system::console::ObjRectangle mObj;
+       static sf::system::console::sprite::PSprite mspSprite[MAX_EXPLOSION];
+       static const sf::system::console::sprite::Info msSpriteInfo[MAX_EXPLOSION];
+       static int msSoundID;
+       bool mbHit;
+       float mSpeed;
+};
+               }
+       }
+}
+
+#endif // !defined(AFX_Explosion_H__D088B903_844F_405A_8167_A0667765D4A8__INCLUDED_)
diff --git a/project/s2001/s2001.cpp b/project/s2001/s2001.cpp
new file mode 100644 (file)
index 0000000..23fcaf1
--- /dev/null
@@ -0,0 +1,94 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// s2001.cpp : DLL \83A\83v\83\8a\83P\81[\83V\83\87\83\93\97p\82Ì\83G\83\93\83g\83\8a \83|\83C\83\93\83g\82ð\92è\8b`\82µ\82Ü\82·\81B
+//     \97\9a\97ð\81F
+//     $Log: s2001.cpp,v $
+//     Revision 1.2  2001/11/06 21:27:34  fujiwara
+//     \91å\95\9d\8dX\90V\91O\83o\83b\83N\83A\83b\83v
+//     
+//     Revision 1.1  2001/10/28 21:40:37  fujiwara
+//     DLL\82É\95ª\8a\84
+//     
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include "stdafx.h"
+#include "sf.h"
+
+#include "math.h"
+
+#include <stack>
+#include <queue>
+#include <map>
+#include <string>
+#include <stack>
+#include <list>
+#include <vector>
+#include <fstream>
+
+#include "windows.h"
+#include "windowsx.h"
+
+#include "d3d8.h"
+#include "d3dx8.h"
+#include "dmusici.h"
+#include "dinput.h"
+#include "mmsystem.h"
+
+// PROJECT INCLUDES
+//
+
+#include "exception.h"
+
+#include "singleton.h"
+#include "System.h"
+#include "console.h"
+#include "obj.h"
+#include "input.h"
+#include "sound.h"
+#include "AbstractSprite.h"
+
+//#include "ConsoleImpl.h"
+//#include "SoundImpl.h"
+//#include "InputImpl.h"
+
+#include "MainApp.h"
+#include "SystemWin32.h"
+#include "Scene.h"
+#include "Manager.h"
+#include "s2001.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+
+BOOL APIENTRY DllMain( HANDLE hModule, 
+                       DWORD  ul_reason_for_call, 
+                       LPVOID lpReserved
+                                        )
+{
+    return TRUE;
+}
+
+int S2001Main (HINSTANCE hThisInstance, HINSTANCE hPrevInstance,
+                                       LPSTR lpszCmdParam, int nCmdShow)
+{
+       sf::system::System * const psystem = sf::system::instance();
+       psystem->main(::sf::application::Main::instance());
+       return (dynamic_cast<sf::system::Win32*>(psystem))->winMain(hThisInstance,hPrevInstance,lpszCmdParam,nCmdShow);
+}
+
+//\81@\8aO\82ÌDLL\82©\82çScene\82ð\8dì\90¬\82Å\82«\82é\82æ\82¤\82É\82·\82é //
+sf::application::scene::Scene * const sf::application::scene::createScene(const int sceneID,const bool bAddSceneContainer)
+{
+       return sf::application::scene::DLLManager::instance()->createScene(sceneID,bAddSceneContainer);
+}
+
+
+
diff --git a/project/s2001/s2001.dsp b/project/s2001/s2001.dsp
new file mode 100644 (file)
index 0000000..9a20ae7
--- /dev/null
@@ -0,0 +1,320 @@
+# Microsoft Developer Studio Project File - Name="s2001" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** \95Ò\8fW\82µ\82È\82¢\82Å\82­\82¾\82³\82¢ **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=s2001 - Win32 Debug
+!MESSAGE \82±\82ê\82Í\97L\8cø\82ÈÒ²¸Ì§²Ù\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81\82±\82ÌÌßÛ¼Þª¸Ä\82ðËÞÙÄÞ\82·\82é\82½\82ß\82É\82Í NMAKE \82ð\8eg\97p\82µ\82Ä\82­\82¾\82³\82¢\81B
+!MESSAGE [Ò²¸Ì§²Ù\82Ì´¸½Îß°Ä] ºÏÝÄÞ\82ð\8eg\97p\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢
+!MESSAGE 
+!MESSAGE NMAKE /f "s2001.mak".
+!MESSAGE 
+!MESSAGE NMAKE \82Ì\8eÀ\8ds\8e\9e\82É\8d\\90¬\82ð\8ew\92è\82Å\82«\82Ü\82·
+!MESSAGE ºÏÝÄޠײÝ\8fã\82ÅϸÛ\82Ì\90Ý\92è\82ð\92è\8b`\82µ\82Ü\82·\81B\97á:
+!MESSAGE 
+!MESSAGE NMAKE /f "s2001.mak" CFG="s2001 - Win32 Debug"
+!MESSAGE 
+!MESSAGE \91I\91ð\89Â\94\\82ÈËÞÙÄÞ Ó°ÄÞ:
+!MESSAGE 
+!MESSAGE "s2001 - Win32 Release" ("Win32 (x86) Dynamic-Link Library" \97p)
+!MESSAGE "s2001 - Win32 Debug" ("Win32 (x86) Dynamic-Link Library" \97p)
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "s2001 - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "S2001_EXPORTS" /Yu"stdafx.h" /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\sfglib" /I "..\s2001" /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "S2001_EXPORTS" /Yu"stdafx.h" /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x411 /d "NDEBUG"
+# ADD RSC /l 0x411 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD LINK32 ..\sfglib.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib kernel32.lib user32.lib gdi32.lib ole32.lib advapi32.lib /nologo /dll /machine:I386
+# Begin Special Build Tool
+SOURCE="$(InputPath)"
+PostBuild_Cmds=copy .\release\*.lib ..
+# End Special Build Tool
+
+!ELSEIF  "$(CFG)" == "s2001 - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "S2001_EXPORTS" /Yu"stdafx.h" /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /ZI /Od /I "..\sfglib" /I "..\s2001" /I ".." /I "..\s2001scene" /I "..\s2001editor" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "S2001_EXPORTS" /YX /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x411 /d "_DEBUG"
+# ADD RSC /l 0x411 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 ..\sfglib.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib kernel32.lib user32.lib gdi32.lib ole32.lib advapi32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# Begin Special Build Tool
+SOURCE="$(InputPath)"
+PostBuild_Cmds=copy .\debug\*.lib ..
+# End Special Build Tool
+
+!ENDIF 
+
+# Begin Target
+
+# Name "s2001 - Win32 Release"
+# Name "s2001 - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\AbstractCharacter.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\AbstractEnemy.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Armys.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\character.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Controller.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\DispositionControl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\EA01.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\EB01.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Effects.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\EnemyBullets.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Enemys.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Explosion.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Hit.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\MainApp.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Manager.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\MyBullets.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\MyGroundBullets.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\MyShip.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\s2001.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.cpp
+# ADD CPP /Yc"stdafx.h"
+# End Source File
+# Begin Source File
+
+SOURCE=.\Target.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\ZK01.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\ZK02.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\AbstractCharacter.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\AbstractCharacters.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\AbstractEnemy.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Armys.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\character.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Controller.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\DispositionControl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\EA01.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\EB01.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Effects.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\EnemyBullets.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Enemys.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\explosion.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Hit.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\MainApp.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Manager.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\MyBullets.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\MyGroundBullets.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\MyShip.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\resource.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\s2001.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Scene.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\scenetype.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\sfinterface.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Target.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ZK01.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ZK02.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# Begin Source File
+
+SOURCE=.\ReadMe.txt
+# End Source File
+# End Target
+# End Project
diff --git a/project/s2001/s2001.h b/project/s2001/s2001.h
new file mode 100644 (file)
index 0000000..2a21739
--- /dev/null
@@ -0,0 +1,32 @@
+#ifndef SF_S2001_H
+#define SF_S2001_H
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// s2001.cpp : DLL \83A\83v\83\8a\83P\81[\83V\83\87\83\93\97p\82Ì\83G\83\93\83g\83\8a \83|\83C\83\93\83g\82ð\92è\8b`\82µ\82Ü\82·\81B
+//     \97\9a\97ð\81F
+//     $Log: s2001.cpp,v $
+//     Revision 1.2  2001/11/06 21:27:34  fujiwara
+//     \91å\95\9d\8dX\90V\91O\83o\83b\83N\83A\83b\83v
+//     
+//     Revision 1.1  2001/10/28 21:40:37  fujiwara
+//     DLL\82É\95ª\8a\84
+//     
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+#include "stdafx.h"
+extern "C" {
+       S2001DLL int S2001Main (HINSTANCE hThisInstance, HINSTANCE hPrevInstance,
+                                       LPSTR lpszCmdParam, int nCmdShow);
+       namespace sf {
+               namespace application {
+                       namespace scene {
+       S2001DLL sf::application::scene::Scene * const createScene(const int sceneID,const bool bAddSceneContainer = true);
+                       }
+               }
+       }
+};
+#endif
+
+
diff --git a/project/s2001/s2001.plg b/project/s2001/s2001.plg
new file mode 100644 (file)
index 0000000..305ebeb
--- /dev/null
@@ -0,0 +1,25 @@
+<html>
+<body>
+<pre>
+<h1>ËÞÙÄÞ\82ÌÛ¸Þ</h1>
+<h3>
+--------------------\8d\\90¬: s2001 - Win32 Debug--------------------
+</h3>
+<h3>ºÏÝÄޠײÝ</h3>
+\88ê\8e\9ȩ²Ù "C:\WINDOWS\TEMP\RSPF223.TMP" \82ð\8dì\90¬\82µ\81A\8e\9f\82Ì\93à\97e\82ð\8bL\98^\82µ\82Ü\82·
+[
+/nologo /MTd /W3 /Gm /GR /GX /ZI /Od /I "..\sfglib" /I "..\s2001" /I ".." /I "..\s2001scene" /I "..\s2001editor" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "S2001_EXPORTS" /Fp"Debug/s2001.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c 
+"C:\My Documents\genx\project\s2001\Manager.cpp"
+]
+Creating command line "cl.exe @C:\WINDOWS\TEMP\RSPF223.TMP" 
+<h3>±³ÄÌ߯Ġ³¨ÝÄÞ³</h3>
+ºÝÊß²Ù\92\86...
+Manager.cpp
+
+
+
+<h3>\8c\8b\89Ê</h3>
+Manager.obj - ´×° 0\81A\8cx\8d\90 0
+</pre>
+</body>
+</html>
diff --git a/project/s2001/s2001.vcproj b/project/s2001/s2001.vcproj
new file mode 100644 (file)
index 0000000..d4c843d
--- /dev/null
@@ -0,0 +1,925 @@
+<?xml version="1.0" encoding="shift_jis"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="s2001"
+       ProjectGUID="{A9583091-4F70-4817-8125-1BE5C54495E5}"
+       TargetFrameworkVersion="131072"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory=".\Release"
+                       IntermediateDirectory=".\Release"
+                       ConfigurationType="2"
+                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Release/s2001.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               InlineFunctionExpansion="1"
+                               AdditionalIncludeDirectories="..\sfglib,..\s2001,.."
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;S2001_EXPORTS"
+                               StringPooling="true"
+                               RuntimeLibrary="0"
+                               EnableFunctionLevelLinking="true"
+                               UsePrecompiledHeader="2"
+                               PrecompiledHeaderThrough="stdafx.h"
+                               PrecompiledHeaderFile=".\Release/s2001.pch"
+                               AssemblerListingLocation=".\Release/"
+                               ObjectFile=".\Release/"
+                               ProgramDataBaseFileName=".\Release/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               CompileAs="0"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               Culture="1041"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="..\sfglib.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib"
+                               OutputFile=".\Release/s2001.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               ProgramDatabaseFile=".\Release/s2001.pdb"
+                               RandomizedBaseAddress="1"
+                               DataExecutionPrevention="0"
+                               ImportLibrary=".\Release/s2001.lib"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               CommandLine="copy .\release\*.lib .."
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory=".\Debug"
+                       IntermediateDirectory=".\Debug"
+                       ConfigurationType="2"
+                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Debug/s2001.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="..\sfglib,..\s2001,..,..\s2001scene,..\s2001editor"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;S2001_EXPORTS"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="1"
+                               RuntimeTypeInfo="true"
+                               UsePrecompiledHeader="0"
+                               PrecompiledHeaderFile=".\Debug/s2001.pch"
+                               AssemblerListingLocation=".\Debug/"
+                               ObjectFile=".\Debug/"
+                               ProgramDataBaseFileName=".\Debug/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               DebugInformationFormat="4"
+                               CompileAs="0"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               Culture="1041"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="..\sfglib.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib"
+                               OutputFile=".\Debug/s2001.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               GenerateDebugInformation="true"
+                               ProgramDatabaseFile=".\Debug/s2001.pdb"
+                               RandomizedBaseAddress="1"
+                               DataExecutionPrevention="0"
+                               ImportLibrary=".\Debug/s2001.lib"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               CommandLine="copy .\debug\*.lib .."
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source Files"
+                       Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+                       >
+                       <File
+                               RelativePath="AbstractCharacter.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="AbstractEnemy.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Armys.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="character.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Controller.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="DispositionControl.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="EA01.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="EB01.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Effects.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="EnemyBullets.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Enemys.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Explosion.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Hit.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="MainApp.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Manager.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="MyBullets.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="MyGroundBullets.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="MyShip.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="s2001.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="StdAfx.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               UsePrecompiledHeader="1"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                               UsePrecompiledHeader="1"
+                                               PrecompiledHeaderThrough="stdafx.h"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Target.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="ZK01.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="ZK02.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Header Files"
+                       Filter="h;hpp;hxx;hm;inl"
+                       >
+                       <File
+                               RelativePath="AbstractCharacter.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="AbstractCharacters.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="AbstractEnemy.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Armys.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="character.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Controller.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="DispositionControl.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="EA01.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="EB01.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Effects.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="EnemyBullets.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Enemys.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="explosion.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Hit.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="MainApp.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Manager.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="MyBullets.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="MyGroundBullets.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="MyShip.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="resource.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="s2001.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Scene.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="scenetype.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="..\sfinterface.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="StdAfx.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Target.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="ZK01.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="ZK02.h"
+                               >
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Resource Files"
+                       Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+                       >
+               </Filter>
+               <File
+                       RelativePath="ReadMe.txt"
+                       >
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/project/s2001/s2001.vcproj.7.10.old b/project/s2001/s2001.vcproj.7.10.old
new file mode 100644 (file)
index 0000000..acb2aa9
--- /dev/null
@@ -0,0 +1,716 @@
+<?xml version="1.0" encoding="shift_jis"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="s2001"
+       SccProjectName=""
+       SccLocalPath="">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory=".\Release"
+                       IntermediateDirectory=".\Release"
+                       ConfigurationType="2"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="FALSE"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               InlineFunctionExpansion="1"
+                               AdditionalIncludeDirectories="..\sfglib,..\s2001,.."
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;S2001_EXPORTS"
+                               StringPooling="TRUE"
+                               RuntimeLibrary="0"
+                               EnableFunctionLevelLinking="TRUE"
+                               UsePrecompiledHeader="3"
+                               PrecompiledHeaderThrough="stdafx.h"
+                               PrecompiledHeaderFile=".\Release/s2001.pch"
+                               AssemblerListingLocation=".\Release/"
+                               ObjectFile=".\Release/"
+                               ProgramDataBaseFileName=".\Release/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="TRUE"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="..\sfglib.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib"
+                               OutputFile=".\Release/s2001.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               ProgramDatabaseFile=".\Release/s2001.pdb"
+                               ImportLibrary=".\Release/s2001.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="TRUE"
+                               SuppressStartupBanner="TRUE"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Release/s2001.tlb"
+                               HeaderFileName=""/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               CommandLine="copy .\release\*.lib .."/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               Culture="1041"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory=".\Debug"
+                       IntermediateDirectory=".\Debug"
+                       ConfigurationType="2"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="FALSE"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="..\sfglib,..\s2001,..,..\s2001scene,..\s2001editor"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;S2001_EXPORTS"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="1"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="2"
+                               PrecompiledHeaderFile=".\Debug/s2001.pch"
+                               AssemblerListingLocation=".\Debug/"
+                               ObjectFile=".\Debug/"
+                               ProgramDataBaseFileName=".\Debug/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="TRUE"
+                               DebugInformationFormat="4"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="..\sfglib.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib"
+                               OutputFile=".\Debug/s2001.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               GenerateDebugInformation="TRUE"
+                               ProgramDatabaseFile=".\Debug/s2001.pdb"
+                               ImportLibrary=".\Debug/s2001.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               MkTypLibCompatible="TRUE"
+                               SuppressStartupBanner="TRUE"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Debug/s2001.tlb"
+                               HeaderFileName=""/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               CommandLine="copy .\debug\*.lib .."/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               Culture="1041"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source Files"
+                       Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+                       <File
+                               RelativePath="AbstractCharacter.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="AbstractEnemy.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Armys.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="character.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Controller.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="DispositionControl.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="EA01.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="EB01.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Effects.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="EnemyBullets.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Enemys.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Explosion.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Hit.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="MainApp.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Manager.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="MyBullets.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="MyGroundBullets.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="MyShip.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="s2001.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="StdAfx.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               UsePrecompiledHeader="1"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                               UsePrecompiledHeader="1"
+                                               PrecompiledHeaderThrough="stdafx.h"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Target.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="ZK01.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="ZK02.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Header Files"
+                       Filter="h;hpp;hxx;hm;inl">
+                       <File
+                               RelativePath="AbstractCharacter.h">
+                       </File>
+                       <File
+                               RelativePath="AbstractCharacters.h">
+                       </File>
+                       <File
+                               RelativePath="AbstractEnemy.h">
+                       </File>
+                       <File
+                               RelativePath="Armys.h">
+                       </File>
+                       <File
+                               RelativePath="character.h">
+                       </File>
+                       <File
+                               RelativePath="Controller.h">
+                       </File>
+                       <File
+                               RelativePath="DispositionControl.h">
+                       </File>
+                       <File
+                               RelativePath="EA01.h">
+                       </File>
+                       <File
+                               RelativePath="EB01.h">
+                       </File>
+                       <File
+                               RelativePath="Effects.h">
+                       </File>
+                       <File
+                               RelativePath="EnemyBullets.h">
+                       </File>
+                       <File
+                               RelativePath="Enemys.h">
+                       </File>
+                       <File
+                               RelativePath="explosion.h">
+                       </File>
+                       <File
+                               RelativePath="Hit.h">
+                       </File>
+                       <File
+                               RelativePath="MainApp.h">
+                       </File>
+                       <File
+                               RelativePath="Manager.h">
+                       </File>
+                       <File
+                               RelativePath="MyBullets.h">
+                       </File>
+                       <File
+                               RelativePath="MyGroundBullets.h">
+                       </File>
+                       <File
+                               RelativePath="MyShip.h">
+                       </File>
+                       <File
+                               RelativePath="resource.h">
+                       </File>
+                       <File
+                               RelativePath="s2001.h">
+                       </File>
+                       <File
+                               RelativePath="Scene.h">
+                       </File>
+                       <File
+                               RelativePath="scenetype.h">
+                       </File>
+                       <File
+                               RelativePath="..\sfinterface.h">
+                       </File>
+                       <File
+                               RelativePath="StdAfx.h">
+                       </File>
+                       <File
+                               RelativePath="Target.h">
+                       </File>
+                       <File
+                               RelativePath="ZK01.h">
+                       </File>
+                       <File
+                               RelativePath="ZK02.h">
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Resource Files"
+                       Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+               </Filter>
+               <File
+                       RelativePath="ReadMe.txt">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/project/s2001/s2001.vcproj.satoshi-PC.satoshi.user b/project/s2001/s2001.vcproj.satoshi-PC.satoshi.user
new file mode 100644 (file)
index 0000000..65bf665
--- /dev/null
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="shift_jis"?>
+<VisualStudioUserFile
+       ProjectType="Visual C++"
+       Version="9.00"
+       ShowAllFiles="false"
+       >
+       <Configurations>
+               <Configuration
+                       Name="Release|Win32"
+                       >
+                       <DebugSettings
+                               Command=""
+                               WorkingDirectory=""
+                               CommandArguments=""
+                               Attach="false"
+                               DebuggerType="3"
+                               Remote="1"
+                               RemoteMachine="SATOSHI-PC"
+                               RemoteCommand=""
+                               HttpUrl=""
+                               PDBPath=""
+                               SQLDebugging=""
+                               Environment=""
+                               EnvironmentMerge="true"
+                               DebuggerFlavor=""
+                               MPIRunCommand=""
+                               MPIRunArguments=""
+                               MPIRunWorkingDirectory=""
+                               ApplicationCommand=""
+                               ApplicationArguments=""
+                               ShimCommand=""
+                               MPIAcceptMode=""
+                               MPIAcceptFilter=""
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|Win32"
+                       >
+                       <DebugSettings
+                               Command=""
+                               WorkingDirectory=""
+                               CommandArguments=""
+                               Attach="false"
+                               DebuggerType="3"
+                               Remote="1"
+                               RemoteMachine="SATOSHI-PC"
+                               RemoteCommand=""
+                               HttpUrl=""
+                               PDBPath=""
+                               SQLDebugging=""
+                               Environment=""
+                               EnvironmentMerge="true"
+                               DebuggerFlavor=""
+                               MPIRunCommand=""
+                               MPIRunArguments=""
+                               MPIRunWorkingDirectory=""
+                               ApplicationCommand=""
+                               ApplicationArguments=""
+                               ShimCommand=""
+                               MPIAcceptMode=""
+                               MPIAcceptFilter=""
+                       />
+               </Configuration>
+       </Configurations>
+</VisualStudioUserFile>
diff --git a/project/s2001/s2001.vcxproj b/project/s2001/s2001.vcxproj
new file mode 100644 (file)
index 0000000..0a002ac
--- /dev/null
@@ -0,0 +1,391 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{A9583091-4F70-4817-8125-1BE5C54495E5}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>Win32</TargetEnvironment>
+      <TypeLibraryName>.\Release/s2001.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>..\sfglib;..\s2001;..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;S2001_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderOutputFile>.\Release/s2001.pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>.\Release/</AssemblerListingLocation>
+      <ObjectFileName>.\Release/</ObjectFileName>
+      <ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <CompileAs>Default</CompileAs>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0411</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>..\sfglib.lib;dinput8.lib;Dxerr8.lib;d3dx8.lib;d3d8.lib;dxguid.lib;d3dxof.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>.\Release/s2001.dll</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <ProgramDatabaseFile>.\Release/s2001.pdb</ProgramDatabaseFile>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+      <ImportLibrary>.\Release/s2001.lib</ImportLibrary>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>copy .\release\*.lib ..</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>Win32</TargetEnvironment>
+      <TypeLibraryName>.\Debug/s2001.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>..\sfglib;..\s2001;..;..\s2001scene;..\s2001editor;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;S2001_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <PrecompiledHeaderOutputFile>.\Debug/s2001.pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
+      <ObjectFileName>.\Debug/</ObjectFileName>
+      <ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <CompileAs>Default</CompileAs>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0411</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>..\sfglib.lib;dinput8.lib;Dxerr8.lib;d3dx8.lib;d3d8.lib;dxguid.lib;d3dxof.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>.\Debug/s2001.dll</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>.\Debug/s2001.pdb</ProgramDatabaseFile>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+      <ImportLibrary>.\Debug/s2001.lib</ImportLibrary>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>copy .\debug\*.lib ..</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="AbstractCharacter.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="AbstractEnemy.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="Armys.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="character.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="Controller.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="DispositionControl.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="EA01.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="EB01.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="Effects.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="EnemyBullets.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="Enemys.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="Explosion.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="Hit.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="MainApp.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="Manager.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="MyBullets.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="MyGroundBullets.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="MyShip.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="s2001.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="StdAfx.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">stdafx.h</PrecompiledHeaderFile>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
+    </ClCompile>
+    <ClCompile Include="Target.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="ZK01.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="ZK02.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="AbstractCharacter.h" />
+    <ClInclude Include="AbstractCharacters.h" />
+    <ClInclude Include="AbstractEnemy.h" />
+    <ClInclude Include="Armys.h" />
+    <ClInclude Include="character.h" />
+    <ClInclude Include="Controller.h" />
+    <ClInclude Include="DispositionControl.h" />
+    <ClInclude Include="EA01.h" />
+    <ClInclude Include="EB01.h" />
+    <ClInclude Include="Effects.h" />
+    <ClInclude Include="EnemyBullets.h" />
+    <ClInclude Include="Enemys.h" />
+    <ClInclude Include="explosion.h" />
+    <ClInclude Include="Hit.h" />
+    <ClInclude Include="MainApp.h" />
+    <ClInclude Include="Manager.h" />
+    <ClInclude Include="MyBullets.h" />
+    <ClInclude Include="MyGroundBullets.h" />
+    <ClInclude Include="MyShip.h" />
+    <ClInclude Include="resource.h" />
+    <ClInclude Include="s2001.h" />
+    <ClInclude Include="Scene.h" />
+    <ClInclude Include="scenetype.h" />
+    <ClInclude Include="..\sfinterface.h" />
+    <ClInclude Include="StdAfx.h" />
+    <ClInclude Include="Target.h" />
+    <ClInclude Include="ZK01.h" />
+    <ClInclude Include="ZK02.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="ReadMe.txt" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/project/s2001/s2001.vcxproj.filters b/project/s2001/s2001.vcxproj.filters
new file mode 100644 (file)
index 0000000..8e3d4ca
--- /dev/null
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{e3341acc-e08a-4abe-a763-d2d272c82217}</UniqueIdentifier>
+      <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{6c1f7c74-f99e-47e8-b75a-1ed3f1c37e9b}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{5a7edc49-aa5e-438e-97dc-61d532e22113}</UniqueIdentifier>
+      <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="AbstractCharacter.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="AbstractEnemy.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Armys.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="character.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Controller.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="DispositionControl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="EA01.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="EB01.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Effects.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="EnemyBullets.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Enemys.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Explosion.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Hit.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="MainApp.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Manager.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="MyBullets.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="MyGroundBullets.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="MyShip.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="s2001.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="StdAfx.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Target.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="ZK01.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="ZK02.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="AbstractCharacter.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="AbstractCharacters.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="AbstractEnemy.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Armys.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="character.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Controller.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="DispositionControl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="EA01.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="EB01.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Effects.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="EnemyBullets.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Enemys.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="explosion.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Hit.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="MainApp.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Manager.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="MyBullets.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="MyGroundBullets.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="MyShip.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="resource.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="s2001.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Scene.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="scenetype.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\sfinterface.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="StdAfx.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Target.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="ZK01.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="ZK02.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="ReadMe.txt" />
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/project/s2001/s2001.vcxproj.user b/project/s2001/s2001.vcxproj.user
new file mode 100644 (file)
index 0000000..ace9a86
--- /dev/null
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+</Project>
\ No newline at end of file
diff --git a/project/s2001/scenetype.h b/project/s2001/scenetype.h
new file mode 100644 (file)
index 0000000..39a03ae
--- /dev/null
@@ -0,0 +1,33 @@
+/**
+ * @file
+ * @brief \83V\81[\83\93\82Ì\8eí\97Þ\82Ì\92è\8b`\82ð\8ds\82¤\81B
+ * 
+ * @author S.F.
+ * @version $Id:
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+#ifndef SF_SCENE_TYPE_H
+#define SF_SCENE_TYPE_H
+namespace sf {
+       namespace application {
+               namespace scene {
+                       /// Scene\83^\83C\83v
+                       enum TYPE {
+                               NONE,///< \96³\8cø
+                               TEST,///< Test\83V\81[\83\93
+                               AUTHOR,///< \90»\8dì\8eÒ\95\\8e¦\83V\81[\83\93
+                               FADE,///< \83t\83F\81[\83h\83C\83\93\81E\83A\83E\83g\83V\81[\83\93
+                               TITLE,///< \83^\83C\83g\83\8b\83V\81[\83\93
+                               GAME,///< \83Q\81[\83\80\83V\81[\83\93
+                               START,///< \83X\83^\81[\83g\83V\81[\83\93
+                               RESTART,///< \83\8a\83X\83^\81[\83g\83V\81[\83\93
+                               OVER,///< \83Q\81[\83\80\83I\81[\83o\81[\83V\81[\83\93
+                               EDITOR,///< \94w\8ci\83G\83f\83B\83^\81[\83V\81[\83\93
+                               CELLSELECTOR,///< \94w\8ci\83Z\83\8b\91I\91ð\83V\81[\83\93
+                               DISPOSITION_EDITOR///< \94z\92u\83G\83f\83B\83^\83V\81[\83\93
+                       };
+               }
+       }
+}
+
+#endif
diff --git a/project/s2001Editor/BGEditor.cpp b/project/s2001Editor/BGEditor.cpp
new file mode 100644 (file)
index 0000000..34a697f
--- /dev/null
@@ -0,0 +1,20 @@
+// BGEditor.cpp: BGEditor \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//
+//////////////////////////////////////////////////////////////////////
+
+#include "stdafx.h"
+#include "BGEditor.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+BGEditor::BGEditor()
+{
+
+}
+
+BGEditor::~BGEditor()
+{
+
+}
diff --git a/project/s2001Editor/BGEditor.h b/project/s2001Editor/BGEditor.h
new file mode 100644 (file)
index 0000000..c518ed6
--- /dev/null
@@ -0,0 +1,37 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// BGEditor.h: \94w\8ci\83G\83f\83B\83
+// << \92\8d\88Ó >>
+//   \83C\83\93\83X\83^\83\93\83X\8dì\90¬\8cã\82Í\95K\82¸\81ABGEditor\82Ì\83p\83\89\83\81\81[\83^\82ð\8f\89\8aú\89»\82µ\82Ä\82­\82¾\82³\82¢\81B
+//     \97\9a\97ð\81F
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+
+#if !defined(AFX_BGEDITOR_H__828FA451_903E_41D4_B2FD_235E7A281A08__INCLUDED_)
+#define AFX_BGEDITOR_H__828FA451_903E_41D4_B2FD_235E7A281A08__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+namespace sf {
+       namespace application {
+               namespace scene {
+
+#include "sfinterface.h"
+class SF_INTERFACE BGEditor  
+{
+public:
+       BGEditor(){};
+       virtual ~BGEditor(){};
+       virtual void game(Game * const pGame) = 0;
+       virtual Game * const game() const = 0;
+       virtual const float mouseX(void) const = 0;
+       virtual const float mouseY(void) const = 0;
+       virtual void selectedData(const DWORD value) = 0;
+       virtual const DWORD selectedData(void) const = 0;
+};
+               }
+       }
+}
+
+#endif // !defined(AFX_BGEDITOR_H__828FA451_903E_41D4_B2FD_235E7A281A08__INCLUDED_)
diff --git a/project/s2001Editor/BGEditorImpl.cpp b/project/s2001Editor/BGEditorImpl.cpp
new file mode 100644 (file)
index 0000000..c29381a
--- /dev/null
@@ -0,0 +1,398 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// BGEditorImpl.cpp: BGEditorImpl \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+// << \92\8d\88Ó >>
+//   \83C\83\93\83X\83^\83\93\83X\8dì\90¬\8cã\82Í\95K\82¸\81ABGEditor\82Ì\83p\83\89\83\81\81[\83^\82ð\8f\89\8aú\89»\82µ\82Ä\82­\82¾\82³\82¢\81B
+//     \97\9a\97ð\81F
+// $Log: BGEditorImpl.cpp,v $
+// Revision 1.1.1.1  2001/11/06 21:29:04  fujiwara
+// no message
+//
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.5  2001/07/09 20:30:07  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.4  2001/07/01 21:30:33  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.3  2001/07/01 01:03:43  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.2  2001/05/12 00:48:13  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+
+// SYSTEM INCLUDES
+
+#include <stack>
+#include <list>
+#include <vector>
+#include <map>
+#include <fstream>
+
+// PROJECT INCLUDES
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "exception.h"
+#include "singleton.h"
+#include "system.h"
+#include "console.h"
+#include "input.h"
+#include "Scene.h"
+#include "main.h"
+#include "Obj.h"
+#include "Obj2D.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "ObjQuadrangle.h"
+#include "ObjRectangle.h"
+#include "Background.h"
+#include "AbstractScene.h"
+#include "character.h"
+#include "Game.h"
+#include "hit.h"
+#include "MySHip.h"
+#include "Enemys.h"
+#include "Armys.h"
+#include "DispositionControl.h"
+#include "BGEditor.h"
+#include "BGEditorImpl.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+using namespace sf::application::scene;
+using namespace sf;
+using namespace sf::system::console;
+
+const float BGEditorImpl::CellSelector::WIDTH = Background::Map::CELL_SIZE * Background::Map::CELL_TEX_COUNT_W;
+const float BGEditorImpl::CellSelector::HEIGHT = Background::Map::CELL_SIZE * Background::Map::CELL_TEX_COUNT_H;
+
+const float BGEditorImpl::CellSelector::X_MIN = viewport::X + BGEditorImpl::CellSelector::WIDTH / 2.0f;
+const float BGEditorImpl::CellSelector::X_MAX = viewport::X + viewport::WIDTH - BGEditorImpl::CellSelector::WIDTH / 2.0f;
+const float BGEditorImpl::CellSelector::Y_MIN = viewport::Y + BGEditorImpl::CellSelector::HEIGHT / 2.0f;
+const float BGEditorImpl::CellSelector::Y_MAX = viewport::Y + viewport::HEIGHT - BGEditorImpl::CellSelector::HEIGHT / 2.0f;                    
+
+
+BGEditorImpl::BGEditorImpl() : AbstractScene()
+{
+       mbCallBack = false;
+       mbListening = false;
+       mpCellSelector = NULL;
+       mSelectedMapData = 0x0;
+       mpGame = NULL;
+       mState = INITIALIZE;
+}
+
+BGEditorImpl::~BGEditorImpl()
+{
+       mbCallBack = false;
+
+       if(mpInput){
+               mpInput->removeMouseListener(this);
+               mpInput->removeKeyboardListener(this);
+               mpInput->hideMouseCursor();
+       }
+
+       if(mpCellSelector)
+               delete mpCellSelector;
+}
+
+
+void BGEditorImpl::move(void)
+{
+       switch(mState)
+       {
+       case INITIALIZE:
+               initialize();
+               return;
+       case MAIN:
+               // \82d\82w\82h\82s\83L\81[\82ª\89\9f\82³\82ê\82½\82©\81H
+               if(mpInput->exit(true)) {
+                       exitKeyPressed(this);
+               }
+               return;
+       }
+
+}
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+bool BGEditorImpl::initialize()
+{
+//     if(!mBackground.load("test.map"))
+//             return false;
+
+//     mBackground.offsetY(0.0f);
+//     mBackground.visibility(true);
+       mpInput->addMouseListener(this);
+       mpInput->addKeyboardListener(this);
+
+       mpInput->showMouseCursor();
+       mState = MAIN;
+       mbCallBack = true;
+       mbListening = true;
+       return true;
+}
+
+//BGEditorImpl Scene \82Ì\8fI\97¹ ---------------------------------------------------------
+void BGEditorImpl::endOfScene(Scene *pScene)
+{
+       CellSelector *pcs;
+
+       switch(pScene->type())
+       {
+       case CELLSELECTOR:
+               mbCallBack = true;
+               pcs = dynamic_cast<CellSelector*>(pScene);
+               selectedData( (pcs->selectedTextureNo() << 16) | (0x7fff & pcs->selectedIndex() + 1));
+               break;
+       default:
+               callSceneEvent(&sf::application::scene::Listener::endOfScene);
+               delete this;
+       }
+
+} //endOfScene()
+
+// exit key \82ª\89\9f\82³\82ê\82½\81I ------------------------------------------------------
+void BGEditorImpl::exitKeyPressed(Scene *pScene)
+{
+       callSceneEvent(&sf::application::scene::Listener::exitKeyPressed);
+       delete this;
+} //endOfScene()
+
+// \83}\83E\83X\83z\83C\81[\83\8b\82ª\93®\82¢\82½ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void BGEditorImpl::mouseWheel(const int screenX,const int screenY,const DWORD mkey)
+{
+       using namespace sf::system::input::mouse;
+       int wheel = (int)(mkey & 0xffff0000) / 65536;
+       
+       float speed = 8.0f;
+
+       if(MKEY_SHIFT & mkey)
+               speed = 64.0f;
+
+       if(MKEY_CONTROL & mkey)
+               speed = 64.0f * 8.0f;
+       
+       if(wheel > 0){
+               mpGame->scrollY(mpGame->scrollY() + speed);
+       } else {
+               mpGame->scrollY(mpGame->scrollY() - speed);
+       }
+
+}// mouseWheel()
+
+// \83L\81[\83{\81[\83h\82ª\89\9f\82³\82ê\82½\81I
+void BGEditorImpl::keyDown(DWORD keyCode,DWORD extKeyCode)
+{
+       switch((char)keyCode)
+       {
+       case 'G':
+               endOfScene(this);
+               break;
+       case 'S':
+               mpGame->background()->save(NULL);
+               break;
+       }
+}// keyDown()
+
+// \89E\83N\83\8a\83b\83N  \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void BGEditorImpl::rightButtonDown(const int screenX,const int screenY,const DWORD mkey)
+{
+       mbCallBack = false;
+
+       CellSelector *pcsel = new CellSelector(mpGame->background()->textureList());
+       Container::instance()->add(pcsel);
+       pcsel->addListener(this);
+       pcsel->selectedIndex(selectedData() & 0xffff);
+       pcsel->selectedTextureNo((selectedData() & 0xffff0000) >> 16);
+       
+       pcsel->selectorX((float)screenX);
+       pcsel->selectorY((float)screenY);
+       pcsel->z((float)0.0001);
+
+       mMouseX = (float)screenX;
+       mMouseY = (float)screenY;
+       
+}// rightButtonDown
+
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+//
+//  CellSelector Class
+//
+// \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+
+BGEditorImpl::CellSelector::CellSelector(sf::system::console::Background::TextureList* pTextureList)
+{
+       mpTextureList = pTextureList;
+       visibility(false);
+       sprite(NULL);
+       mState = INITIALIZE;
+       mbMouseListening = false;
+}// CellSelector()
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+BGEditorImpl::CellSelector::~CellSelector()
+{
+       if(mpInput)
+               mpInput->removeMouseListener(this);
+//     Obj::List::deleteObj(this);
+
+}// ~CellSelector()
+
+// \93®\8dì\8bL\8f\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void BGEditorImpl::CellSelector::move(void)
+{
+       switch(mState)
+       {
+       case INITIALIZE:
+               initialize();
+               return;
+       case MAIN:
+//             return main();
+               break;
+       }
+
+}// move()
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+bool BGEditorImpl::CellSelector::initialize()
+{
+       if(mSelectorX > X_MAX)
+               mSelectorX = X_MAX;
+       
+       if(mSelectorX< X_MIN)
+               mSelectorX = X_MIN;
+       
+       if(mSelectorY > Y_MAX)
+               mSelectorY = Y_MAX;
+
+       if(mSelectorY < Y_MIN)
+               mSelectorY = Y_MIN;
+       mpInput->addMouseListener(this);
+       mbMouseListening = true;
+       visibility(true);
+       mState = MAIN;
+       return true;
+}// move()
+
+// \83Z\83\8c\83N\83^\82Ì\95`\89æ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void BGEditorImpl::CellSelector::draw()
+{
+       if(!visibility())
+               return;
+       
+       float start_y = mSelectorY - (Background::Map::CELL_TEX_COUNT_H / 2.0f 
+                                       *  Background::Map::CELL_SIZE - Background::Map::CELL_SIZE / 2.0f);
+       float end_y = mSelectorY + (Background::Map::CELL_TEX_COUNT_H / 2.0f 
+                                       *  Background::Map::CELL_SIZE - Background::Map::CELL_SIZE / 2.0f);
+       
+       float start_x = mSelectorX - (Background::Map::CELL_TEX_COUNT_W / 2.0f 
+                                       *  Background::Map::CELL_SIZE - Background::Map::CELL_SIZE / 2.0f);
+       
+       float end_x = mSelectorX + (Background::Map::CELL_TEX_COUNT_W / 2.0f 
+                                       *  Background::Map::CELL_SIZE - Background::Map::CELL_SIZE / 2.0f);
+
+       int t_index = 0;
+
+       for(float iy = start_y ; iy <= end_y;iy += Background::Map::CELL_SIZE)
+       {
+               for(float ix = start_x ; ix <= end_x ; ix += Background::Map::CELL_SIZE){
+                       index(t_index);
+                       x(ix);
+                       y(iy);
+
+                       if(     mMouseX > (ix - Background::Map::CELL_SIZE / 2.0f) && 
+                               mMouseX < (ix + Background::Map::CELL_SIZE / 2.0f) && 
+                               mMouseY > (iy - Background::Map::CELL_SIZE / 2.0f) && 
+                               mMouseY < (iy + Background::Map::CELL_SIZE / 2.0f))
+                       {       
+                               color(0xffff0000);
+                       }
+                       else
+                               color(0xffffffff);
+
+                       (*mpTextureList)[selectedTextureNo()]->draw(this);
+                       t_index++;
+               }
+       }
+
+}
+
+// \8d\83N\83\8a\83b\83N\82ª\89\9f\82³\82ê\82½ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void BGEditorImpl::CellSelector::leftButtonDown(const int screenX,const int screenY,const DWORD mkey)
+{
+
+       if(!visibility())
+       return;
+       
+       float start_y = mSelectorY - (Background::Map::CELL_TEX_COUNT_H / 2.0f 
+                                       *  Background::Map::CELL_SIZE - Background::Map::CELL_SIZE / 2.0f);
+       float end_y = mSelectorY + (Background::Map::CELL_TEX_COUNT_H / 2.0f 
+                                       *  Background::Map::CELL_SIZE - Background::Map::CELL_SIZE / 2.0f);
+       
+       float start_x = mSelectorX - (Background::Map::CELL_TEX_COUNT_W / 2.0f 
+                                       *  Background::Map::CELL_SIZE - Background::Map::CELL_SIZE / 2.0f);
+       
+       float end_x = mSelectorX + (Background::Map::CELL_TEX_COUNT_W / 2.0f 
+                                       *  Background::Map::CELL_SIZE - Background::Map::CELL_SIZE / 2.0f);
+
+       int t_index = 0;
+
+       for(float iy = start_y ; iy <= end_y;iy += Background::Map::CELL_SIZE)
+       {
+               for(float ix = start_x ; ix <= end_x ; ix += Background::Map::CELL_SIZE){
+                       if(     mMouseX > (ix - Background::Map::CELL_SIZE / 2.0f) && 
+                               mMouseX < (ix + Background::Map::CELL_SIZE / 2.0f) && 
+                               mMouseY > (iy - Background::Map::CELL_SIZE / 2.0f) && 
+                               mMouseY < (iy + Background::Map::CELL_SIZE / 2.0f))
+                       {       
+                               selectedIndex(t_index);
+                               callSceneEvent(&sf::application::scene::Listener::endOfScene);
+                               delete this;
+                               return;
+                       }
+                       t_index++;
+               }
+       }
+       callSceneEvent(&sf::application::scene::Listener::endOfScene);
+       delete this;
+}// leftButtonDown()
+
+// \83}\83E\83X\83z\83C\81[\83\8b\82ª\93®\82¢\82½ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void BGEditorImpl::CellSelector::mouseWheel(const int screenX,const int screenY,const DWORD mkey)
+{
+       using namespace sf::system::input::mouse;
+       int wheel = (int)(mkey & 0xffff0000) / 65536;
+       if(wheel > 0){
+               if(selectedTextureNo() == (mpTextureList->size() - 1))
+                       return;
+               else
+                       selectedTextureNo(selectedTextureNo() + 1);
+       } else {
+               if(selectedTextureNo() == 0)
+                       return;
+               else
+                       selectedTextureNo(selectedTextureNo() - 1);
+       }
+               
+
+
+}// mouseWheel()
+
diff --git a/project/s2001Editor/BGEditorImpl.h b/project/s2001Editor/BGEditorImpl.h
new file mode 100644 (file)
index 0000000..daa04f8
--- /dev/null
@@ -0,0 +1,201 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// BGEditorImpl.h: BGEditorImpl \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+// \83}\83b\83v\83G\83f\83B\83^\81[\83N\83\89\83X
+//     \97\9a\97ð\81F
+// $Log: BGEditorImpl.h,v $
+// Revision 1.1.1.1  2001/11/06 21:29:04  fujiwara
+// no message
+//
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.4  2001/07/09 20:30:08  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.3  2001/07/01 01:03:43  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.2  2001/05/12 00:48:13  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_EDITOR_H__78B4933E_229E_4ACD_9183_C1E688557FE7__INCLUDED_)
+#define AFX_EDITOR_H__78B4933E_229E_4ACD_9183_C1E688557FE7__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "AbstractScene.h"
+namespace sf {
+       namespace application {
+               namespace scene {
+
+class BGEditorImpl : public sf::system::input::mouse::Listener ,
+       public sf::system::input::keyboard::Listener ,public AbstractScene  
+{
+       
+       // LIFE CYCLE //
+
+public:
+       BGEditorImpl(BGEditorParameter *pBGEditorParam);
+       virtual ~BGEditorImpl();
+       
+       // OPERATIONS //
+
+       void move(void);
+       // 
+       const TYPE type() const{return EDITOR;};
+       // \83V\81[\83\93\8fI\97¹\8e\9e\83C\83x\83\93\83g
+       void endOfScene(Scene * const pScene);
+       // \83V\81[\83\93\92\86\92f(\8fI\97¹\83L\81[\82ª\89\9f\82³\82ê\82½)\83C\83x\83\93\83g
+       void exitKeyPressed(Scene * const pScene);
+
+       // \83}\83E\83X\83\8a\83X\83i\81[
+       void leftButtonDown(const int screenX,const int screenY,const DWORD mkey)
+       {
+               mpGame->background()->setData((float)screenX,(float)screenY,mSelectedMapData);
+       };
+       void leftButtonUp(const int screenX,const int screenY,const DWORD mkey){;};
+       void leftButtonDoubleClick(const int screenX,const int screenY,const DWORD mkey){;};
+       void rightButtonDown(const int screenX,const int screenY,const DWORD mkey);
+       void rightButtonUp(const int screenX,const int screenY,const DWORD mkey){;};
+       void rightButtonDoubleClick(const int screenX,const int screenY,const DWORD mkey){;};
+       void mouseMove(const int screenX,const int screenY,const DWORD mkey){;}
+       void mouseWheel(const int screenX,const int screenY,const DWORD mkey);
+       void mouseTalkerIsDeleted(void){mpInput = NULL;};
+       // \83L\81[\83{\81[\83h\83\8a\83X\83i\81[
+       void keyDown(const DWORD keyCode,const DWORD extKeyCode);
+       void keyUp(const DWORD keyCode,const DWORD extKeyCode){};
+       void keyboardTalkerIsDeleted(void){mpInput = NULL;};
+
+       // ACCESS //
+
+       const float mouseX(void) { return mMouseX;};
+       const float mouseY(void) { return mMouseY;};
+
+       void selectedData(const DWORD value){mSelectedMapData = value;};
+       const DWORD selectedData(void) const {return mSelectedMapData;};
+
+       // INQUIRY //
+
+       const bool isListeningMouse(void) const {return mbCallBack;};
+       const bool isListeningKeyboard(void) const {return mbListening;};
+
+private:
+
+       // \83}\83b\83v\82Ì\83e\83N\83X\83`\83\83\83Z\83\8c\83N\83^\83N\83\89\83X //
+       class CellSelector :
+                       public sf::system::input::mouse::Listener,
+                       public sf::system::console::ObjRectangle,
+                       public sf::application::scene::AbstractScene
+                       
+       {
+
+               // LIFE CYCLE //
+       
+       public:
+
+               CellSelector(sf::system::console::Background::TextureList* pTextureList);
+               ~CellSelector();
+
+               // OPERATIONS //
+
+               // draw\82ð\83I\81[\83o\81[\83\89\83C\83h
+               void draw();
+               // scene
+               void move(void);
+               const TYPE type() const{return CELLSELECTOR;};
+               void endOfScene(Scene * const pScene){;};
+               void exitKeyPressed(Scene * const pScene){;};
+               // \83}\83E\83X\83\8a\83X\83i\81[
+               void leftButtonDown(const int screenX,const int screenY,const DWORD mkey);
+               void leftButtonUp(const int screenX,const int screenY,const DWORD mkey){};
+               void leftButtonDoubleClick(const int screenX,const int screenY,const DWORD mkey){};
+               void rightButtonDown(const int screenX,const int screenY,const DWORD mkey){};
+               void rightButtonUp(const int screenX,const int screenY,const DWORD mkey){};
+               void rightButtonDoubleClick(const int screenX,const int screenY,const DWORD mkey){};
+               void mouseMove(const int screenX,const int screenY,const DWORD mkey)
+                       {mMouseX = (float)screenX;mMouseY = (float)screenY;};
+               void mouseWheel(const int screenX,const int screenY,const DWORD mkey);
+               const bool isListeningMouse(void) const {return mbMouseListening;};
+               void mouseTalkerIsDeleted(void){mpInput = NULL;};
+
+               // ACCESS //
+
+               const DWORD selectedIndex(void) const {return mSelectedIndex;};
+               void selectedIndex(DWORD value){mSelectedIndex = value;};
+
+               const DWORD selectedTextureNo(void) const {return mSelectedTextureNo;};
+               void selectedTextureNo(DWORD value){mSelectedTextureNo = value;};
+               
+               const float selectorX(void) const { return mSelectorX;};
+               void selectorX(float value){ mSelectorX = value;};
+
+               const float selectorY(void) const { return mSelectorY;};
+               void selectorY(float value){ mSelectorY = value ;};
+
+       private:
+               bool initialize();
+               bool mbMouseListening;
+               
+               DWORD mSelectedIndex;
+               DWORD mSelectedTextureNo;
+               
+               // \83Z\83\8b\83Z\83\8c\83N\83^\82Ì\92\86\90S\8dÀ\95W
+               float mSelectorX;
+               float mSelectorY;
+
+               // \8c»\8dÝ\82Ì\83}\83E\83X\8dÀ\95
+               float mMouseX;
+               float mMouseY;
+               
+               sf::system::console::Background::TextureList* mpTextureList;
+
+               enum {
+                       INITIALIZE,
+                       MAIN
+               } mState;
+
+               // \92è\90\94 //
+
+               static const float X_MIN;
+               static const float X_MAX;
+               static const float Y_MIN;
+               static const float Y_MAX;                       
+               static const float WIDTH;
+               static const float HEIGHT;
+
+       };// CellSelector
+
+       //
+
+       CellSelector* mpCellSelector;   
+       DWORD mSelectedMapData;
+       bool initialize();
+
+//     sf::system::console::Background mBackground;
+       float mMouseX,mMouseY;
+       bool mbCallBack;
+       bool mbListening;
+       
+       enum STATE {
+               INITIALIZE,
+               MAIN,
+               END
+       } mState;
+
+       Game *mpGame;
+
+};// BGEditorImpl
+               }
+       }
+}
+
+#endif // !defined(AFX_EDITOR_H__78B4933E_229E_4ACD_9183_C1E688557FE7__INCLUDED_)
diff --git a/project/s2001Editor/CVS/Entries b/project/s2001Editor/CVS/Entries
new file mode 100644 (file)
index 0000000..2fac0b7
--- /dev/null
@@ -0,0 +1,13 @@
+/PathEditor.cpp/1.1.1.1/Tue Nov 06 21:29:04 2001//
+/PathEditor.h/1.1.1.1/Tue Nov 06 21:29:04 2001//
+/ReadMe.txt/1.1.1.1/Tue Nov 06 21:29:04 2001//
+/StdAfx.cpp/1.1.1.1/Tue Nov 06 21:29:04 2001//
+/StdAfx.h/1.1.1.1/Tue Nov 06 21:29:04 2001//
+/s2001Editor.cpp/1.1.1.1/Tue Nov 06 21:29:04 2001//
+/s2001Editor.dsp/1.1.1.1/Tue Nov 06 21:29:58 2001//
+/s2001Editor.plg/1.1.1.1/Tue Nov 06 21:29:58 2001//
+/BGEditor.cpp/1.1.1.1/Tue Nov 06 21:29:04 2001//
+/BGEditor.h/1.1.1.1/Tue Nov 06 21:29:04 2001//
+/DispositionEditor.cpp/1.1.1.1/Tue Nov 06 21:29:04 2001//
+/DispositionEditor.h/1.1.1.1/Tue Nov 06 21:29:04 2001//
+D
diff --git a/project/s2001Editor/CVS/Repository b/project/s2001Editor/CVS/Repository
new file mode 100644 (file)
index 0000000..e3c506e
--- /dev/null
@@ -0,0 +1 @@
+s2001editor
diff --git a/project/s2001Editor/CVS/Root b/project/s2001Editor/CVS/Root
new file mode 100644 (file)
index 0000000..df6650f
--- /dev/null
@@ -0,0 +1 @@
+:local:c:\home
diff --git a/project/s2001Editor/DispositionEditor.cpp b/project/s2001Editor/DispositionEditor.cpp
new file mode 100644 (file)
index 0000000..608e70c
--- /dev/null
@@ -0,0 +1,20 @@
+// DispositionEditor.cpp: DispositionEditor \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//
+//////////////////////////////////////////////////////////////////////
+
+#include "stdafx.h"
+#include "DispositionEditor.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+DispositionEditor::DispositionEditor()
+{
+
+}
+
+DispositionEditor::~DispositionEditor()
+{
+
+}
diff --git a/project/s2001Editor/DispositionEditor.h b/project/s2001Editor/DispositionEditor.h
new file mode 100644 (file)
index 0000000..22541d2
--- /dev/null
@@ -0,0 +1,20 @@
+// DispositionEditor.h: DispositionEditor \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//
+//////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_DISPOSITIONEDITOR_H__779BDF4A_4E99_40F8_82DF_BB1CD15CD672__INCLUDED_)
+#define AFX_DISPOSITIONEDITOR_H__779BDF4A_4E99_40F8_82DF_BB1CD15CD672__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+class DispositionEditor  
+{
+public:
+       DispositionEditor(){};
+       virtual ~DispositionEditor(){};
+
+};
+
+#endif // !defined(AFX_DISPOSITIONEDITOR_H__779BDF4A_4E99_40F8_82DF_BB1CD15CD672__INCLUDED_)
diff --git a/project/s2001Editor/DispositionEditorImpl.cpp b/project/s2001Editor/DispositionEditorImpl.cpp
new file mode 100644 (file)
index 0000000..ce990ef
--- /dev/null
@@ -0,0 +1,335 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// DispositionEditorImpl.cpp: DispositionEditorImpl \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//     \97\9a\97ð\81F
+// $Log: DispositionEditorImpl.cpp,v $
+// Revision 1.1.1.1  2001/11/06 21:29:04  fujiwara
+// no message
+//
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.9  2001/07/09 20:30:08  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.8  2001/07/01 21:30:33  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.7  2001/07/01 01:03:43  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.6  2001/05/29 01:13:06  fujiwara
+// \8eG\8b\9b\83L\83\83\83\89(\94ò\8ds\95¨\81j\82Ì\8dì\90¬\81B\94z\92u\83G\83f\83B\83^\82Ì\83o\83O\8fC\90³
+//
+// Revision 1.5  2001/05/17 12:34:10  fujiwara
+// \92n\8fã\93G\83T\83\93\83v\83\8b\8dì\90¬
+//
+// Revision 1.4  2001/05/12 12:48:28  fujiwara
+// \94z\92u\83G\83f\83B\83^\8dì\90¬\82É\94º\82¤\95Ï\8dX\81E\92Ç\89Á
+//
+// Revision 1.3  2001/05/12 00:50:48  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+// SYSTEM INCLUDES
+
+#include <stack>
+#include <list>
+#include <vector>
+#include <map>
+#include <fstream>
+
+// PROJECT INCLUDES
+
+
+#include "exception.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "singleton.h"
+#include "system.h"
+#include "console.h"
+#include "input.h"
+#include "Scene.h"
+#include "main.h"
+#include "Obj.h"
+#include "Obj2D.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "ObjQuadrangle.h"
+#include "ObjRectangle.h"
+#include "Background.h"
+#include "AbstractScene.h"
+#include "character.h"
+#include "hit.h"
+#include "MySHip.h"
+#include "Enemys.h"
+#include "Armys.h"
+#include "Game.h"
+#include "DispositionControl.h"
+#include "DispositionEditorImpl.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+using namespace sf::application::scene;
+using namespace sf;
+using namespace sf::system::console;
+
+const DWORD DispositionEditorImpl::CURRENT_SPECULAR = 0x202080;
+const DWORD DispositionEditorImpl::NORMAL_SPECULAR = 0;
+
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+DispositionEditorImpl::DispositionEditorImpl() : AbstractScene()
+{
+       mbCallBack = false;
+       mbListening = false;
+       
+       mEditType = application::disposition::command::SET_ENEMY;
+       mpEditCommand = sf::application::disposition::Controller::create(mEditType);
+       mpEditCommand->load();
+
+       mpGame = NULL;
+
+       mState = INITIALIZE;
+       mDifficulty = sf::application::scene::Game::EASY;
+
+       visibility(false);
+}// DispositionEditorImpl()
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+DispositionEditorImpl::~DispositionEditorImpl()
+{
+       mbCallBack = false;
+       
+       if(mpInput){
+               mpInput->removeMouseListener(this);
+               mpInput->removeKeyboardListener(this);
+       
+               mpInput->hideMouseCursor();
+       
+               mpInput->removeKeyboardListener(mpEditCommand);
+               mpInput->removeMouseListener(mpEditCommand);
+       }
+       
+       unload();
+       delete mpEditCommand;
+
+}// ~DispositionEditorImpl()
+
+
+void DispositionEditorImpl::move(void)
+{
+       switch(mState)
+       {
+       case INITIALIZE:
+               initialize();
+               return;
+       case MAIN:
+               // \82d\82w\82h\82s\83L\81[\82ª\89\9f\82³\82ê\82½\82©\81H
+               if(mpInput->exit(true)) {
+                       exitKeyPressed(this);
+                       return;
+               }
+               mpGame->printEditInfo();
+               return;
+       }
+}
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void DispositionEditorImpl::initialize(void)
+{
+       mpInput->addMouseListener(this);
+       mpInput->addKeyboardListener(this);
+       mpInput->showMouseCursor();
+
+       mpInput->addKeyboardListener(mpEditCommand);
+       mpInput->addMouseListener(mpEditCommand);
+       
+       mState = MAIN;
+       mbCallBack = true;
+       mbListening = true;
+       mpGame->background()->edit(true);
+
+       load();
+       z(0.1f);
+       visibility(true);
+}
+
+//DispositionEditorImpl Scene \82Ì\8fI\97¹ ---------------------------------------------------------
+void DispositionEditorImpl::endOfScene(Scene *pScene)
+{
+       mpGame->background()->edit(false);
+       mpGame->controllerPtr()->restart(mpGame->scrollY());
+       callSceneEvent(&sf::application::scene::Listener::endOfScene);
+       delete this;
+} //endOfScene()
+
+// exit key \82ª\89\9f\82³\82ê\82½\81I ------------------------------------------------------
+void DispositionEditorImpl::exitKeyPressed(Scene *pScene)
+{
+       mpGame->background()->edit(false);
+       mpGame->controllerPtr()->restart(mpGame->scrollY());
+       callSceneEvent(&sf::application::scene::Listener::exitKeyPressed);
+       delete this;
+} //endOfScene()
+
+// \83}\83E\83X\83z\83C\81[\83\8b\82ª\93®\82¢\82½ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void DispositionEditorImpl::mouseWheel(const int screenX,const int screenY,const DWORD mkey)
+{
+       using namespace sf::system::input::mouse;
+       int wheel = (int)(mkey & 0xffff0000) / 65536;
+       
+       float speed = 1.0f;
+
+       if(MKEY_SHIFT & mkey)
+               speed = 8.0f;
+
+       if(MKEY_CONTROL & mkey)
+               speed = 32.0f;
+       
+       if(wheel > 0)
+               mpGame->scrollY(mpGame->scrollY() + speed);
+       else
+               mpGame->scrollY(mpGame->scrollY() - speed);
+       
+       if(mpEditCommand)
+               mpEditCommand->mouseWheel(screenX,screenY,mkey);
+       
+}// mouseWheel()
+
+// \83L\81[\83{\81[\83h\82ª\89\9f\82³\82ê\82½\81I
+void DispositionEditorImpl::keyDown(const DWORD keyCode,const DWORD extKeyCode)
+{      
+       using namespace sf::system::input;
+       using namespace sf::application::disposition::command;
+
+       float speed = 1.0f;
+       int max = 0;
+       
+       if(extKeyCode & keyboard::SHIFT)
+               speed = 8.0f;
+
+       switch((char)keyCode)
+       {
+       case 'G':
+               endOfScene(this);
+               break;
+       case 'S':
+               mpGame->controllerPtr()->save();
+               break;
+       case VKEY_DOWN:
+               mpGame->background()->startOffsetY(mpGame->background()->startOffsetY() + speed);
+               break;
+       case VKEY_UP:
+               mpGame->background()->startOffsetY(mpGame->background()->startOffsetY() - speed);
+               break;
+       case VKEY_LEFT:
+               mpGame->background()->startOffsetX(mpGame->background()->startOffsetX() - speed);
+               break;
+       case VKEY_RIGHT:
+               mpGame->background()->startOffsetX(mpGame->background()->startOffsetX() + speed);
+               break;
+       case '1':
+//             if((int)selectedObj() > 0)
+//                     selectedObj(selectedObj() - 1);
+               break;
+       case '2':
+//             max = (mEditType == SET_ENEMY)?(sf::application::enemy::MAX_TYPE):(sf::application::enemy::MAX_ARMYS_TYPE);
+//             if((int)selectedObj() < max)
+//                     selectedObj(selectedObj() + 1);
+               break;
+       case '3':
+               mpInput->removeKeyboardListener(mpEditCommand);
+               mpInput->removeMouseListener(mpEditCommand);
+               delete mpEditCommand;
+               
+               if((int)mEditType == (disposition::command::MAX - 1)){
+                       mEditType = disposition::command::SET_SCROLLSPEED;
+               } else {
+                       mEditType = (disposition::command::TYPE)((int)mEditType + 1);
+               }
+               mpEditCommand = sf::application::disposition::Controller::create(mEditType);
+
+               mpEditCommand->load();
+               mpEditCommand->game(mpGame);
+       
+               mpInput->addKeyboardListener(mpEditCommand);
+               mpInput->addMouseListener(mpEditCommand);
+
+               break;
+       }
+
+}// keyDown()
+
+// \89E\83N\83\8a\83b\83N  \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void DispositionEditorImpl::rightButtonDown(const int screenX,const int screenY,const DWORD mkey)
+{
+       using namespace sf::application::disposition;
+       mpGame->controllerPtr()->deleteCommand((float)screenX,(float)screenY,mpGame->scrollY(),mEditType);
+}// rightButtonDown
+
+// \8d\83N\83\8a\83b\83N\82ª\89\9f\82³\82ê\82½ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void DispositionEditorImpl::leftButtonDown(const int screenX,const int screenY,const DWORD mkey)
+{
+       using namespace sf::application::disposition;
+       
+       // \83R\83}\83\93\83h\82ð\91}\93ü\82·\82é\81B //
+       
+       mpInput->removeKeyboardListener(mpEditCommand);
+       mpInput->removeMouseListener(mpEditCommand);
+
+       mpGame->controllerPtr()->insertCommand(mpGame->scrollY(),mpEditCommand);
+       
+       command::Interface *mpi = sf::application::disposition::Controller::create(mEditType);
+       mpi->copy(*mpEditCommand); 
+       mpEditCommand = mpi;
+//     mpEditCommand->load();
+//     mpEditCommand->game(mpGame);            
+
+       mpInput->addKeyboardListener(mpEditCommand);
+       mpInput->addMouseListener(mpEditCommand);
+
+}// leftButtonDown();
+
+// \93G\82Ì\83e\83N\83X\83`\83\83\82ð\83\8d\81[\83h\82·\82é \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void DispositionEditorImpl::load(void){
+}// load()
+
+// \93G\82Ì\83e\83N\83X\83`\83\83\82Ì\83A\83\93\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void DispositionEditorImpl::unload(void){
+}// unload()
+
+// \83}\83b\83v\8fî\95ñ\82Ì\95\\8e¦ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void DispositionEditorImpl::draw(){
+       if(!visibility())
+               return;
+
+       using namespace sf::application::disposition;
+
+       Controller::CommandList::iterator it = mpGame->controllerPtr()->commandList().begin();
+       while(it != mpGame->controllerPtr()->commandList().end())
+       {
+               it->second->load();
+               it->second->draw(this,it->first,false);
+               it++;
+       }
+
+       // \83J\81[\83\\83\8b\88Ê\92u
+
+       mpEditCommand->draw(this,0.0f,true);
+
+}// draw()
+
diff --git a/project/s2001Editor/DispositionEditorImpl.h b/project/s2001Editor/DispositionEditorImpl.h
new file mode 100644 (file)
index 0000000..27b7801
--- /dev/null
@@ -0,0 +1,130 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// DispositionEditorImpl.h: DispositionEditorImpl \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+// \94z\92u\83G\83f\83B\83^\83N\83\89\83X
+//     \97\9a\97ð\81F
+// $Log: DispositionEditorImpl.h,v $
+// Revision 1.1.1.1  2001/11/06 21:29:04  fujiwara
+// no message
+//
+// Revision 1.1  2001/10/28 21:40:35  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.6  2001/07/09 20:30:08  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.5  2001/07/01 01:03:43  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.4  2001/05/17 12:34:10  fujiwara
+// \92n\8fã\93G\83T\83\93\83v\83\8b\8dì\90¬
+//
+// Revision 1.3  2001/05/12 00:50:48  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_EDITOR_H__78B4933E_229E_4ACD_9183_C1E688557FE7__INCLUDED_)
+#define AFX_EDITOR_H__78B4933E_229E_4ACD_9183_C1E688557FE7__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "AbstractScene.h"
+namespace sf {
+       namespace application {
+               namespace scene {
+
+class DispositionEditorImpl : public sf::system::input::mouse::Listener ,
+       public sf::system::input::keyboard::Listener ,public AbstractScene
+       , public sf::system::console::ObjRectangle
+{
+
+public:
+       
+       // LIFECYCLE //
+       
+       DispositionEditorImpl(DispositionEditorParameter *pDispositionEditorParam);
+       virtual ~DispositionEditorImpl();
+       
+       // OPERATIONS //
+       
+       void move(void);
+
+       const TYPE type() const{return DISPOSITION_EDITOR;};
+
+       void endOfScene(Scene * const pScene);
+       void exitKeyPressed(Scene * const pScene);
+
+       // \83}\83E\83X\83\8a\83X\83i\81[
+       void leftButtonDown(const int screenX,const int screenY,const DWORD mkey);
+       void leftButtonUp(const int screenX,const int screenY,const DWORD mkey){;};
+       void leftButtonDoubleClick(const int screenX,const int screenY,const DWORD mkey){;};
+       void rightButtonDown(const int screenX,const int screenY,const DWORD mkey);
+       void rightButtonUp(const int screenX,const int screenY,const DWORD mkey){;};
+       void rightButtonDoubleClick(const int screenX,const int screenY,const DWORD mkey){;};
+       void mouseMove(const int screenX,const int screenY,const DWORD mkey)
+       { 
+               mMouseX = screenX; mMouseY = screenY;
+       };
+
+       void mouseWheel(const int screenX,const int screenY,const DWORD mkey);
+       
+       const bool isListeningMouse(void) const {return mbCallBack;};
+       void mouseTalkerIsDeleted(void){ mpInput = NULL;};
+
+       const float mouseX(void) const { return mMouseX;};
+       const float mouseY(void) const { return mMouseY;};
+
+       void keyDown(const DWORD keyCode,const DWORD extKeyCode);
+       void keyUp(const DWORD keyCode,const DWORD extKeyCode){};
+       const bool isListeningKeyboard(void) const {return mbListening;};
+       void keyboardTalkerIsDeleted(void){ mpInput = NULL;};
+       
+       void changeCommand(const int commandID);
+
+       // 
+       void load(void);
+       void unload(void);
+       void draw(void);
+
+       static const DWORD CURRENT_SPECULAR;
+       static const DWORD NORMAL_SPECULAR;
+private:
+       enum EDIT_MODE {
+               ENEMY,
+               ARMY
+       } mEditMode;
+       void initialize(void);
+       
+
+       float mMouseX,mMouseY;
+
+       bool mbCallBack;
+       bool mbListening;
+       
+       sf::application::disposition::command::TYPE mEditType;
+       sf::application::scene::Game::DIFFICULTY mDifficulty;
+       
+       enum STATE {
+               INITIALIZE,
+               MAIN,
+               END
+       } mState;
+
+       sf::application::disposition::command::Interface *mpEditCommand;
+       
+       Game *mpGame;
+       int mMax;
+
+};// DispositionEditorImpl
+               }
+       }
+}
+
+#endif // !defined(AFX_EDITOR_H__78B4933E_229E_4ACD_9183_C1E688557FE7__INCLUDED_)
diff --git a/project/s2001Editor/PathEditorImpl.cpp b/project/s2001Editor/PathEditorImpl.cpp
new file mode 100644 (file)
index 0000000..df43868
--- /dev/null
@@ -0,0 +1,20 @@
+// PathEditor.cpp: PathEditor \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//
+//////////////////////////////////////////////////////////////////////
+
+#include "stdafx.h"
+#include "PathEditor.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+PathEditor::PathEditor()
+{
+
+}
+
+PathEditor::~PathEditor()
+{
+
+}
diff --git a/project/s2001Editor/PathEditorImpl.h b/project/s2001Editor/PathEditorImpl.h
new file mode 100644 (file)
index 0000000..d8b3336
--- /dev/null
@@ -0,0 +1,26 @@
+// PathEditor.h: PathEditor \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//
+//////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_PATHEDITOR_H__669D7859_B992_493E_8E18_57094ACC2CD0__INCLUDED_)
+#define AFX_PATHEDITOR_H__669D7859_B992_493E_8E18_57094ACC2CD0__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+namespace sf {
+       namespace application {
+               namespace scene {
+
+class PathEditor : public sf::system::input::mouse::Listener ,
+       public sf::system::input::keyboard::Listener ,public AbstractScene
+       , public sf::system::console::ObjRectangle
+{
+public:
+       PathEditor();
+       virtual ~PathEditor();
+};
+               }// scene
+       }// application
+}// sf
+#endif // !defined(AFX_PATHEDITOR_H__669D7859_B992_493E_8E18_57094ACC2CD0__INCLUDED_)
diff --git a/project/s2001Editor/ReadMe.txt b/project/s2001Editor/ReadMe.txt
new file mode 100644 (file)
index 0000000..6128fd5
--- /dev/null
@@ -0,0 +1,41 @@
+========================================================================
+       \83_\83C\83i\83~\83b\83\83\8a\83\93\83\83\89\83C\83u\83\89\83\8a : s2001Editor
+========================================================================
+
+
+AppWizard \82Í\82±\82Ì s2001Editor DLL \82ð\8dì\90¬\82µ\82Ü\82µ\82½\81B
+
+\82±\82Ì\83t\83@\83C\83\8b\82É\82Í s2001Editor \83A\83v\83\8a\83P\81[\83V\83\87\83\93\82ð\8d\\90¬\82µ\82Ä\82¢\82é\8ae\83t\83@\83C\83\8b\82Ì\8aT\97v
+\90à\96¾\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82Ü\82·\81B
+
+s2001Editor.dsp
+    \82±\82Ì\83t\83@\83C\83\8b (\83v\83\8d\83W\83F\83N\83\83t\83@\83C\83\8b\82Í\83v\83\8d\83W\83F\83N\83\83\8c\83x\83\8b\82Ì\8fî\95ñ\82ð\8aÜ\82Ý\81A
+    \83V\83\93\83O\83\8b \83v\83\8d\83W\83F\83N\83g\82Ü\82½\82Í\83T\83\83v\83\8d\83W\83F\83N\83g\82Ì\83r\83\8b\83h\82É\8eg\97p\82³\82ê\82Ü\82·\81B\91¼\82Ì
+    \83\86\81[\83U\81[\82Æ\83v\83\8d\83W\83F\83N\83\83t\83@\83C\83\8b (.dsp) \82ð\8b¤\97L\82Å\82«\82Ü\82·\82ª\81A\83\81\83C\83\83t\83@\83C\83\8b
+    \82Í\83\8d\81[\83J\83\8b\82É\83G\83N\83X\83|\81[\83g\82µ\82Ä\82­\82¾\82³\82¢\81B
+s2001Editor.cpp
+    \82±\82Ì\83t\83@\83C\83\8b\82Í DLL \82Ì\92\86\90S\82Æ\82È\82é\83\\81[\83\83t\83@\83C\83\8b\82Å\82·\81B
+
+       \8dì\90¬\82³\82ê\82½\8fó\91Ô\82Å\82Í\81A\82±\82Ì DLL \82Í\83V\83\93\83{\83\8b\82Ì\83G\83N\83X\83|\81[\83g\82ð\8ds\82Á\82Ä\82¢\82Ü\82¹\82ñ\81B
+       \82»\82Ì\82½\82ß\83r\83\8b\83h\82ð\8ds\82Á\82Ä\82à .LIB \83t\83@\83C\83\8b\82Í\8dì\90¬\82³\82ê\82Ü\82¹\82ñ\81B\82±\82Ì\83v\83\8d\83W\83F\83N\83g\82ð
+       \91¼\82Ì\83v\83\8d\83W\83F\83N\83g\82É\88Ë\91\8aÖ\8cW\82ð\8e\9d\82½\82¹\82½\82¢\8fê\8d\87\82É\82Í\81A\82±\82Ì DLL \82©\82ç\83V\83\93\83{\83\8b\82ð
+       \83G\83N\83X\83|\81[\83g\82·\82é\82½\82ß\82Ì\83R\81[\83h\82ð\92Ç\89Á\82µ\82Ä\83\89\83C\83u\83\89\83\8a\82Ì\83G\83N\83X\83|\81[\83g\82ð\8ds\82¢\81A
+       \83v\83\8d\83W\83F\83N\83g\90Ý\92è\82Ì [\83\8a\83\93\83N] \83^\83u\8fã\82Å [LIB \83t\83@\83C\83\8b\82ð\90\90¬\82µ\82È\82¢] \83I\83v\83V\83\87\83\93
+       \82ð\83N\83\8a\83A\82·\82é\95K\97v\82ª\82 \82è\82Ü\82·\81B
+
+/////////////////////////////////////////////////////////////////////////////
+\82»\82Ì\91¼\82Ì\95W\8f\80\83t\83@\83C\83\8b:
+
+StdAfx.h, StdAfx.cpp
+    \82±\82ê\82ç\82Ì\83t\83@\83C\83\8b\82Í\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\82Ý\83w\83b\83_\81[\83t\83@\83C\83\8b (PCH) s2001Editor.pch
+    \82â\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\82Ý\8c^\83t\83@\83C\83\8b StdAfx.obj \82ð\8d\\92z\82·\82é\82½\82ß\82É\8eg\97p\82³\82ê\82Ü\82·\81B
+
+
+/////////////////////////////////////////////////////////////////////////////
+\82»\82Ì\91¼\82Ì\92\8d\88Ó:
+
+AppWizard \82Í "TODO:" \82Å\8en\82Ü\82é\83R\83\81\83\93\83g\82Å\81A\83\\81[\83X\83R\81[\83h\82Ì\92Ç\89Á\82â\83J\83X\83^\83}\83C\83Y\82Ì\95K\97v
+\82È\8fê\8f\8a\82ð\8e¦\82µ\82Ü\82·\81B
+
+
+/////////////////////////////////////////////////////////////////////////////
diff --git a/project/s2001Editor/StdAfx.cpp b/project/s2001Editor/StdAfx.cpp
new file mode 100644 (file)
index 0000000..ea9f15f
--- /dev/null
@@ -0,0 +1,8 @@
+// stdafx.cpp : \95W\8f\80\83C\83\93\83N\83\8b\81[\83h\83t\83@\83C\83\8b\82ð\8aÜ\82Þ\83\\81[\83\83t\83@\83C\83\8b
+//              s2001Editor.pch \90\90¬\82³\82ê\82é\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\83w\83b\83_\81[
+//              stdafx.obj \90\90¬\82³\82ê\82é\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\83^\83C\83v\8fî\95ñ
+
+#include "stdafx.h"
+
+// TODO: STDAFX.H \82É\8aÜ\82Ü\82ê\82Ä\82¢\82Ä\81A\82±\82Ì\83t\83@\83C\83\8b\82É\8bL\8fq\82³\82ê\82Ä\82¢\82È\82¢
+// \83w\83b\83_\81[\83t\83@\83C\83\8b\82ð\92Ç\89Á\82µ\82Ä\82­\82¾\82³\82¢\81B
diff --git a/project/s2001Editor/StdAfx.h b/project/s2001Editor/StdAfx.h
new file mode 100644 (file)
index 0000000..9229055
--- /dev/null
@@ -0,0 +1,24 @@
+// stdafx.h : \95W\8f\80\82Ì\83V\83X\83e\83\80 \83C\83\93\83N\83\8b\81[\83\83t\83@\83C\83\8b\81A
+//            \82Ü\82½\82Í\8eQ\8fÆ\89ñ\90\94\82ª\91½\82­\81A\82©\82Â\82 \82Ü\82è\95Ï\8dX\82³\82ê\82È\82¢
+//            \83v\83\8d\83W\83F\83N\83g\90ê\97p\82Ì\83C\83\93\83N\83\8b\81[\83\83t\83@\83C\83\8b\82ð\8bL\8fq\82µ\82Ü\82·\81B
+//
+
+#if !defined(AFX_STDAFX_H__818FF7D8_62DD_42B8_99F5_BB5E59CF7359__INCLUDED_)
+#define AFX_STDAFX_H__818FF7D8_62DD_42B8_99F5_BB5E59CF7359__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+
+// \82±\82Ì\88Ê\92u\82É\83w\83b\83_\81[\82ð\91}\93ü\82µ\82Ä\82­\82¾\82³\82¢
+#define WIN32_LEAN_AND_MEAN            // Windows \83w\83b\83_\81[\82©\82ç\96w\82Ç\8eg\97p\82³\82ê\82È\82¢\83X\83^\83b\83t\82ð\8f\9c\8aO\82µ\82Ü\82·
+
+#include <windows.h>
+
+// TODO: \83v\83\8d\83O\83\89\83\80\82Å\95K\97v\82È\83w\83b\83_\81[\8eQ\8fÆ\82ð\92Ç\89Á\82µ\82Ä\82­\82¾\82³\82¢\81B
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ \82Í\91O\8ds\82Ì\92¼\91O\82É\92Ç\89Á\82Ì\90é\8c¾\82ð\91}\93ü\82µ\82Ü\82·\81B
+
+#endif // !defined(AFX_STDAFX_H__818FF7D8_62DD_42B8_99F5_BB5E59CF7359__INCLUDED_)
diff --git a/project/s2001Editor/s2001Editor.cpp b/project/s2001Editor/s2001Editor.cpp
new file mode 100644 (file)
index 0000000..ca5fab5
--- /dev/null
@@ -0,0 +1,38 @@
+// s2001Editor.cpp : DLL \83A\83v\83\8a\83P\81[\83V\83\87\83\93\97p\82Ì\83G\83\93\83g\83\8a \83|\83C\83\93\83g\82ð\92è\8b`\82µ\82Ü\82·\81B
+//
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+#include "stdafx.h"
+#include <string>
+#include <map>
+//#include "s2001objs.h"
+
+typedef sf::application::scene::Scene* (*SceneCreateFunc)(int);
+
+std::map<std::string,int> SceneNameMap;
+std::map<int,SceneCreateFunc> SceneMap;
+
+BOOL APIENTRY DllMain( HANDLE hModule, 
+                       DWORD  ul_reason_for_call, 
+                       LPVOID lpReserved
+                                        )
+{
+    //
+       //SceneNameMap["DispositionEditor"] = ID_DisposiotionEditor;
+       //Scene
+       return TRUE;
+}
+
+extern "C" sf::application::scene::Scene *  APIENTRY  createSceneFromID(int SceneID)
+{
+
+}
+
+extern "C" sf::application::scene::Scene *  APIENTRY  createSceneFromName(std::string name)
+{
+
+}
+
+extern "C" sf::application::scene::Scene *  APIENTRY  idOfSceneName(int SceneID)
+{
+
+}
diff --git a/project/s2001Editor/s2001Editor.dsp b/project/s2001Editor/s2001Editor.dsp
new file mode 100644 (file)
index 0000000..6ff803f
--- /dev/null
@@ -0,0 +1,152 @@
+# Microsoft Developer Studio Project File - Name="s2001Editor" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** \95Ò\8fW\82µ\82È\82¢\82Å\82­\82¾\82³\82¢ **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=s2001Editor - Win32 Debug
+!MESSAGE \82±\82ê\82Í\97L\8cø\82ÈÒ²¸Ì§²Ù\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81\82±\82ÌÌßÛ¼Þª¸Ä\82ðËÞÙÄÞ\82·\82é\82½\82ß\82É\82Í NMAKE \82ð\8eg\97p\82µ\82Ä\82­\82¾\82³\82¢\81B
+!MESSAGE [Ò²¸Ì§²Ù\82Ì´¸½Îß°Ä] ºÏÝÄÞ\82ð\8eg\97p\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢
+!MESSAGE 
+!MESSAGE NMAKE /f "s2001Editor.mak".
+!MESSAGE 
+!MESSAGE NMAKE \82Ì\8eÀ\8ds\8e\9e\82É\8d\\90¬\82ð\8ew\92è\82Å\82«\82Ü\82·
+!MESSAGE ºÏÝÄޠײÝ\8fã\82ÅϸÛ\82Ì\90Ý\92è\82ð\92è\8b`\82µ\82Ü\82·\81B\97á:
+!MESSAGE 
+!MESSAGE NMAKE /f "s2001Editor.mak" CFG="s2001Editor - Win32 Debug"
+!MESSAGE 
+!MESSAGE \91I\91ð\89Â\94\\82ÈËÞÙÄÞ Ó°ÄÞ:
+!MESSAGE 
+!MESSAGE "s2001Editor - Win32 Release" ("Win32 (x86) Dynamic-Link Library" \97p)
+!MESSAGE "s2001Editor - Win32 Debug" ("Win32 (x86) Dynamic-Link Library" \97p)
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "s2001Editor - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "S2001EDITOR_EXPORTS" /Yu"stdafx.h" /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\sfglib" /I "..\s2001" /I ".." /I "..\s2001scene" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "S2001EDITOR_EXPORTS" /Yu"stdafx.h" /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x411 /d "NDEBUG"
+# ADD RSC /l 0x411 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD LINK32 ..\sfglib.lib ..\s2001.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib kernel32.lib user32.lib gdi32.lib ole32.lib advapi32.lib /nologo /dll /machine:I386
+
+!ELSEIF  "$(CFG)" == "s2001Editor - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "S2001EDITOR_EXPORTS" /Yu"stdafx.h" /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\sfglib" /I "..\s2001" /I ".." /I "..\s2001scene" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "S2001EDITOR_EXPORTS" /YX /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x411 /d "_DEBUG"
+# ADD RSC /l 0x411 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 ..\sfglib.lib ..\s2001.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib kernel32.lib user32.lib gdi32.lib ole32.lib advapi32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+
+!ENDIF 
+
+# Begin Target
+
+# Name "s2001Editor - Win32 Release"
+# Name "s2001Editor - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\BGEditorImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\DispositionEditorImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\PathEditorImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\s2001Editor.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.cpp
+# ADD CPP /Yc"stdafx.h"
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\BGEditor.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\BGEditorImpl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\DispositionEditor.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\DispositionEditorImpl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\PathEditorImpl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# Begin Source File
+
+SOURCE=.\ReadMe.txt
+# End Source File
+# End Target
+# End Project
diff --git a/project/s2001Editor/s2001Editor.plg b/project/s2001Editor/s2001Editor.plg
new file mode 100644 (file)
index 0000000..f9a77dc
--- /dev/null
@@ -0,0 +1,53 @@
+<html>
+<body>
+<pre>
+<h1>ËÞÙÄÞ\82ÌÛ¸Þ</h1>
+<h3>
+--------------------\8d\\90¬: s2001Editor - Win32 Debug--------------------
+</h3>
+<h3>ºÏÝÄޠײÝ</h3>
+\88ê\8e\9ȩ²Ù "C:\WINDOWS\TEMP\RSPF270.TMP" \82ð\8dì\90¬\82µ\81A\8e\9f\82Ì\93à\97e\82ð\8bL\98^\82µ\82Ü\82·
+[
+/nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\sfglib" /I "..\s2001" /I ".." /I "..\s2001scene" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "S2001EDITOR_EXPORTS" /Fp"Debug/s2001Editor.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c 
+"C:\My Documents\genx\project\s2001Editor\BGEditorImpl.cpp"
+]
+Creating command line "cl.exe @C:\WINDOWS\TEMP\RSPF270.TMP" 
+<h3>±³ÄÌ߯Ġ³¨ÝÄÞ³</h3>
+ºÝÊß²Ù\92\86...
+BGEditorImpl.cpp
+c:\my documents\genx\project\s2001scene\game.h(104) : error C2039: 'disposition' : 'application' \82ÌÒÝÊÞ\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81B
+c:\my documents\genx\project\s2001scene\game.h(104) : error C2143: \8d\\95¶´×° : ';' \82ª '*' \82Ì\91O\82É\95K\97v\82Å\82·\81B
+c:\my documents\genx\project\s2001scene\game.h(104) : error C2433: 'Controller' : 'virtual' \82ÍÃÞ°À\90é\8c¾\82ð\82·\82é\82Ì\82É\8eg\97p\82Å\82«\82Ü\82¹\82ñ\81B
+c:\my documents\genx\project\s2001scene\game.h(104) : error C2501: 'Controller' : \8e¯\95Ê\96¼\82ð\90é\8c¾\82·\82é\82Ì\82É\81A\8c^\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B
+c:\my documents\genx\project\s2001scene\game.h(104) : error C2501: 'controllerPtr' : \8e¯\95Ê\96¼\82ð\90é\8c¾\82·\82é\82Ì\82É\81A\8c^\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B
+c:\my documents\genx\project\s2001scene\game.h(104) : error C2253: 'controllerPtr' : \89¼\91z\82Å\82È\82¢\8aÖ\90\94\82ª\8f\83\90\88\89¼\91z\8aÖ\90\94\82Å\82 \82é\82Æ\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82·\81B
+c:\my documents\genx\project\s2001\dispositioncontrol.h(507) : error C2504: 'Controller' : \92è\8b`\82³\82ê\82Ä\82¢\82È\82¢\8aî\96{¸×½\82ª\90é\8c¾\82³\82ê\82Ä\82¢\82Ü\82·\81B
+c:\my documents\genx\project\s2001\dispositioncontrol.h(557) : error C2143: \8d\\95¶´×° : ';' \82ª '&' \82Ì\91O\82É\95K\97v\82Å\82·\81B
+c:\my documents\genx\project\s2001\dispositioncontrol.h(557) : error C2501: 'CommandList' : \8e¯\95Ê\96¼\82ð\90é\8c¾\82·\82é\82Ì\82É\81A\8c^\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B
+c:\my documents\genx\project\s2001\dispositioncontrol.h(557) : error C2501: 'commandList' : \8e¯\95Ê\96¼\82ð\90é\8c¾\82·\82é\82Ì\82É\81A\8c^\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B
+c:\my documents\genx\project\s2001\dispositioncontrol.h(557) : warning C4183: 'commandList': ÒÝÊÞ\8aÖ\90\94\92è\8b`\82ͺݽÄ׸À \82Ì\82æ\82¤\82Å\82·\82ª\96¼\91O\82ª\88Í\82Ü\82ê\82½¸×½\82Æ\88ê\92v\82µ\82Ü\82¹\82ñ\81B
+c:\my documents\genx\project\s2001\dispositioncontrol.h(565) : error C2146: \8d\\95¶´×° : ';' \82ª\81A\8e¯\95Ê\8eq 'mData' \82Ì\91O\82É\95K\97v\82Å\82·\81B
+c:\my documents\genx\project\s2001\dispositioncontrol.h(565) : error C2501: 'CommandList' : \8e¯\95Ê\96¼\82ð\90é\8c¾\82·\82é\82Ì\82É\81A\8c^\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B
+c:\my documents\genx\project\s2001\dispositioncontrol.h(565) : error C2501: 'mData' : \8e¯\95Ê\96¼\82ð\90é\8c¾\82·\82é\82Ì\82É\81A\8c^\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B
+c:\my documents\genx\project\s2001\dispositioncontrol.h(566) : error C2653: 'CommandList' : \8e¯\95Ê\8eq\82ª¸×½\96¼\82Å\82à\96¼\91O\8bó\8aÔ\96¼\82Å\82à\82 \82è\82Ü\82¹\82ñ\81B
+c:\my documents\genx\project\s2001\dispositioncontrol.h(566) : error C2146: \8d\\95¶´×° : ';' \82ª\81A\8e¯\95Ê\8eq 'mDataIter' \82Ì\91O\82É\95K\97v\82Å\82·\81B
+c:\my documents\genx\project\s2001\dispositioncontrol.h(566) : error C2501: 'iterator' : \8e¯\95Ê\96¼\82ð\90é\8c¾\82·\82é\82Ì\82É\81A\8c^\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B
+c:\my documents\genx\project\s2001\dispositioncontrol.h(566) : error C2501: 'mDataIter' : \8e¯\95Ê\96¼\82ð\90é\8c¾\82·\82é\82Ì\82É\81A\8c^\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B
+c:\my documents\genx\project\s2001\dispositioncontrol.h(572) : error C2146: \8d\\95¶´×° : ';' \82ª\81A\8e¯\95Ê\8eq 'mpCreateFunc' \82Ì\91O\82É\95K\97v\82Å\82·\81B
+c:\my documents\genx\project\s2001\dispositioncontrol.h(572) : error C2501: 'mpCreateFunc' : \8e¯\95Ê\96¼\82ð\90é\8c¾\82·\82é\82Ì\82É\81A\8c^\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B
+c:\my documents\genx\project\s2001editor\bgeditorimpl.h(47) : error C2629: 'class sf::application::scene::BGEditorImpl (' \82Í\95s\90³\82Å\82·\81B
+c:\my documents\genx\project\s2001editor\bgeditorimpl.h(47) : error C2238: ';' \82Ì\91O\82É\95s\90³\82ÈÄ°¸Ý\82ª\82 \82è\82Ü\82·\81B
+c:\my documents\genx\project\s2001editor\bgeditorimpl.cpp(93) : error C2084: \8aÖ\90\94 '__thiscall sf::application::scene::BGEditorImpl::sf::application::scene::BGEditorImpl(void)' \82Í\82·\82Å\82É\8eÀ\91Ì\82ð\8e\9d\82Á\82Ä\82¢\82Ü\82·\81B
+c:\my documents\genx\project\s2001editor\bgeditorimpl.cpp(162) : warning C4541: 'dynamic_cast' \82ª /GR- \82ð\8eg\97p\82µ\82½ÎßØӰ̨¯¸\8c^ 'class sf::application::scene::Scene' \82Å\8eg\97p\82³\82ê\82Ä\82¢\82Ü\82·; \93®\8dì\8c\8b\89Ê\82Í\95Û\8fØ\82³\82ê\82Ü\82¹\82ñ\81B
+c:\my documents\genx\project\s2001editor\bgeditorimpl.cpp(221) : error C2653: 'Container' : \8e¯\95Ê\8eq\82ª¸×½\96¼\82Å\82à\96¼\91O\8bó\8aÔ\96¼\82Å\82à\82 \82è\82Ü\82¹\82ñ\81B
+c:\my documents\genx\project\s2001editor\bgeditorimpl.cpp(221) : error C2039: 'add' : 'System' \82ÌÒÝÊÞ\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81B
+        c:\my documents\genx\project\sfglib\system.h(72) : 'System' \82Ì\90é\8c¾\82ð\8am\94F\82µ\82Ä\82­\82¾\82³\82¢\81B
+cl.exe \82Ì\8eÀ\8ds´×°
+
+
+
+<h3>\8c\8b\89Ê</h3>
+BGEditorImpl.obj - ´×° 24\81A\8cx\8d\90 2
+</pre>
+</body>
+</html>
diff --git a/project/s2001Editor/s2001Editor.vcproj b/project/s2001Editor/s2001Editor.vcproj
new file mode 100644 (file)
index 0000000..1c009e1
--- /dev/null
@@ -0,0 +1,384 @@
+<?xml version="1.0" encoding="shift_jis"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="s2001Editor"
+       ProjectGUID="{B1B40E29-61C2-40DF-BE5B-94988F2571CE}"
+       TargetFrameworkVersion="131072"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory=".\Debug"
+                       IntermediateDirectory=".\Debug"
+                       ConfigurationType="2"
+                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Debug/s2001Editor.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="..\sfglib,..\s2001,..,..\s2001scene"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;S2001EDITOR_EXPORTS"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="1"
+                               UsePrecompiledHeader="0"
+                               PrecompiledHeaderFile=".\Debug/s2001Editor.pch"
+                               AssemblerListingLocation=".\Debug/"
+                               ObjectFile=".\Debug/"
+                               ProgramDataBaseFileName=".\Debug/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               DebugInformationFormat="4"
+                               CompileAs="0"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               Culture="1041"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="..\sfglib.lib ..\s2001.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib"
+                               OutputFile=".\Debug/s2001Editor.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               GenerateDebugInformation="true"
+                               ProgramDatabaseFile=".\Debug/s2001Editor.pdb"
+                               RandomizedBaseAddress="1"
+                               DataExecutionPrevention="0"
+                               ImportLibrary=".\Debug/s2001Editor.lib"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory=".\Release"
+                       IntermediateDirectory=".\Release"
+                       ConfigurationType="2"
+                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Release/s2001Editor.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               InlineFunctionExpansion="1"
+                               AdditionalIncludeDirectories="..\sfglib,..\s2001,..,..\s2001scene"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;S2001EDITOR_EXPORTS"
+                               StringPooling="true"
+                               RuntimeLibrary="0"
+                               EnableFunctionLevelLinking="true"
+                               UsePrecompiledHeader="2"
+                               PrecompiledHeaderThrough="stdafx.h"
+                               PrecompiledHeaderFile=".\Release/s2001Editor.pch"
+                               AssemblerListingLocation=".\Release/"
+                               ObjectFile=".\Release/"
+                               ProgramDataBaseFileName=".\Release/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               CompileAs="0"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               Culture="1041"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="..\sfglib.lib ..\s2001.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib"
+                               OutputFile=".\Release/s2001Editor.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               ProgramDatabaseFile=".\Release/s2001Editor.pdb"
+                               RandomizedBaseAddress="1"
+                               DataExecutionPrevention="0"
+                               ImportLibrary=".\Release/s2001Editor.lib"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source Files"
+                       Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+                       >
+                       <File
+                               RelativePath="BGEditorImpl.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="DispositionEditorImpl.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="PathEditorImpl.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="s2001Editor.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="StdAfx.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                               UsePrecompiledHeader="1"
+                                               PrecompiledHeaderThrough="stdafx.h"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"
+                                               UsePrecompiledHeader="1"
+                                       />
+                               </FileConfiguration>
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Header Files"
+                       Filter="h;hpp;hxx;hm;inl"
+                       >
+                       <File
+                               RelativePath="BGEditor.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="BGEditorImpl.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="DispositionEditor.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="DispositionEditorImpl.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="PathEditorImpl.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="StdAfx.h"
+                               >
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Resource Files"
+                       Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+                       >
+               </Filter>
+               <File
+                       RelativePath="ReadMe.txt"
+                       >
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/project/s2001Editor/s2001Editor.vcproj.7.10.old b/project/s2001Editor/s2001Editor.vcproj.7.10.old
new file mode 100644 (file)
index 0000000..620a839
--- /dev/null
@@ -0,0 +1,287 @@
+<?xml version="1.0" encoding="shift_jis"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="s2001Editor"
+       SccProjectName=""
+       SccLocalPath="">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory=".\Debug"
+                       IntermediateDirectory=".\Debug"
+                       ConfigurationType="2"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="FALSE"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="..\sfglib,..\s2001,..,..\s2001scene"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;S2001EDITOR_EXPORTS"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="1"
+                               UsePrecompiledHeader="2"
+                               PrecompiledHeaderFile=".\Debug/s2001Editor.pch"
+                               AssemblerListingLocation=".\Debug/"
+                               ObjectFile=".\Debug/"
+                               ProgramDataBaseFileName=".\Debug/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="TRUE"
+                               DebugInformationFormat="4"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="..\sfglib.lib ..\s2001.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib"
+                               OutputFile=".\Debug/s2001Editor.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               GenerateDebugInformation="TRUE"
+                               ProgramDatabaseFile=".\Debug/s2001Editor.pdb"
+                               ImportLibrary=".\Debug/s2001Editor.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               MkTypLibCompatible="TRUE"
+                               SuppressStartupBanner="TRUE"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Debug/s2001Editor.tlb"
+                               HeaderFileName=""/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               Culture="1041"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory=".\Release"
+                       IntermediateDirectory=".\Release"
+                       ConfigurationType="2"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="FALSE"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               InlineFunctionExpansion="1"
+                               AdditionalIncludeDirectories="..\sfglib,..\s2001,..,..\s2001scene"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;S2001EDITOR_EXPORTS"
+                               StringPooling="TRUE"
+                               RuntimeLibrary="0"
+                               EnableFunctionLevelLinking="TRUE"
+                               UsePrecompiledHeader="3"
+                               PrecompiledHeaderThrough="stdafx.h"
+                               PrecompiledHeaderFile=".\Release/s2001Editor.pch"
+                               AssemblerListingLocation=".\Release/"
+                               ObjectFile=".\Release/"
+                               ProgramDataBaseFileName=".\Release/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="TRUE"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="..\sfglib.lib ..\s2001.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib"
+                               OutputFile=".\Release/s2001Editor.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               ProgramDatabaseFile=".\Release/s2001Editor.pdb"
+                               ImportLibrary=".\Release/s2001Editor.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="TRUE"
+                               SuppressStartupBanner="TRUE"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Release/s2001Editor.tlb"
+                               HeaderFileName=""/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               Culture="1041"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source Files"
+                       Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+                       <File
+                               RelativePath="BGEditorImpl.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="DispositionEditorImpl.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="PathEditorImpl.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="s2001Editor.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="StdAfx.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                               UsePrecompiledHeader="1"
+                                               PrecompiledHeaderThrough="stdafx.h"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS;$(NoInherit)"
+                                               UsePrecompiledHeader="1"/>
+                               </FileConfiguration>
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Header Files"
+                       Filter="h;hpp;hxx;hm;inl">
+                       <File
+                               RelativePath="BGEditor.h">
+                       </File>
+                       <File
+                               RelativePath="BGEditorImpl.h">
+                       </File>
+                       <File
+                               RelativePath="DispositionEditor.h">
+                       </File>
+                       <File
+                               RelativePath="DispositionEditorImpl.h">
+                       </File>
+                       <File
+                               RelativePath="PathEditorImpl.h">
+                       </File>
+                       <File
+                               RelativePath="StdAfx.h">
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Resource Files"
+                       Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+               </Filter>
+               <File
+                       RelativePath="ReadMe.txt">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/project/s2001Editor/s2001Editor.vcproj.satoshi-PC.satoshi.user b/project/s2001Editor/s2001Editor.vcproj.satoshi-PC.satoshi.user
new file mode 100644 (file)
index 0000000..2f8e275
--- /dev/null
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="shift_jis"?>
+<VisualStudioUserFile
+       ProjectType="Visual C++"
+       Version="9.00"
+       ShowAllFiles="false"
+       >
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       >
+                       <DebugSettings
+                               Command=""
+                               WorkingDirectory=""
+                               CommandArguments=""
+                               Attach="false"
+                               DebuggerType="3"
+                               Remote="1"
+                               RemoteMachine="SATOSHI-PC"
+                               RemoteCommand=""
+                               HttpUrl=""
+                               PDBPath=""
+                               SQLDebugging=""
+                               Environment=""
+                               EnvironmentMerge="true"
+                               DebuggerFlavor=""
+                               MPIRunCommand=""
+                               MPIRunArguments=""
+                               MPIRunWorkingDirectory=""
+                               ApplicationCommand=""
+                               ApplicationArguments=""
+                               ShimCommand=""
+                               MPIAcceptMode=""
+                               MPIAcceptFilter=""
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       >
+                       <DebugSettings
+                               Command=""
+                               WorkingDirectory=""
+                               CommandArguments=""
+                               Attach="false"
+                               DebuggerType="3"
+                               Remote="1"
+                               RemoteMachine="SATOSHI-PC"
+                               RemoteCommand=""
+                               HttpUrl=""
+                               PDBPath=""
+                               SQLDebugging=""
+                               Environment=""
+                               EnvironmentMerge="true"
+                               DebuggerFlavor=""
+                               MPIRunCommand=""
+                               MPIRunArguments=""
+                               MPIRunWorkingDirectory=""
+                               ApplicationCommand=""
+                               ApplicationArguments=""
+                               ShimCommand=""
+                               MPIAcceptMode=""
+                               MPIAcceptFilter=""
+                       />
+               </Configuration>
+       </Configurations>
+</VisualStudioUserFile>
diff --git a/project/s2001Editor/s2001Editor.vcxproj b/project/s2001Editor/s2001Editor.vcxproj
new file mode 100644 (file)
index 0000000..1994c27
--- /dev/null
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{B1B40E29-61C2-40DF-BE5B-94988F2571CE}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>Win32</TargetEnvironment>
+      <TypeLibraryName>.\Debug/s2001Editor.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>..\sfglib;..\s2001;..;..\s2001scene;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;S2001EDITOR_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <PrecompiledHeaderOutputFile>.\Debug/s2001Editor.pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
+      <ObjectFileName>.\Debug/</ObjectFileName>
+      <ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <CompileAs>Default</CompileAs>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0411</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>..\sfglib.lib;..\s2001.lib;dinput8.lib;Dxerr8.lib;d3dx8.lib;d3d8.lib;dxguid.lib;d3dxof.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>.\Debug/s2001Editor.dll</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>.\Debug/s2001Editor.pdb</ProgramDatabaseFile>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+      <ImportLibrary>.\Debug/s2001Editor.lib</ImportLibrary>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>Win32</TargetEnvironment>
+      <TypeLibraryName>.\Release/s2001Editor.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>..\sfglib;..\s2001;..;..\s2001scene;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;S2001EDITOR_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderOutputFile>.\Release/s2001Editor.pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>.\Release/</AssemblerListingLocation>
+      <ObjectFileName>.\Release/</ObjectFileName>
+      <ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <CompileAs>Default</CompileAs>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0411</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>..\sfglib.lib;..\s2001.lib;dinput8.lib;Dxerr8.lib;d3dx8.lib;d3d8.lib;dxguid.lib;d3dxof.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>.\Release/s2001Editor.dll</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <ProgramDatabaseFile>.\Release/s2001Editor.pdb</ProgramDatabaseFile>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+      <ImportLibrary>.\Release/s2001Editor.lib</ImportLibrary>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="BGEditorImpl.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="DispositionEditorImpl.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="PathEditorImpl.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="s2001Editor.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="StdAfx.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">stdafx.h</PrecompiledHeaderFile>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001EDITOR_EXPORTS</PreprocessorDefinitions>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="BGEditor.h" />
+    <ClInclude Include="BGEditorImpl.h" />
+    <ClInclude Include="DispositionEditor.h" />
+    <ClInclude Include="DispositionEditorImpl.h" />
+    <ClInclude Include="PathEditorImpl.h" />
+    <ClInclude Include="StdAfx.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="ReadMe.txt" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/project/s2001Editor/s2001Editor.vcxproj.filters b/project/s2001Editor/s2001Editor.vcxproj.filters
new file mode 100644 (file)
index 0000000..5a418b0
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{b58dd40d-c6eb-4d58-beec-a53442229e6f}</UniqueIdentifier>
+      <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{fc32e61e-f656-4d62-9fd1-2175d4517020}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{831bb20e-2218-43cb-bc4d-d0108a6614be}</UniqueIdentifier>
+      <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="BGEditorImpl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="DispositionEditorImpl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="PathEditorImpl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="s2001Editor.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="StdAfx.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="BGEditor.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="BGEditorImpl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="DispositionEditor.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="DispositionEditorImpl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="PathEditorImpl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="StdAfx.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="ReadMe.txt" />
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/project/s2001Editor/s2001Editor.vcxproj.user b/project/s2001Editor/s2001Editor.vcxproj.user
new file mode 100644 (file)
index 0000000..ace9a86
--- /dev/null
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+</Project>
\ No newline at end of file
diff --git a/project/s2001Editor/s2001editor.cfg b/project/s2001Editor/s2001editor.cfg
new file mode 100644 (file)
index 0000000..5cb43be
--- /dev/null
@@ -0,0 +1,901 @@
+# Doxyfile 1.2.13
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# General configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
+# by quotes) that should identify the project.
+
+PROJECT_NAME           = s2001
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
+# This could be handy for archiving the generated documentation or 
+# if some version control system is used.
+
+PROJECT_NUMBER         = 
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
+# base path where the generated documentation will be put. 
+# If a relative path is entered, it will be relative to the location 
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = c:/inetpub/wwwroot/s2001/s2001editor
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
+# documentation generated by doxygen is written. Doxygen will use this 
+# information to generate all constant output in the proper language. 
+# The default language is English, other supported languages are: 
+# Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French, 
+# German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, 
+# Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish.
+
+OUTPUT_LANGUAGE        = Japanese
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
+# documentation are documented, even if no documentation was available. 
+# Private class members and static file members will be hidden unless 
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = YES
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file 
+# will be included in the documentation.
+
+EXTRACT_STATIC         = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
+# defined locally in source files will be included in the documentation. 
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
+# undocumented members of documented classes, files or namespaces. 
+# If set to NO (the default) these members will be included in the 
+# various overviews, but no documentation section is generated. 
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
+# undocumented classes that are normally visible in the class hierarchy. 
+# If set to NO (the default) these class will be included in the various 
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
+# include brief member descriptions after the members that are listed in 
+# the file and class documentation (similar to JavaDoc). 
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
+# the brief description of a member or function before the detailed description. 
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
+# Doxygen will generate a detailed section even if there is only a brief 
+# description.
+
+ALWAYS_DETAILED_SEC    = YES
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited 
+# members of a class in the documentation of that class as if those members were 
+# ordinary class members. Constructors, destructors and assignment operators of 
+# the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
+# path before files name in the file list and in the header files. If set 
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
+# can be used to strip a user defined part of the path. Stripping is 
+# only done if one of the specified strings matches the left-hand part of 
+# the path. It is allowed to use relative paths in the argument list.
+
+STRIP_FROM_PATH        = "c:\my documents\genx\project"
+
+# The INTERNAL_DOCS tag determines if documentation 
+# that is typed after a \internal command is included. If the tag is set 
+# to NO (the default) then the documentation will be excluded. 
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
+# doxygen to hide any special comment blocks from generated source code 
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
+# file names in lower case letters. If set to YES upper case letters are also 
+# allowed. This is useful if you have classes or files whose names only differ 
+# in case and if your file system supports case sensitive file names. Windows 
+# users are adviced to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
+# (but less readable) file names. This can be useful is your file systems 
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
+# will show members with their full class and namespace scopes in the 
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
+# will generate a verbatim copy of the header file for each class for 
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = YES
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
+# will put list of the files that are included by a file in the documentation 
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
+# will interpret the first line (until the first dot) of a JavaDoc-style 
+# comment as the brief description. If set to NO, the JavaDoc 
+# comments  will behave just like the Qt-style comments (thus requiring an 
+# explict @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF      = YES
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
+# member inherits the documentation from any documented member that it 
+# reimplements.
+
+INHERIT_DOCS           = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
+# will sort the (detailed) documentation of file and class members 
+# alphabetically by member name. If set to NO the members will appear in 
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
+# tag is set to YES, then doxygen will reuse the documentation of the first 
+# member in the group (if any) for the other members of the group. By default 
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 4
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or 
+# disable (NO) the todo list. This list is created by putting \todo 
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or 
+# disable (NO) the test list. This list is created by putting \test 
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or 
+# disable (NO) the bug list. This list is created by putting \bug 
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# This tag can be used to specify a number of aliases that acts 
+# as commands in the documentation. An alias has the form "name=value". 
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
+# put the command \sideeffect (or @sideeffect) in the documentation, which 
+# will result in a user defined paragraph with heading "Side Effects:". 
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                = 
+
+# The ENABLED_SECTIONS tag can be used to enable conditional 
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       = 
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
+# the initial value of a variable or define consist of for it to appear in 
+# the documentation. If the initializer consists of more lines than specified 
+# here it will be hidden. Use a value of 0 to hide initializers completely. 
+# The appearance of the initializer of individual variables and defines in the 
+# documentation can be controlled using \showinitializer or \hideinitializer 
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 
+# only. Doxygen will then generate output that is more tailored for C. 
+# For instance some of the names that are used will be different. The list 
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
+# at the bottom of the documentation of classes and structs. If set to YES the 
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated 
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are 
+# generated by doxygen. Possible values are YES and NO. If left blank 
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# The WARN_FORMAT tag determines the format of the warning messages that 
+# doxygen can produce. The string should contain the $file, $line, and $text 
+# tags, which will be replaced by the file and line number from which the 
+# warning originated and the warning text.
+
+WARN_FORMAT            = 
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning 
+# and error messages should be written. If left blank the output is written 
+# to stderr.
+
+WARN_LOGFILE           = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain 
+# documented source files. You may enter file names like "myfile.cpp" or 
+# directories like "/usr/src/myproject". Separate the files or directories 
+# with spaces.
+
+#INPUT                  = "j:\project\sfglib" j:/project/s2001scene j:/project/s2001editor j:/project/s2001game j:/project/s2001
+#INPUT                  = ./sfglib ./s2001scene ./s2001editor ./s2001game ./s2001
+INPUT                  = .
+
+# If the value of the INPUT tag contains directories, you can use the 
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank the following patterns are tested: 
+# *.c *.cc *.cxx *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp 
+# *.h++ *.idl
+
+#FILE_PATTERNS          = SYSTEM* INPUT* CONSOLE* SOUND*
+FILE_PATTERNS          = *.cpp *.h
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
+# should be searched for input files as well. Possible values are YES and NO. 
+# If left blank NO is used.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should 
+# excluded from the INPUT source files. This way you can easily exclude a 
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                = 
+
+# If the value of the INPUT tag contains directories, you can use the 
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
+# certain files from those directories.
+
+EXCLUDE_PATTERNS       = 
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or 
+# directories that contain example code fragments that are included (see 
+# the \include command).
+
+EXAMPLE_PATH           = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included.
+
+EXAMPLE_PATTERNS       = 
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
+# searched for input files to be used with the \include or \dontinclude 
+# commands irrespective of the value of the RECURSIVE tag. 
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or 
+# directories that contain image that are included in the documentation (see 
+# the \image command).
+
+IMAGE_PATH             = 
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should 
+# invoke to filter for each input file. Doxygen will invoke the filter program 
+# by executing (via popen()) the command <filter> <input-file>, where <filter> 
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
+# input file. Doxygen will then use the output that the filter program writes 
+# to standard output.
+
+INPUT_FILTER           = "nkf32 -Se "
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
+# INPUT_FILTER) will be used to filter the input files when producing source 
+# files to browse.
+
+FILTER_SOURCE_FILES    = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
+# be generated. Documented entities will be cross-referenced with these sources.
+
+SOURCE_BROWSER         = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body 
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
+# then for each documented function all documented 
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default) 
+# then for each documented function all documented entities 
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
+# of all compounds will be generated. Enable this if the project 
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = NO
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all 
+# classes will be put under the same header in the alphabetical index. 
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = 
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard header.
+
+HTML_HEADER            = 
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard footer.
+
+HTML_FOOTER            = 
+
+# The HTML_STYLESHEET tag can be used to specify a user defined cascading 
+# style sheet that is used by each HTML page. It can be used to 
+# fine-tune the look of the HTML output. If the tag is left blank doxygen 
+# will generate a default style sheet
+
+HTML_STYLESHEET        = 
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
+# files or namespaces will be aligned in HTML using tables. If set to 
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
+# will be generated that can be used as input for tools like the 
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
+# controls if a separate .chi index file is generated (YES) or that 
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
+# controls whether a binary table of contents is generated (YES) or a 
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members 
+# to the contents of the Html help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
+# top of each HTML page. The value NO (the default) enables the index and 
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20]) 
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that 
+# is generated for HTML Help). For this to work a browser that supports 
+# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, 
+# or Internet explorer 4.0+). Note that for large projects the tree generation 
+# can take a very long time. In such cases it is better to disable this feature. 
+# Windows users are probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = YES
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
+# used to set the initial width (in pixels) of the frame in which the tree 
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
+# generate Latex output.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = 
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
+# LaTeX documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used 
+# by the printer. Possible values are: a4, a4wide, letter, legal and 
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         = 
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
+# the generated latex document. The header should contain everything until 
+# the first chapter. If it is left blank doxygen will generate a 
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           = 
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
+# contain links (just like the HTML output) instead of page references 
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
+# plain latex in the generated Makefile. Set this option to YES to get a 
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
+# command to the generated LaTeX files. This will instruct LaTeX to keep 
+# running if errors occur, instead of asking the user for help. 
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
+# The RTF output is optimised for Word 97 and may not look very pretty with 
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = 
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
+# RTF documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
+# will contain hyperlink fields. The RTF file will 
+# contain links (just like the HTML output) instead of page references. 
+# This makes the output suitable for online browsing using WORD or other 
+# programs which support those fields. 
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's 
+# config file, i.e. a series of assigments. You only have to provide 
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    = 
+
+# Set optional variables used in the generation of an rtf document. 
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = 
+
+# The MAN_EXTENSION tag determines the extension that is added to 
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = 
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
+# then it will generate one additional man file for each entity 
+# documented in the real man page(s). These additional files 
+# only source the real man page, but without them the man command 
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will 
+# generate an XML file that captures the structure of 
+# the code including all documentation. Note that this 
+# feature is still experimental and incomplete at the 
+# moment.
+
+GENERATE_XML           = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
+# generate an AutoGen Definitions (see autogen.sf.net) file 
+# that captures the structure of the code including all 
+# documentation. Note that this feature is still experimental 
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
+# evaluate all C-preprocessor directives found in the sources and include 
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
+# names in the source code. If set to NO (the default) only conditional 
+# compilation will be performed. Macro expansion can be done in a controlled 
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
+# then the macro expansion is limited to the macros specified with the 
+# PREDEFINED and EXPAND_AS_PREDEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that 
+# contain include files that are not input files but should be processed by 
+# the preprocessor.
+
+INCLUDE_PATH           = ./ ./sfglib ./s2001scene ./s2001editor ./s2001game ./s2001
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
+# patterns (like *.h and *.hpp) to filter out the header-files in the 
+# directories. If left blank, the patterns specified with FILE_PATTERNS will 
+# be used.
+
+INCLUDE_FILE_PATTERNS  = 
+
+# The PREDEFINED tag can be used to specify one or more macro names that 
+# are defined before the preprocessor is started (similar to the -D option of 
+# gcc). The argument of the tag is a list of macros of the form: name 
+# or name=definition (no spaces). If the definition and the = are 
+# omitted =1 is assumed.
+
+PREDEFINED             = 
+
+# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then 
+# this tag can be used to specify a list of macro names that should be expanded. 
+# The macro definition that is found in the sources will be used. 
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      = 
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
+# doxygen's preprocessor will remove all function-like macros that are alone 
+# on a line and do not end with a semicolon. Such function macros are typically 
+# used for boiler-plate code, and will confuse the parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to external references   
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tagfiles.
+
+TAGFILES               = c:/inetpub/wwwroot/s2001/sfglib/sfglib.tag=c:/inetpub/wwwroot/s2001/sfglib/html \
+                                               c:/inetpub/wwwroot/s2001/s2001scene.tag=c:/inetpub/wwwroot/s2001/s2001scene/html
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       = 
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
+# in the class index. If set to NO only the inherited external classes 
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# The PERL_PATH should be the absolute path and name of the perl script 
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
+# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or 
+# super classes. Setting the tag to NO turns the diagrams off. Note that this 
+# option is superceded by the HAVE_DOT option below. This is only a fallback. It is 
+# recommended to install and use dot, since it yield more powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
+# available from the path. This tool is part of Graphviz, a graph visualization 
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = YES
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect inheritance relations. Setting this tag to YES will force the 
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect implementation dependencies (inheritance, containment, and 
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If set to YES, the inheritance and collaboration graphs will show the 
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide 
+# inheritance and usage relations if the target is undocumented 
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
+# tags are set to YES then doxygen will generate a graph for each documented 
+# file showing the direct and indirect include dependencies of the file with 
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
+# documented header file showing the documented files that directly or 
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be 
+# found. If left blank, it is assumed the dot tool can be found on the path.
+
+DOT_PATH               = "C:\Program Files\ATT\Graphviz\bin"
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that 
+# contain dot files that are included in the documentation (see the 
+# \dotfile command).
+
+DOTFILE_DIRS           = 
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_WIDTH    = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT   = 1024
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
+# generate a legend page explaining the meaning of the various boxes and 
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
+# remove the intermedate dot files that are used to generate 
+# the various graphs.
+
+DOT_CLEANUP            = YES
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to the search engine   
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be 
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE           = NO
+
+# The CGI_NAME tag should be the name of the CGI script that 
+# starts the search engine (doxysearch) with the correct parameters. 
+# A script with this name will be generated by doxygen.
+
+CGI_NAME               = 
+
+# The CGI_URL tag should be the absolute URL to the directory where the 
+# cgi binaries are located. See the documentation of your http daemon for 
+# details.
+
+CGI_URL                = 
+
+# The DOC_URL tag should be the absolute URL to the directory where the 
+# documentation is located. If left blank the absolute path to the 
+# documentation, with file:// prepended to it, will be used.
+
+DOC_URL                = 
+
+# The DOC_ABSPATH tag should be the absolute path to the directory where the 
+# documentation is located. If left blank the directory on the local machine 
+# will be used.
+
+DOC_ABSPATH            = 
+
+# The BIN_ABSPATH tag must point to the directory where the doxysearch binary 
+# is installed.
+
+BIN_ABSPATH            = 
+
+# The EXT_DOC_PATHS tag can be used to specify one or more paths to 
+# documentation generated for other projects. This allows doxysearch to search 
+# the documentation for these projects as well.
+
+EXT_DOC_PATHS          = 
diff --git a/project/s2001scene/AuthorImpl.cpp b/project/s2001scene/AuthorImpl.cpp
new file mode 100644 (file)
index 0000000..cd560d6
--- /dev/null
@@ -0,0 +1,188 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// AuthorImpl.h: AuthorImpl \83N\83\89\83X\82Ì\8eÀ\91\95
+//     \90»\8dì\8eÒ\95\\8e¦\83V\81[\83\93
+//     \97\9a\97ð\81F
+// $Log: SceneAuthor.cpp,v $
+// Revision 1.1  2001/10/28 21:40:37  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.5  2001/07/09 20:30:09  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.4  2001/07/01 21:30:34  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.3  2001/07/01 01:03:44  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.2  2001/05/12 00:49:09  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//     2001/01/29 \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p\83\89\83C\83u\83\89\83\8a\82Ì\92Ç\89Á 
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include <stack>
+#include <list>
+#include <vector>
+
+#include "exception.h"
+#include "system.h"
+#include "sound.h"
+#include "console.h"
+#include "obj.h"
+#include "Obj2D.h"
+#include "Obj3D.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+#include "input.h"
+#include "Scene.h"
+#include "Fade.h"
+#include "main.h"
+#include "AbstractScene.h"
+#include "s2001.h"
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "AuthorImpl.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+using namespace sf::application::scene;
+
+const int AuthorImpl::PERIOD = 1000 / sf::system::TIMER_INTERVAL * 4; 
+
+sf::system::console::sprite::Info spinfo =
+{ "media\\Author.png",0.0f,0.0f,0.0f,0.0f,0xff000000,sf::system::console::sprite::SPRITE2D};
+
+// \83R\83\93\83X\83g\83\89\83N\83^ -------------------------------------------------------------
+AuthorImpl::AuthorImpl() : AbstractScene()
+{
+       mTimer = PERIOD;
+       //mMessage = pParam->message();
+       mState = INITIALIZE;
+       mpSprite = NULL;
+
+}// AuthorImpl()
+
+// \83f\83X\83g\83\89\83N\83^ ---------------------------------------------------------------
+AuthorImpl::~AuthorImpl()
+{
+       // \83X\83v\83\89\83C\83g\82Ì\8dí\8f\9c
+       delete mpSprite;
+}// ~AuthorImpl()
+
+
+// \83V\81[\83\93\82Ì\93®\8dì\82ð\8bL\8fq\82·\82é -----------------------------------------------------
+void AuthorImpl::move(void)
+{
+       Fade* pfade;
+       Scene *ps;
+       switch (mState)
+       {
+       // \8f\89\8aú\89» ---------
+       case INITIALIZE:
+
+               mpSound->load(0,"author.sgt");
+               mpSound->load(1,"select.sgt");
+
+               mpSprite = mpConsole->createSprite(&spinfo);
+
+               // \8dì\8eÒ\83r\83b\83g\83}\83b\83v\82Ì\83Z\83b\83g\83A\83b\83v
+               mAuthorObj.color(0xffffffff);
+               mAuthorObj.x(system::console::viewport::X + system::console::viewport::WIDTH / 2.0f);
+               mAuthorObj.y(system::console::viewport::Y + 200.0f);
+               //AuthorObj.scalingX(1.0f);
+               //AuthorObj.scalingY(1.0f);
+               mAuthorObj.z(0.0f);
+               mAuthorObj.visibility(true);
+               mAuthorObj.sprite(mpSprite);
+
+               // \83t\83F\81[\83h\83C\83\93\90Ý\92è     
+               ps = sf::application::scene::createScene(FADE);
+               ps->addListener(this);
+               pfade = dynamic_cast<Fade *>(ps);
+               
+               pfade->startColor(0xff000000);
+               pfade->endColor(0x00000000);
+               pfade->speed(0.05f);
+               pfade->fadeType(Fade::FADE_IN);
+               pfade->fadeVolumeFlag(true);
+
+               mState = START;
+               sleep();
+               break;
+       // BGM \82ð\96Â\82ç\82· -----------------------------
+       case START:
+               mpSound->play(0,1,true,true);
+               mState = MAIN;
+               break;
+       // \83\81\83C\83\93 -----------------------------------
+       case MAIN:
+               mTimer --;
+               
+               if(mpInput->exit(true)){
+                       exitKeyPressed(this);
+                       return;
+               }
+
+               if(!mTimer || mpInput->start(true)){
+                       
+                       
+                       Scene *pscene = createScene(FADE);
+                       pscene->addListener(this);
+                       Fade *pfade = dynamic_cast<Fade *>(pscene);
+                       
+                       pfade->startColor(0x00000000);
+                       pfade->endColor(0xff000000);
+                       pfade->speed(-0.05f);
+                       pfade->fadeVolumeFlag(true);
+                       pfade->fadeType(Fade::FADE_OUT);
+
+                       mState = END;
+                       sleep();
+               }
+               break;
+       case END:
+    ;
+       }
+       //TestSprite.rotation(2.0f * 3.14159f / 75.0f * (mTimer % 75));
+       //mpConsole->print(0,system::console::viewport::X,0.0f,0.0f,1.0f,0xffffffff,"%s",mMessage.c_str());
+}// move
+
+//AuthorImpl Scene \82Ì\8fI\97¹ ---------------------------------------------------------
+void AuthorImpl::endOfScene(Scene *pScene)
+{
+
+       switch(mState){
+       case END:
+               callSceneEvent(&Listener::endOfScene);
+       
+               mpSound->stop();
+               createScene(TITLE);
+               
+               delete this;
+               return;
+
+       case START:
+               active();
+               break;
+       }
+
+} //endOfScene()
+
+// exitKey\82ª\89\9f\82³\82ê\82½ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void AuthorImpl::exitKeyPressed(Scene *pScene)
+{
+       callSceneEvent(&Listener::endOfScene);
+       delete this;
+}// exitKeyPressed
\ No newline at end of file
diff --git a/project/s2001scene/AuthorImpl.h b/project/s2001scene/AuthorImpl.h
new file mode 100644 (file)
index 0000000..19723fc
--- /dev/null
@@ -0,0 +1,75 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// AuthorImpl.h: AuthorImpl \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \90»\8dì\8eÒ\95\\8e¦\83V\81[\83\93\82Ì\8eÀ\91\95\95\94\95ª
+//\81@\83t\83F\81[\83h\83C\83\93\81¨\89æ\96Ê\92\86\90S\82É\81A\8dì\8eÒ\82Ì\83\8d\83S\83r\83b\83g\83}\83b\83v\82ð\95\\8e¦\81¨\83t\83F\81[\83h\83A\83E\83g
+// $Log: SceneAuthor.h,v $
+// Revision 1.1  2001/10/28 21:40:37  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.4  2001/07/09 20:30:09  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.3  2001/07/01 01:03:44  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.2  2001/05/12 00:49:09  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@Author=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_Author_H__F60D1AEE_75EC_4C3B_B66F_B70BF374DCE5__INCLUDED_)
+#define AFX_Author_H__F60D1AEE_75EC_4C3B_B66F_B70BF374DCE5__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "Scene.h"
+namespace sf {
+       namespace application {
+               namespace scene {
+                       
+                       class AuthorImpl : public AbstractScene 
+                       {
+                       public:
+                               enum STATE {
+                                       INITIALIZE,
+                                       START,
+                                       MAIN,
+                                       END
+                               };
+
+                               // LIFECYCLE //
+                               // \83R\83\93\83X\83g\83\89\83N\83^
+                               AuthorImpl();
+                               // \83f\83X\83g\83\89\83N\83^
+                               virtual ~AuthorImpl();
+                               // OPERATOR //
+                               // OPERATIONS //
+                               void move(void);
+                               void endOfScene(Scene * const pScene);//\83V\81[\83\93\82Ì\8fI\97¹
+                               void exitKeyPressed(Scene * const pScene);
+                               // ACCESS //
+                               virtual const TYPE type() const{return AUTHOR;};
+                               // INQUIRY //
+                               static Scene * create(void){return new AuthorImpl;};
+                       private:
+                               
+                               DWORD mTimer;
+                               std::string mMessage;
+                               sf::system::console::ObjRectangle mAuthorObj;
+                               sf::system::console::sprite::Sprite *mpSprite;
+                               STATE mState;
+                               bool mbInitialized;
+                               static const int PERIOD;
+
+                       };
+               }// scene
+       }// application
+}// sf
+#endif // !defined(AFX_Author_H__F60D1AEE_75EC_4C3B_B66F_B70BF374DCE5__INCLUDED_)
diff --git a/project/s2001scene/Fade.cpp b/project/s2001scene/Fade.cpp
new file mode 100644 (file)
index 0000000..1b43b25
--- /dev/null
@@ -0,0 +1,20 @@
+// Fade.cpp: Fade \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//
+//////////////////////////////////////////////////////////////////////
+
+#include "stdafx.h"
+#include "Fade.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+Fade::Fade()
+{
+
+}
+
+Fade::~Fade()
+{
+
+}
diff --git a/project/s2001scene/Fade.h b/project/s2001scene/Fade.h
new file mode 100644 (file)
index 0000000..a7926fc
--- /dev/null
@@ -0,0 +1,65 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Fade.h: Fade \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+// \81E\8c»\8fó\82Å\82Í\81A\83t\83F\81[\83h\83C\83\93\81E\83A\83E\83g\92\86\82Ì\83p\83\89\83\81\81[\83^\95Ï\8dX\82Í\8b\96\82³\82ê\82È\82¢\81B
+// \81E\83t\83F\81[\83h\83C\83\93\81E\83A\83E\83g\82Ì\8ew\92è\88È\8aO\82Ì\83p\83\89\83\81\81[\83^\82ð\83Z\83b\83g\82µ\82È\82­\82Ä\82à\81A\82Æ\82è\82 \82¦\82¸\93®\8dì\82µ\82Ü\82·\81B
+//
+//     \97\9a\97ð\81F
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+
+#if !defined(AFX_FADE_H__28EB70BE_6E6E_451C_BF97_CCB72EFC77B5__INCLUDED_)
+#define AFX_FADE_H__28EB70BE_6E6E_451C_BF97_CCB72EFC77B5__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "sfinterface.h"
+
+namespace sf {
+       namespace application {
+               namespace scene {
+                       // ----------------------------------------------------------------
+                       // \83t\83F\81[\83h\83C\83\93\81E\83A\83E\83g\83C\83\93\83^\81[\83t\83F\81[\83X
+                       // ----------------------------------------------------------------
+                       class SF_INTERFACE Fade
+                       {
+                       public:
+                               enum TYPE {
+                                       FADE_IN,        //\83t\83F\81[\83h\83C\83\93//
+                                       FADE_OUT        //\83t\83F\81[\83h\83A\83E\83g//
+                               };
+
+                               Fade(){};
+                               virtual ~Fade(){};
+
+                               // ACCESS //
+                               // \83t\83F\81[\83h\83C\83\93\81E\83A\83E\83g\82Ì\83X\83s\81[\83h
+                               virtual void speed(const float  value) = 0;
+                               virtual const float  speed() = 0;
+                               // \83t\83F\81[\83h\83C\83\93\82©\81A\83t\83F\81[\83h\83A\83E\83g\82©
+                               virtual const Fade::TYPE  fadeType() = 0;
+                               virtual void fadeType(const Fade::TYPE  value) = 0;
+                               // \83X\83^\81[\83g\8e\9e\82Ì\90F
+                               virtual const system::console::COLOR  startColor(void) = 0;
+                               virtual void startColor(const system::console::COLOR  value ) = 0;
+                               // \8fI\97¹\8e\9e\82Ì\90F
+                               virtual const system::console::COLOR  endColor(void) = 0;
+                               virtual void endColor(const system::console::COLOR  value) = 0;
+                               // \83T\83E\83\93\83h\83{\83\8a\83\85\81[\83\80\82à\88ê\8f\8f\82É\83t\83F\81[\83h\83C\83\93\81E\83A\83E\83g\82·\82é\82©\82Ç\82¤\82©
+                               virtual const bool fadeVolumeFlag() = 0;
+                               virtual void fadeVolumeFlag(const bool  value) = 0;
+                               
+                               //\81@\8f\89\8aú\89»\8f\88\97\9d
+                               // \83p\83\89\83\81\81[\83^\82ð\83Z\83b\83g\82µ\82½\8cã\82Í\81A\8cÄ\82Ñ\8fo\82·\82±\82Æ\81B
+                               virtual void initialize() = 0;
+
+                       };// Fade
+               }
+       }
+}
+
+#endif // !defined(AFX_FADE_H__28EB70BE_6E6E_451C_BF97_CCB72EFC77B5__INCLUDED_)
diff --git a/project/s2001scene/FadeImpl.cpp b/project/s2001scene/FadeImpl.cpp
new file mode 100644 (file)
index 0000000..2fb90ae
--- /dev/null
@@ -0,0 +1,160 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// FadeImpl.cpp: FadeImpl \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//  \81@\83t\83F\81[\83h\83C\83\93\81E\83t\83F\81[\83h\83A\83E\83g\83V\81[\83\93\83N\83\89\83X\82Å\82·\81B
+//     \97\9a\97ð:
+// $Log: FadeImpl.cpp,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.5  2001/07/09 20:30:08  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.4  2001/07/01 21:30:33  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.3  2001/07/01 01:03:44  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.2  2001/05/12 00:50:33  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//     2001/01/29 \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p\83\89\83C\83u\83\89\83\8a\82Ì\92Ç\89Á 
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+// System Includes //
+#include <stack>
+#include <list>
+
+// Project Includes //
+#include "exception.h"
+#include "system.h"
+#include "sound.h"
+#include "console.h"
+#include "Obj.h"
+#include "Obj2D.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+#include "input.h"
+#include "Scene.h"
+#include "main.h"
+#include "AbstractScene.h"
+
+#include "FadeImpl.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+using namespace sf::application::scene;
+
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+FadeImpl::FadeImpl()
+{
+       mbMove = false;
+       system::System* mpSystem = system::instance();
+       mpSound = mpSystem->sound();
+
+       mStartColor = (0xff000000);
+       mEndColor = 0x00000000;
+       mSpeed = 0.05f;
+       mType = Fade::FADE_IN;
+       mbFadeVolume = true;
+
+       mFadeObj.x(system::console::viewport::X + (system::console::viewport::WIDTH/2.0f));
+       mFadeObj.y(0.0f + (system::console::viewport::HEIGHT / 2.0f));
+       mFadeObj.z(0.0f);
+       mFadeObj.sprite(Maininstance()->getBlankSprite());
+       mFadeObj.scalingX(25.0f);
+       mFadeObj.scalingY(60.0f);
+       mFadeObj.color(mStartColor);
+       mFadeObj.visibility(true);
+       mFadeObj.drawMode(system::console::DRAW_TRANS);
+
+       initialize();
+}// FadeImpl();
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+FadeImpl::~FadeImpl()
+{
+
+}// FadeImpl()
+
+// \8f\89\8aú\89»\8f\88\97\9d \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void FadeImpl::initialize(){
+       
+       if(mType == Fade::FADE_IN)
+               mCurrent = 1.0f;
+       else
+               mCurrent = 0.0f;
+
+       mEnd = (float)((mEndColor & 0xff000000) >> 24) / 256.0f; 
+
+       float pitch_ = (mStartColor & 0xff000000) >> 24;
+       
+       // \8f\9c\8eZ\97á\8aO\82ð\82³\82¯\82é\82½\82ß\82Ì\8f\88\92u
+       if(!pitch_) pitch_ = 0.00001f;
+       if(!mSpeed) mSpeed = 0.00001f;
+       
+       if(mbFadeVolume){
+               mVolumePitch = ((float)system::sound::volume::MIN - (float)mpSound->volumeMax()) 
+                       /  (((float)pitch_) / (mSpeed * 256.0f));
+               pitch_ = ((mStartColor - mEndColor) & 0xff000000) >> 24;
+       
+               if(!pitch_) pitch_ = 0.0001f;
+               if(mType == Fade::FADE_IN){
+                       mVolumePitch = ((float)system::sound::volume::MIN- (float)mpSound->volumeMax()) 
+                               /  (((float)pitch_) / (mSpeed * 256.0f));
+                       mVolume = (float)system::sound::volume::MIN;
+               } else {
+                       mVolumePitch = ((float)system::sound::volume::MIN - (float)mpSound->volumeMax()) 
+                               /  (((float)pitch_) / (mSpeed * 256.0f));
+                       mVolume = (float)mpSound->volumeMax();
+               }
+       }
+}// initialize()
+
+// FadeImpl\91\80\8dì ------------------------------------------------------------------- 
+void FadeImpl::move(void)
+{
+       mbMove = true;
+       mCurrent -= mSpeed;
+       
+       if(mbFadeVolume)
+               mVolume -= mVolumePitch;
+       
+       DWORD color = (((DWORD)(256.0f * mCurrent)) << 24) + (mStartColor & 0xffffff);
+               
+       // \82d\82w\82h\82s\83L\81[\82ª\89\9f\82³\82ê\82½\82©?
+       if(mpInput->exit(true)){
+               callSceneEvent(&Listener::exitKeyPressed);
+               delete this;
+               return;
+       }
+
+       // \8fI\97¹\83`\83F\83b\83
+       if((mCurrent <= mEnd && mType == Fade::FADE_IN) || 
+               (mCurrent >= mEnd && mType == Fade::FADE_OUT) || mpInput->start(true))
+       {
+               callSceneEvent(&Listener::endOfScene);
+               delete this;
+               return;
+       }
+
+
+       mFadeObj.color(color);
+
+       // \89¹\97Ê 
+       if(mbFadeVolume)
+               mpSound->masterVolume((int)mVolume);
+
+       return;
+}// FadeImpl
\ No newline at end of file
diff --git a/project/s2001scene/FadeImpl.h b/project/s2001scene/FadeImpl.h
new file mode 100644 (file)
index 0000000..191d971
--- /dev/null
@@ -0,0 +1,96 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// FadeImpl.h: FadeImpl \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//  \81@\83t\83F\81[\83h\83C\83\93\81E\83t\83F\81[\83h\83A\83E\83g\83V\81[\83\93\83N\83\89\83X\82Å\82·\81B
+// $Log: FadeImpl.h,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.4  2001/07/09 20:30:08  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.3  2001/07/01 01:03:44  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.2  2001/05/12 00:50:33  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_FADE_H__B6A34AFF_990A_4D57_B2C9_8578B34A36E3__INCLUDED_)
+#define AFX_FADE_H__B6A34AFF_990A_4D57_B2C9_8578B34A36E3__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "scenetype.h"
+#include "AbstractScene.h"
+#include "Fade.h"
+
+namespace sf {
+       namespace application {
+               namespace scene {
+
+                       class FadeImpl : public AbstractScene,public Fade  
+                       {
+                       public:
+                               FadeImpl();
+                               virtual ~FadeImpl();
+                               
+                               // Scene \83C\83\93\83v\83\8a\83\81\83\93\83g                         
+                               void move(void);
+                               const scene::TYPE type() const{return FADE;};
+
+                               void endOfScene(Scene * const pScene) {;};
+                               void exitKeyPressed(Scene * const pScene) {;};
+                               
+                               // Fade \83C\83\93\83v\83\8a\83\81\83\93\83g
+                               // \83t\83F\81[\83h\83C\83\93\81E\83A\83E\83g\82Ì\83X\83s\81[\83h
+                               void speed(const float value){ if(!mbMove){ mSpeed = value;};};
+                               const float speed(){return mSpeed;};
+                               // \83t\83F\81[\83h\83C\83\93\82©\81A\83t\83F\81[\83h\83A\83E\83g\82©
+                               const Fade::TYPE fadeType(){return mType;};
+                               void fadeType(const Fade::TYPE value){if(!mbMove){mType = value;};};
+                               // \83X\83^\81[\83g\8e\9e\82Ì\90F
+                               const system::console::COLOR startColor(void){return mStartColor;};
+                               void startColor(const system::console::COLOR value ){if(!mbMove){mStartColor = value;};};
+                               // \8fI\97¹\8e\9e\82Ì\90F
+                               const system::console::COLOR endColor(void){return mEndColor;};
+                               void endColor(const system::console::COLOR  value){if(!mbMove){mEndColor = value;};};
+                               // \83T\83E\83\93\83h\83{\83\8a\83\85\81[\83\80\82à\88ê\8f\8f\82É\83t\83F\81[\83h\83C\83\93\81E\83A\83E\83g\82·\82é\82©\82Ç\82¤\82©
+                               const bool  fadeVolumeFlag(){return mbFadeVolume;};
+                               void fadeVolumeFlag(const bool value){if(!mbMove){mbFadeVolume = value;};};
+
+                               void initialize();
+
+                               static Scene * const create(const bool bManage)
+                               {       Scene *pscene = new FadeImpl();
+                                       if(bManage){
+                                               Container::instance()->add(pscene);
+                                       }
+                                       return pscene;
+                               };
+
+                       private:
+                               system::console::COLOR mStartColor,mEndColor;
+                               Fade::TYPE mType;
+                               float mSpeed;
+                               system::System *mpSystem;
+                               system::sound::Sound *mpSound;
+                               float mCurrent,mEnd;
+                               float mVolumePitch;
+                               float mVolume;
+                               bool    mbFadeVolume;
+                               bool mbMove;
+                               system::console::ObjRectangle mFadeObj;
+                       };
+               }// scene
+       }// application
+}//sf
+
+#endif // !defined(AFX_FADE_H__B6A34AFF_990A_4D57_B2C9_8578B34A36E3__INCLUDED_)
diff --git a/project/s2001scene/Game.cpp b/project/s2001scene/Game.cpp
new file mode 100644 (file)
index 0000000..51444c2
--- /dev/null
@@ -0,0 +1,20 @@
+// Game.cpp: Game \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//
+//////////////////////////////////////////////////////////////////////
+
+#include "stdafx.h"
+#include "Game.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+Game::Game()
+{
+
+}
+
+Game::~Game()
+{
+
+}
diff --git a/project/s2001scene/Game.h b/project/s2001scene/Game.h
new file mode 100644 (file)
index 0000000..72290ea
--- /dev/null
@@ -0,0 +1,119 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Game.h: Game \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_GAME_H__C0DEC307_4A6A_48CD_B72C_4513D6C4580E__INCLUDED_)
+#define AFX_GAME_H__C0DEC307_4A6A_48CD_B72C_4513D6C4580E__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "sfinterface.h"
+#include "sceneType.h"
+
+namespace sf {
+       namespace application {
+               namespace scene {
+
+class SF_INTERFACE Game  
+{
+public:
+       Game(){};
+       virtual ~Game(){};
+       
+       // Game \83C\83\93\83^\81[\83t\83F\81[\83X\82ª\8ed\97l\82·\82é\8d\\91¢\91Ì\81A\97ñ\8b\93\95Ï\90\94
+       
+       struct Data {
+               std::string mapFileName;                // \83}\83b\83v\83t\83@\83C\83\8b
+               std::string dispositionFileName;// \94z\92u\83f\81[\83^
+               std::string bgmFileName;                // BGM\83f\81[\83^
+       };
+
+       // \93ï\88Õ\93x\90Ý\92è
+       enum DIFFICULTY {
+               EASY,
+               NORMAL,
+               HARD
+       };
+
+       // \83Q\81[\83\80\82Ì\8fó\91Ô
+       enum STATE {
+               INITIALIZE,
+               START,
+               MAIN,
+               RESTART,
+               CLEAR,
+               OVER
+       };
+
+       
+       // OPERATOR //
+       
+       
+       // OPERATIONS //
+
+       // \83v\83\8c\83C\83\84\81[\8fî\95ñ\95\\8e¦
+       virtual void printPlayerInfo() = 0;
+       // \83f\81[\83^\83G\83f\83B\83b\83g\8e\9e\8fî\95ñ\95\\8e¦
+       virtual void printEditInfo() = 0;
+       // \83Q\81[\83\80\83f\81[\83^\83\8d\81[\83h
+       virtual void load(const char * const pFileName) = 0;
+
+       // ACCESS //
+
+       // \94w\8ci //
+       virtual sf::system::console::Background * const background(void) = 0;
+       
+       // \8e©\8b@ //
+       virtual sf::application::Character * const player(void) = 0;
+       
+       // \93ï\88Õ\93
+       virtual const DIFFICULTY difficulty(void) const  = 0 ;
+       virtual void difficulty(const DIFFICULTY value) = 0;
+       
+       // \8c»\8dÝ\82Ì\93ï\88Õ\93x
+       virtual const float currentDifficulty(void) const = 0;
+       virtual void currentDifficulty(const float value) = 0;
+
+       // \83X\83e\81[\83W No 
+       virtual void stageNo(const int value) = 0;
+       virtual const int stageNo() const = 0;
+       
+       // \83X\83N\83\8d\81[\83\8b\91¬\93
+       virtual void scrollSpeed(const float value) = 0;
+       virtual const float scrollSpeed(void) const  = 0;
+       
+       // \83X\83R\83A
+       virtual void score(const int value) = 0;
+       virtual const int score(void) const = 0;
+       
+       // \83X\83N\83\8d\81[\83\8b\88Ê\92
+       virtual void scrollY(const float value) = 0;
+       virtual const float scrollY(void) const = 0;
+       
+       // \83\8a\83X\83^\81[\83g\88Ê\92u\82Ì\90Ý\92è 
+       virtual void restartPosition(const float value) = 0;
+       virtual const float restartPosition(void) const = 0;
+
+       // \94z\92u\83f\81[\83^\90§\8cä\83I\83u\83W\83F\83N\83
+       virtual sf::application::disposition::Controller* const controllerPtr(void) = 0; 
+
+       // \8fó\91Ô 
+       virtual void state(const STATE value) = 0;
+       virtual const STATE state(void) const = 0;
+
+       // \83^\83C\83}
+       virtual const int timer (void) const = 0;
+       
+
+};// Game
+               }// scene
+       }// application 
+}//sf
+
+#endif // !defined(AFX_GAME_H__C0DEC307_4A6A_48CD_B72C_4513D6C4580E__INCLUDED_)
diff --git a/project/s2001scene/GameImpl.cpp b/project/s2001scene/GameImpl.cpp
new file mode 100644 (file)
index 0000000..3f4e012
--- /dev/null
@@ -0,0 +1,554 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Game.cpp: Game \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+// $Log: Game.cpp,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.12  2001/07/09 20:30:08  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.11  2001/07/01 21:30:34  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.10  2001/07/01 01:03:44  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.9  2001/06/10 21:17:54  fujiwara
+// \92n\8fã\97p\92Ç\89Á
+//
+// Revision 1.8  2001/06/03 09:22:32  fujiwara
+// \92n\8fã\93G\83N\83\89\83X\82¨\82æ\82Ñ\8eG\8b\9b\93G\82Ì\94÷\92²\90®
+//
+// Revision 1.7  2001/05/17 12:34:10  fujiwara
+// \92n\8fã\93G\83T\83\93\83v\83\8b\8dì\90¬
+//
+// Revision 1.6  2001/05/13 20:04:24  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.5  2001/05/12 12:48:28  fujiwara
+// \94z\92u\83G\83f\83B\83^\8dì\90¬\82É\94º\82¤\95Ï\8dX\81E\92Ç\89Á
+//
+// Revision 1.4  2001/05/12 08:17:12  fujiwara
+// \88ê\94Ê\95Û\8cì\88á\94½\82ª\8bN\82±\82éBUG\8fC\90³
+//
+// Revision 1.3  2001/05/12 00:50:33  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// SYSTEM INCLUDES //
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+
+#include <stack>
+#include <list>
+#include <iostream>
+#include <fstream>
+#include <vector>
+#include       <map>
+#include <string>
+#include "math.h"
+
+// PROJECT INCLUDES //
+
+#include "exception.h"
+#include "singleton.h"
+#include "system.h"
+#include "sound.h"
+#include "console.h"
+#include "Obj.h"
+#include "Obj2D.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+#include "Obj3DL.h"
+#include "Background.h"
+#include "input.h"
+#include "Scene.h"
+#include "main.h"
+#include "AbstractScene.h"
+#include "character.h"
+#include "Hit.h"
+#include "MyShip.h"
+#include "Enemys.h"
+#include "Armys.h"
+#include "EnemyBullets.h"
+
+
+#include "Game.h"
+#include "GameImpl.h"
+
+#include "DispositionControl.h"
+#include "AbstractCharacter.h"
+#include "MyBullets.h"
+#include "MyGroundBullets.h"
+#include "Effects.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+//#include "ZK01.H"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+using namespace sf::application::scene;
+using namespace sf::system::console;
+using namespace sf;
+
+// \83R\83\93\83X\83g\83\89\83N\83^ -------------------------------------------------------------
+Game::Game() : AbstractScene()
+{
+       mbKeyboardListening = false;
+       mState = INITIALIZE;
+       mTimer = 0;
+       
+       mpController = new sf::application::disposition::Controller;
+       mpController->game(this);
+       
+       mpMyShip = new player::Ship(this);
+       
+       mpBullets = sf::application::player::bullet::Bullets::instance();
+       mpBullets->initialize();
+
+       mpEnemys = sf::application::enemy::Enemys::instance();
+       mpEnemys->initialize();
+
+       mpArmys = sf::application::enemy::Armys::instance();
+       mpArmys->initialize();
+
+       mpEffects = sf::application::effect::Effects::instance();
+       mpEffects->initialize();
+
+       mpEnemyBullets = sf::application::enemy::Bullets::instance();
+       mpEnemyBullets->initialize();
+
+
+       mpGroundBullets = sf::application::player::bullet::GroundBullets::instance();
+       mpGroundBullets->initialize();
+
+       mScore = 0;
+       mStageNo = 0;
+
+       mbEdit = false;
+}// Game()
+
+// \83f\83X\83g\83\89\83N\83^ ---------------------------------------------------------------
+Game::~Game()
+{
+       if(mpInput)
+               mpInput->removeKeyboardListener(this);
+
+       delete mpController;
+       delete mpMyShip;
+
+       if(mpStart){
+               mpStart->removeListener(this);
+               mpStart = NULL;
+       }
+
+}// ~Game()
+
+// \83X\83P\83W\83\85\81[\83\89 ---------------------------------------------------------------
+void Game::move(void )
+{
+       mTimer ++;
+
+       switch(mState)
+       {
+       case INITIALIZE:
+               initialize();
+               break;
+       case START:
+               mBackground.visibility(true);
+               mpMyShip->initialize();
+               mState = MAIN;
+               mbKeyboardListening = true;
+               break;
+       case MAIN:
+               main();
+               return;
+       case RESTART:
+               restart();
+               return;
+       case CLEAR:
+
+       case OVER:
+               over();
+               return;
+               ;
+       }
+       
+}// move()
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Game::initialize()
+{
+       mpConsole->print(
+                       0,
+                       viewport::X + viewport::WIDTH / 2.0f - 32.0f / 2.0f * text::COLUMN_PITCH,
+                       viewport::Y + viewport::HEIGHT / 2.0f,
+                       0.0f,
+                       1.0f,
+                       0xffffffff,
+                       "Loading Game Data. Please Wait!");
+       
+       if(mTimer < 10) return;
+
+       mStageNo = 0;
+       mScore = 0;
+       difficulty(EASY);
+       mScrollY = 0.0f;
+
+       mBackground.startOffsetY(0.0f);
+       mBackground.startOffsetX(0.0f);
+
+       // \83Q\81[\83\80\83X\83^\81[\83g\89æ\96Ê
+       mpInput->addKeyboardListener(this);
+       StartParameter start_param;
+       mpStart = start_param.createScene();
+       
+       mpStart->addListener(this);
+
+       mState = START;
+
+       load("game.dat");
+       
+       loadStageData();
+       
+       mpMyShip->life(sf::application::player::Ship::INIT_LIFE);
+}//
+
+// \8cã\8en\96\96 \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Game::resetObjects(){
+       
+       mpEnemys->initialize();
+       mpEffects->initialize();
+       mpBullets->initialize();
+       mpEnemyBullets->initialize();
+       mpArmys->initialize();
+       mpGroundBullets->initialize();
+
+}// resetObjects()
+
+// \83\81\83C\83\93 \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Game::main()
+{
+       using namespace sf::system::console;
+       // Exit Key\82ª\89\9f\82³\82ê\82½\82©\81H
+       if(mpInput != NULL && mpInput->exit(false))
+       {
+               mState = OVER;
+               return;
+       }
+
+       printPlayerInfo();
+
+       // \95\8e\9a\97ñ\82ð\83u\83\8a\83\93\83N\95\\8e¦
+       if(mTimer & 0x8)
+       {
+               mpConsole->print(
+                       0,
+                       viewport::X + viewport::WIDTH / 2.0f - 14.0f / 2.0f * text::COLUMN_PITCH,
+                       viewport::Y + viewport::HEIGHT / 2.0f,
+                       0.0f,
+                       1.0f,
+                       0xffffffff,
+                       "Exit Esc Key!!");
+       }
+
+//     if(!(mTimer & 0xf))
+//             mpEnemys->create(sf::application::enemy::Enemys::ZK01,sf::system::console::viewport::X + 400.0f * (float)rand() / 32768.0f ,-48.0f,0.5f,this);
+
+       mpController->exec(mScrollY);
+
+       mpMyShip->move();
+       mpBullets->move();
+       mpGroundBullets->move();
+       mpEnemys->move();
+       mpEffects->move();
+       mpEnemyBullets->move();
+       mpArmys->move();
+
+       mpEnemys->hitCheck(mpBullets);
+       mpEnemys->hitCheck(mpMyShip);
+       mpEnemyBullets->hitCheck(mpMyShip);
+       mpArmys->hitCheck(mpGroundBullets);
+
+       // \94z\92u\83}\83b\83v\82©\82ç\83f\81[\83^\8eæ\82è\8fo\82µ //
+       
+       mBackground.offsetY(mScrollY);
+       mScrollY = mScrollY + mScrollSpeed;
+}// main()
+
+// \83Q\81[\83\80\83I\81[\83o\81\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Game::over()
+{
+       resetObjects(); 
+       callSceneEvent(&sf::application::scene::Listener::endOfScene);
+       delete this;
+       
+       // \83Q\81[\83\80\83I\81[\83o\81[\83V\81[\83\93\82Ö\88Ú\8ds
+       OverParameter param;
+       param.createScene();
+
+       // \83^\83C\83g\83\8b\89æ\96Ê\82Ö\82Ì\88Ú\8ds
+       //TitleParameter param;
+       //param.createScene();
+}// over() 
+
+// \83V\81[\83\93\82Ì\8fI\97¹ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Game::endOfScene(Scene *pScene)
+{
+
+       switch(pScene->type())
+       {
+       case EDITOR:
+               mbKeyboardListening = true;
+               active();
+               mbEdit = false;
+               break;
+       case DISPOSITION_EDITOR:
+               mbKeyboardListening = true;
+               active();
+               mbEdit = false;
+               break;
+       case sf::application::scene::START:
+               if(!mbEdit) {
+                       sf::system::instance()->sound()->play(mBgmId,1,true,true);
+                       active();
+               }
+               mpStart = NULL;
+               break;
+       default:
+               active();
+               break;
+       }
+       ;// \89½\82à\82µ\82È\82¢
+}// endOfScene()
+
+// \82d\82w\82h\82s\83L\81[\82ª\89\9f\82³\82ê\82½\81@\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Game::exitKeyPressed(Scene *pScene)
+{
+       callSceneEvent(&sf::application::scene::Listener::exitKeyPressed);
+
+       // \83^\83C\83g\83\8b\89æ\96Ê\82Ö\82Ì\88Ú\8ds
+       TitleParameter param;
+       param.createScene();
+
+       // \93G\82È\82Ç\82ð\83N\83\8a\83A\82·\82é
+       resetObjects();
+       delete this;
+}// exitKeyPressed()
+
+// \83L\81[\82ª\89\9f\82³\82ê\82½\82Æ\82«\82Ì\8f\88\97\9d \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Game::keyDown(DWORD keyCode,DWORD extKeyCode)
+{
+       Scene *pscene;
+       BGEditorParameter edit_param;
+       DispositionEditorParameter d_param;
+       
+       switch((char)keyCode)
+       {
+       case 'B':
+               resetObjects();
+               edit_param.game(this);
+               pscene = edit_param.createScene();
+               pscene->addListener(this);
+               mbKeyboardListening = false;
+               sleep();
+               mbEdit = true;
+               break;
+       case 'D':
+               resetObjects();
+               d_param.game(this);
+               pscene = d_param.createScene();
+               pscene->addListener(this);
+               mbKeyboardListening = false;
+               sleep();
+               mbEdit = true;
+               break;
+       }
+
+}// keyDown()
+
+// \83v\83\8c\83C\83\84\81[\8fî\95ñ\82Ì\95\\8e¦ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Game::printPlayerInfo()
+{
+       using  namespace sf::system::console;
+
+       // \83X\83R\83A\95\\8e¦ //
+       mpConsole->print(
+               0,
+               viewport::X + (viewport::WIDTH - 5.0f * text::COLUMN_PITCH) / 2.0f,
+               viewport::Y,
+               0.0f,
+               1.0f,
+               0xffffffff,
+               "SCORE"
+       );
+
+       mpConsole->print(
+               0,
+               viewport::X + (viewport::WIDTH - 8.0f * text::COLUMN_PITCH )/ 2.0f,
+               viewport::Y + (1.0f * text::LINE_PITCH),
+               0.0f,
+               1.0f,
+               0xffffffff,
+               "%08d",mScore
+       );
+
+       // \83v\83\8c\83C\83\84\81[\8ec\90\94\95\\8e¦ //
+
+}// printScore()
+
+// \83v\83\8c\83C\83\84\81[\8fî\95ñ\82Ì\95\\8e¦ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Game::printEditInfo()
+{
+       using  namespace sf::system::console;
+
+       // \83X\83R\83A\95\\8e¦ //
+       mpConsole->print(
+               0,
+               viewport::X + 1.0f * text::COLUMN_PITCH,
+               viewport::Y + (2.0f * text::LINE_PITCH),
+               0.0f,
+               1.0f,
+               0xffffffff,
+               "pos:"
+       );
+
+       mpConsole->print(
+               0,
+               viewport::X + 5.0f * text::COLUMN_PITCH,
+               viewport::Y +(2.0f * text::LINE_PITCH) ,
+               0.0f,
+               1.0f,
+               0xffffffff,
+               "%f",mBackground.offsetY()
+       );
+
+       mpConsole->print(
+               0,
+               viewport::X + 1.0f * text::COLUMN_PITCH,
+               viewport::Y + (3.0f * text::LINE_PITCH),
+               0.0f,
+               1.0f,
+               0xffffffff,
+               "ofx:"
+       );
+
+       mpConsole->print(
+               0,
+               viewport::X + 5.0f * text::COLUMN_PITCH,
+               viewport::Y + (3.0f * text::LINE_PITCH),
+               0.0f,
+               1.0f,
+               0xffffffff,
+               "%f",mBackground.startOffsetX()
+       );
+
+       mpConsole->print(
+               0,
+               viewport::X + 1.0f * text::COLUMN_PITCH,
+               viewport::Y + (4.0f * text::LINE_PITCH),
+               0.0f,
+               1.0f,
+               0xffffffff,
+               "ofy:"
+       );
+
+       mpConsole->print(
+               0,
+               viewport::X + 5.0f * text::COLUMN_PITCH,
+               viewport::Y + (4.0f * text::LINE_PITCH),
+               0.0f,
+               1.0f,
+               0xffffffff,
+               "%f",mBackground.startOffsetY()
+       );
+
+       // \83v\83\8c\83C\83\84\81[\8ec\90\94\95\\8e¦ //
+
+}// printScore()
+
+// \83X\83e\81[\83W\83f\81[\83^\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Game::loadStageData(){
+
+       mBackground.load(mStageData[mStageNo].mapFileName.c_str());
+       mpController->load(mStageData[mStageNo].dispositionFileName.c_str());
+       mBgmId = sf::system::instance()->sound()->load(mStageData[mStageNo].bgmFileName.c_str());
+
+}// loadStageData()
+
+void Game::clear(){
+       ;
+}// clear()
+
+std::ostream & operator <<
+                ( std::ostream &rOStrm    // cStrStrm
+                , const Game::Data &rGameData )    // cInt
+{
+    return rOStrm << rGameData.mapFileName << " " << rGameData.dispositionFileName;    // \8aù\91\82Ì\8aÖ\90\94\82ð\8cÄ\82Ñ\8fo\82µ\82Ü\82·\81B
+}
+
+std::istream& operator >> ( std::istream& rIStrm, Game::Data &rGameData)
+{
+       rIStrm >> rGameData.mapFileName;
+       rIStrm >> rGameData.dispositionFileName;
+       rIStrm >> rGameData.bgmFileName;
+       return rIStrm;
+}
+
+// \83Q\81[\83\80\83f\81[\83^\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Game::load(const char * const pFileName)
+{
+       char err_loadstr[] = "Game::load() Error!";
+       
+       std::fstream file(pFileName,std::ios::in);
+       if(!file.is_open()){
+               throw FatalErrorException("Game File Not Found",__FILE__,__LINE__);
+       }
+       file >> mStageMax;
+       Data temp_data;
+       for(int i = 0 ; i < mStageMax ; i++){
+               file >> temp_data;
+               if(file.fail() != 0){
+                       throw FatalErrorException(err_loadstr,__FILE__,__LINE__);
+               }
+               mStageData.push_back(temp_data);
+       }
+}// load()
+
+// \83\8a\83X\83^\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Game::restart()
+{
+
+       resetObjects();
+       mBackground.visibility(false);
+       mpMyShip->restart();
+       scrollY(restartPosition());
+       mBackground.offsetY(restartPosition());
+       mpController->restart(restartPosition());
+       mState = START;
+       
+       StartParameter start_param;
+       Scene * pscene = start_param.createScene();
+       pscene->addListener(this);
+
+}// restart()
+
+void Game::difficulty(const DIFFICULTY value){
+       mDifficulty = value;
+       mCurrentDifficulty = (float)value + fmod(currentDifficulty(),1.0f); 
+}
+
+
diff --git a/project/s2001scene/GameImpl.h b/project/s2001scene/GameImpl.h
new file mode 100644 (file)
index 0000000..f737658
--- /dev/null
@@ -0,0 +1,222 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// GameImpl.h: GameImpl \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: GameImpl.h,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.11  2001/07/09 20:30:08  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.10  2001/07/01 01:03:44  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.9  2001/06/10 21:17:54  fujiwara
+// \92n\8fã\97p\92Ç\89Á
+//
+// Revision 1.8  2001/06/03 09:22:32  fujiwara
+// \92n\8fã\93G\83N\83\89\83X\82¨\82æ\82Ñ\8eG\8b\9b\93G\82Ì\94÷\92²\90®
+//
+// Revision 1.7  2001/05/29 01:12:54  fujiwara
+// \8eG\8b\9b\83L\83\83\83\89(\94ò\8ds\95¨\81j\82Ì\8dì\90¬\81B\94z\92u\83G\83f\83B\83^\82Ì\83o\83O\8fC\90³
+//
+// Revision 1.6  2001/05/17 12:34:10  fujiwara
+// \92n\8fã\93G\83T\83\93\83v\83\8b\8dì\90¬
+//
+// Revision 1.5  2001/05/13 20:04:24  fujiwara
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\82ª\94­\90\82µ\82½\82Ì\82Å\8eæ\82è\8f\9c\82­\81B
+// \8e©\92e\82Ì\83T\83E\83\93\83h\83e\83X\83g
+//
+// Revision 1.4  2001/05/12 12:48:28  fujiwara
+// \94z\92u\83G\83f\83B\83^\8dì\90¬\82É\94º\82¤\95Ï\8dX\81E\92Ç\89Á
+//
+// Revision 1.3  2001/05/12 00:50:33  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_GAME_H__41F747F0_5498_488A_AE73_BC66B991D0ED__INCLUDED_)
+#define AFX_GAME_H__41F747F0_5498_488A_AE73_BC66B991D0ED__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "AbstractScene.h"
+#include "Game.h"
+
+namespace sf {
+       namespace application {
+               
+               namespace disposition {
+                       class Controller;
+               }
+               
+               namespace player {
+                       namespace bullet{
+                               class Bullets;
+                               class GroundBullets;
+                       }
+               }
+               
+               namespace enemy {
+                       class Enemys;
+                       class Bullets;
+                       class Armys;
+               };
+
+               namespace effect {
+                       class Effects;
+               };
+
+               namespace scene {
+
+
+class GameImpl : public AbstractScene,public sf::system::input::keyboard::Listener,public Game
+{
+public:
+       // LIFECYCLE //
+       
+       GameImpl();
+       virtual ~GameImpl();
+       
+       // OPERATOR //
+       
+       // OPERATIONS //
+
+       // \88Ú\93®
+       void move(void);
+       
+       // \83V\81[\83\93\8fI\97¹\83C\83x\83\93\83g
+       void endOfScene(Scene * const pScene);
+       // \8fI\97¹\83L\81[\89\9f\89º\83C\83x\83\93\83g
+       void exitKeyPressed(Scene * const pScene);
+       // \83L\81[\89\9f\89º\83C\83x\83\93\83
+       void keyDown(const DWORD keyCode,const DWORD extKeyCode);
+       // \83L\81[\83A\83b\83v\83C\83x\83\93\83g
+       void keyUp(const DWORD keyCode,const DWORD extKeyCode){};
+       // \83L\81[\83{\81[\83h\83C\83x\83\93\83g\82ð\8eó\90M\82·\82é\82©
+       const bool isListeningKeyboard(void) const {return mbKeyboardListening;};
+       // Input\83f\83o\83C\83X\8fÁ\96Å\83C\83x\83\93\83g
+       void keyboardTalkerIsDeleted(void){mpInput = NULL;};
+       // \83v\83\8c\83C\83\84\81[\8fî\95ñ\95\\8e¦
+       void printPlayerInfo();
+       // \83f\81[\83^\83G\83f\83B\83b\83g\8e\9e\8fî\95ñ\95\\8e¦
+       void printEditInfo();
+       // \83Q\81[\83\80\83f\81[\83^\83\8d\81[\83h
+       void load(const char * const pFileName);
+
+       // ACCESS //
+       const TYPE type() const{return GAME;};
+               
+       // \94w\8ci //
+       sf::system::console::Background* const background(void){return &mBackground;};
+       
+       // \8e©\8b@ //
+       sf::application::Character * const player(void){return mpMyShip;};
+       
+       // \93ï\88Õ\93
+       const DIFFICULTY difficulty(void) const { return mDifficulty;};
+       void difficulty(const DIFFICULTY value);
+       
+       // \8c»\8dÝ\82Ì\93ï\88Õ\93x
+       const float currentDifficulty(void) const {return mCurrentDifficulty;};
+       void currentDifficulty(float value)
+       {       if(value > (float)HARD)
+                       mCurrentDifficulty = (float)HARD;
+               else
+                       mCurrentDifficulty = value;
+       };
+
+       // \83X\83e\81[\83W No 
+       void stageNo(const int value)
+       {       int tmp = value;
+               if(value < 0) tmp = 0;
+               if(value > mStageMax ) tmp = mStageMax;
+               mStageNo = tmp;
+       };
+       const int stageNo() const {return mStageNo;};
+       
+       // \83X\83N\83\8d\81[\83\8b\91¬\93
+       void scrollSpeed(const float value){mScrollSpeed = value * sf::system::instance()->deltaTime();};
+       const float scrollSpeed(void) const {return mScrollSpeed;}; 
+       
+       // \83X\83R\83A
+       void score(const int value){mScore = value;};
+       const int score(void) const {return mScore;};
+       
+       // \83X\83N\83\8d\81[\83\8b\88Ê\92
+       void scrollY(const float value){
+               mBackground.offsetY(value);
+               mScrollY = mBackground.offsetY();};
+       const float scrollY(void) const {return mScrollY;};
+       
+       // \83\8a\83X\83^\81[\83g\88Ê\92u\82Ì\90Ý\92è 
+       void restartPosition(const float value){mRestartPosition = value;};
+       const float restartPosition(void) const {return mRestartPosition;};
+
+       // \94z\92u\83f\81[\83^\90§\8cä\83I\83u\83W\83F\83N\83
+       sf::application::disposition::Controller* const controllerPtr(void) 
+       { return mpController;};
+
+       // \8fó\91Ô 
+       void state(const STATE value){mState = value;};
+       const STATE state(void) const {return mState;};
+
+       // \83^\83C\83}
+       const int timer (void) const {return mTimer;};
+       
+       // INQUIRY 
+
+private:
+
+       void main();
+       void initialize();
+       void resetObjects();
+       void loadStageData();
+       void over();
+       void clear();
+       void restart();
+
+       int mTimer;
+       STATE mState;
+
+
+       bool mbKeyboardListening;
+       
+       player::Ship* mpMyShip;
+       player::bullet::Bullets *mpBullets;
+       player::bullet::GroundBullets *mpGroundBullets;
+       enemy::Enemys *mpEnemys;
+       enemy::Bullets *mpEnemyBullets;
+       enemy::Armys *mpArmys;
+       Scene * mpStart;
+       effect::Effects *mpEffects;
+
+       sf::system::console::Background mBackground;
+       sf::application::disposition::Controller* mpController;
+       
+       float mScrollY;
+       float mScrollSpeed;
+       float mRestartPosition;
+       bool mbEdit;
+
+       DIFFICULTY mDifficulty;
+       float mCurrentDifficulty;
+       int mStageNo;
+       int mScore;
+       int mStageMax;
+       int mBgmId;
+
+       std::vector<Data> mStageData;
+};
+               }
+       }
+}
+
+#endif // !defined(AFX_GAME_H__41F747F0_5498_488A_AE73_BC66B991D0ED__INCLUDED_)
diff --git a/project/s2001scene/OverImpl.cpp b/project/s2001scene/OverImpl.cpp
new file mode 100644 (file)
index 0000000..a2ffa13
--- /dev/null
@@ -0,0 +1,166 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// OverImpl.cpp: OverImpl \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+// $Log: OverImpl.cpp,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.5  2001/07/09 20:30:09  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.4  2001/07/01 21:30:34  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.3  2001/07/01 01:03:44  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.2  2001/05/12 00:49:24  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include <stack>
+#include <list>
+
+#include "exception.h"
+#include "system.h"
+#include "sound.h"
+#include "console.h"
+#include "Obj.h"
+#include "Obj2D.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+#include "input.h"
+#include "Scene.h"
+#include "s2001.h"
+#include "main.h"
+
+#include "AbstractScene.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "OverImpl.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+using namespace sf::application::scene;
+
+const int OverImpl::PERIOD = 1000 / sf::system::TIMER_INTERVAL * 3;
+const char OverImpl::BGM_FILENAME[sf::system::MAX_PATH_] = "select.sgt";
+
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+OverImpl::OverImpl()
+{
+       mState = INITIALIZE;
+       mTimer1 = 0;
+}// OverImpl()
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+OverImpl::~OverImpl()
+{
+
+}// OverImpl()
+
+// \83X\83P\83W\83\85\81[\83\89 ---------------------------------------------------------------
+void OverImpl::move(void)
+{
+       switch(mState)
+       {
+       case INITIALIZE:
+               initialize();
+               break;
+       case MAIN:
+               main();
+               break;
+       }
+}// move()
+
+// \8f\89\8aú\89» --------------------------------------------------------------------
+void OverImpl::initialize()
+{
+       
+       mpSound->load(0,BGM_FILENAME);
+
+       mState = MAIN;
+       mTimer = PERIOD;
+       
+       // \83t\83F\81[\83h\83C\83\93\90Ý\92è     
+       
+}// intialize()
+
+//\81@\83\81\83C\83\93 \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void OverImpl::main()
+{
+       mTimer --;
+       
+       if(mpInput->exit(true))
+       {
+               exitKeyPressed(this);
+               return;
+       }
+
+       if(!mTimer || mpInput->start(true)){
+               end();
+               return;
+       }
+
+       printMessage();
+       
+}// main()
+
+//\81@\8fI\97¹\8f\88\97\9d\81@\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void OverImpl::end()
+{
+       callSceneEvent(&Listener::endOfScene);
+       delete this;
+       scene::createScene(TITLE);
+
+}// end()
+
+
+// \83t\83F\81[\83h\83C\83\93\82Ì\8fI\97¹ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void OverImpl::endOfScene(Scene * const pScene)
+{
+;
+}// endOfScene()
+
+// \83t\83F\81[\83h\83C\83\93\92\86\82É\82d\82w\82h\82s\83L\81[\82ª\89\9f\82³\82ê\82½\81I\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void OverImpl::exitKeyPressed(Scene * const pScene)
+{
+       callSceneEvent(&Listener::exitKeyPressed);
+
+       scene::createScene(TITLE);
+       delete this;
+}// 
+
+// \83X\83^\81[\83g\83\81\83b\83Z\81[\83W\82Ì\95\\8e¦ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void OverImpl::printMessage(void)
+{
+       using namespace sf::system::console;
+
+       mTimer1 ++;
+
+       // \83X\83^\81[\83g\95\8e\9a\97ñ\82ð\83u\83\8a\83\93\83N\95\\8e¦
+       if(mTimer1 & 0x8)
+       {
+               mpConsole->print(
+                       0,
+                       viewport::X + viewport::WIDTH / 2.0f - 12.0f / 2.0f * text::COLUMN_PITCH,
+                       viewport::Y + viewport::HEIGHT / 3.0f,
+                       0.0f,
+                       1.0f,
+                       0xffffffff,
+                       " GAME OVER ");
+       }
+
+}// printMessage()
diff --git a/project/s2001scene/OverImpl.h b/project/s2001scene/OverImpl.h
new file mode 100644 (file)
index 0000000..ffbbdbb
--- /dev/null
@@ -0,0 +1,68 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// OverImpl.h: OverImpl \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: OverImpl.h,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.4  2001/07/09 20:30:09  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.3  2001/07/01 01:03:44  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.2  2001/05/12 00:49:24  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_OVER_H__C67DB1AA_0291_4628_89CF_8BBB317B97A6__INCLUDED_)
+#define AFX_OVER_H__C67DB1AA_0291_4628_89CF_8BBB317B97A6__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "AbstractScene.h"
+namespace sf {
+       namespace application {
+               namespace scene {
+
+class OverImpl : public AbstractScene
+{
+public:
+       OverImpl();
+       virtual ~OverImpl();
+       // OPERATORS //
+       // OPERATIONS //
+       void endOfScene(Scene * const pScene);
+       void exitKeyPressed(Scene * const pScene);
+       void move(void);
+       // ACCESS //
+       virtual const TYPE type() const{return START;};
+       // INQUIRY //
+private:
+       void end(void);
+       void main(void);
+       void initialize(void);
+       void printMessage(void);
+       enum STATE {
+               INITIALIZE,
+               FADE_IN,
+               MAIN,
+               END
+       } mState;
+       int mTimer,mTimer1;
+       static const int PERIOD;
+       static const char BGM_FILENAME[sf::system::MAX_PATH_]; 
+
+};
+               }
+       }
+}
+#endif // !defined(AFX_OVER_H__C67DB1AA_0291_4628_89CF_8BBB317B97A6__INCLUDED_)
diff --git a/project/s2001scene/ReadMe.txt b/project/s2001scene/ReadMe.txt
new file mode 100644 (file)
index 0000000..2188f00
--- /dev/null
@@ -0,0 +1,41 @@
+========================================================================
+       \83_\83C\83i\83~\83b\83\83\8a\83\93\83\83\89\83C\83u\83\89\83\8a : s2001scene
+========================================================================
+
+
+AppWizard \82Í\82±\82Ì s2001scene DLL \82ð\8dì\90¬\82µ\82Ü\82µ\82½\81B
+
+\82±\82Ì\83t\83@\83C\83\8b\82É\82Í s2001scene \83A\83v\83\8a\83P\81[\83V\83\87\83\93\82ð\8d\\90¬\82µ\82Ä\82¢\82é\8ae\83t\83@\83C\83\8b\82Ì\8aT\97v
+\90à\96¾\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82Ü\82·\81B
+
+s2001scene.dsp
+    \82±\82Ì\83t\83@\83C\83\8b (\83v\83\8d\83W\83F\83N\83\83t\83@\83C\83\8b\82Í\83v\83\8d\83W\83F\83N\83\83\8c\83x\83\8b\82Ì\8fî\95ñ\82ð\8aÜ\82Ý\81A
+    \83V\83\93\83O\83\8b \83v\83\8d\83W\83F\83N\83g\82Ü\82½\82Í\83T\83\83v\83\8d\83W\83F\83N\83g\82Ì\83r\83\8b\83h\82É\8eg\97p\82³\82ê\82Ü\82·\81B\91¼\82Ì
+    \83\86\81[\83U\81[\82Æ\83v\83\8d\83W\83F\83N\83\83t\83@\83C\83\8b (.dsp) \82ð\8b¤\97L\82Å\82«\82Ü\82·\82ª\81A\83\81\83C\83\83t\83@\83C\83\8b
+    \82Í\83\8d\81[\83J\83\8b\82É\83G\83N\83X\83|\81[\83g\82µ\82Ä\82­\82¾\82³\82¢\81B
+s2001scene.cpp
+    \82±\82Ì\83t\83@\83C\83\8b\82Í DLL \82Ì\92\86\90S\82Æ\82È\82é\83\\81[\83\83t\83@\83C\83\8b\82Å\82·\81B
+
+       \8dì\90¬\82³\82ê\82½\8fó\91Ô\82Å\82Í\81A\82±\82Ì DLL \82Í\83V\83\93\83{\83\8b\82Ì\83G\83N\83X\83|\81[\83g\82ð\8ds\82Á\82Ä\82¢\82Ü\82¹\82ñ\81B
+       \82»\82Ì\82½\82ß\83r\83\8b\83h\82ð\8ds\82Á\82Ä\82à .LIB \83t\83@\83C\83\8b\82Í\8dì\90¬\82³\82ê\82Ü\82¹\82ñ\81B\82±\82Ì\83v\83\8d\83W\83F\83N\83g\82ð
+       \91¼\82Ì\83v\83\8d\83W\83F\83N\83g\82É\88Ë\91\8aÖ\8cW\82ð\8e\9d\82½\82¹\82½\82¢\8fê\8d\87\82É\82Í\81A\82±\82Ì DLL \82©\82ç\83V\83\93\83{\83\8b\82ð
+       \83G\83N\83X\83|\81[\83g\82·\82é\82½\82ß\82Ì\83R\81[\83h\82ð\92Ç\89Á\82µ\82Ä\83\89\83C\83u\83\89\83\8a\82Ì\83G\83N\83X\83|\81[\83g\82ð\8ds\82¢\81A
+       \83v\83\8d\83W\83F\83N\83g\90Ý\92è\82Ì [\83\8a\83\93\83N] \83^\83u\8fã\82Å [LIB \83t\83@\83C\83\8b\82ð\90\90¬\82µ\82È\82¢] \83I\83v\83V\83\87\83\93
+       \82ð\83N\83\8a\83A\82·\82é\95K\97v\82ª\82 \82è\82Ü\82·\81B
+
+/////////////////////////////////////////////////////////////////////////////
+\82»\82Ì\91¼\82Ì\95W\8f\80\83t\83@\83C\83\8b:
+
+StdAfx.h, StdAfx.cpp
+    \82±\82ê\82ç\82Ì\83t\83@\83C\83\8b\82Í\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\82Ý\83w\83b\83_\81[\83t\83@\83C\83\8b (PCH) s2001scene.pch
+    \82â\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\82Ý\8c^\83t\83@\83C\83\8b StdAfx.obj \82ð\8d\\92z\82·\82é\82½\82ß\82É\8eg\97p\82³\82ê\82Ü\82·\81B
+
+
+/////////////////////////////////////////////////////////////////////////////
+\82»\82Ì\91¼\82Ì\92\8d\88Ó:
+
+AppWizard \82Í "TODO:" \82Å\8en\82Ü\82é\83R\83\81\83\93\83g\82Å\81A\83\\81[\83X\83R\81[\83h\82Ì\92Ç\89Á\82â\83J\83X\83^\83}\83C\83Y\82Ì\95K\97v
+\82È\8fê\8f\8a\82ð\8e¦\82µ\82Ü\82·\81B
+
+
+/////////////////////////////////////////////////////////////////////////////
diff --git a/project/s2001scene/RestartImpl.cpp b/project/s2001scene/RestartImpl.cpp
new file mode 100644 (file)
index 0000000..158957f
--- /dev/null
@@ -0,0 +1,62 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Restart.cpp: Restart \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+// $Log: Restart.cpp,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.4  2001/07/09 20:30:09  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.3  2001/07/01 21:30:34  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.2  2001/05/12 00:49:17  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include <stack>
+#include <list>
+
+#include "exception.h"
+#include "system.h"
+#include "sound.h"
+#include "console.h"
+#include "Obj.h"
+#include "Obj2D.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+#include "input.h"
+#include "Scene.h"
+#include "s2001.h"
+#include "main.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "AbstractScene.h"
+#include "RestartImpl.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+using namespace sf::application::scene;
+
+RestartImpl::RestartImpl()
+{
+
+}
+
+RestartImpl::~RestartImpl()
+{
+
+}
diff --git a/project/s2001scene/RestartImpl.h b/project/s2001scene/RestartImpl.h
new file mode 100644 (file)
index 0000000..eaedf68
--- /dev/null
@@ -0,0 +1,40 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// RestartImpl.h: RestartImpl \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: RestartImpl.h,v $
+// Revision 1.1  2001/10/28 21:40:36  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.2  2001/05/12 00:49:17  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_RESTART_H__69987E67_DBE2_4526_A550_10B6C29D049E__INCLUDED_)
+#define AFX_RESTART_H__69987E67_DBE2_4526_A550_10B6C29D049E__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "AbstractScene.h"
+namespace sf {
+       namespace application {
+               namespace scene {
+
+class RestartImpl : public AbstractScene 
+{
+public:
+       RestartImpl();
+       virtual ~RestartImpl();
+
+};
+               }
+       }
+}
+
+#endif // !defined(AFX_RESTART_H__69987E67_DBE2_4526_A550_10B6C29D049E__INCLUDED_)
diff --git a/project/s2001scene/StartImpl.cpp b/project/s2001scene/StartImpl.cpp
new file mode 100644 (file)
index 0000000..46a3a72
--- /dev/null
@@ -0,0 +1,200 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// StartImpl.cpp: StartImpl \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+// $Log: StartImpl.cpp,v $
+// Revision 1.1  2001/10/28 21:40:37  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.5  2001/07/09 20:30:10  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.4  2001/07/01 21:30:34  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.3  2001/07/01 01:03:44  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.2  2001/05/12 00:48:55  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+
+#include <stack>
+#include <list>
+#include <vector>
+#include <map>
+
+#include "exception.h"
+#include "system.h"
+#include "sound.h"
+#include "console.h"
+#include "Obj.h"
+#include "Obj2D.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+#include "input.h"
+#include "Scene.h"
+#include "s2001.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "main.h"
+#include "fade.h" //\83t\83F\81[\83h\83C\83\93\81A\83t\83F\81[\83h\83A\83E\83g\83V\81[\83\93
+#include "AbstractScene.h"
+#include "StartImpl.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+using namespace sf::application::scene;
+
+
+const int StartImpl::PERIOD = 1000 / sf::system::TIMER_INTERVAL * 3;
+const char StartImpl::BGM_FILENAME[sf::system::MAX_PATH_] = "select.sgt";
+
+StartImpl::StartImpl()
+{
+       mTimer = PERIOD;
+       mTimer1 = 0;
+       mState = INITIALIZE;
+       mpScene = NULL;
+}// StartImpl()
+
+StartImpl::~StartImpl()
+{
+       if(mpScene)
+               delete mpScene;
+}// ~StartImpl()
+
+// \83X\83P\83W\83\85\81[\83\89 ---------------------------------------------------------------
+void StartImpl::move(void)
+{
+       switch(mState)
+       {
+       case INITIALIZE:
+               initialize();
+               return;
+       case FADE_IN:
+               fadeIn();
+               return;
+       case MAIN:
+               main();
+               return;
+       }
+}// move()
+
+// \8f\89\8aú\89» --------------------------------------------------------------------
+void StartImpl::initialize()
+{
+       Fade* pfade;
+
+       mpSound->load(0,BGM_FILENAME);
+
+       mState = MAIN;
+       
+       // \83t\83F\81[\83h\83C\83\93\90Ý\92è     
+       mpScene = scene::createScene(FADE);
+       mpScene->addListener(this);
+
+       // \83t\83F\81[\83h\83I\83u\83W\83F\83N\83g\8cÅ\97L\91®\90«\82É\83A\83N\83Z\83X
+       pfade = dynamic_cast<Fade *>(mpScene);
+       pfade->startColor(0xff000000);
+       pfade->endColor(0x00000000);
+       pfade->speed(0.05f);
+       pfade->fadeType(Fade::FADE_IN);
+       pfade->fadeVolumeFlag(false);
+
+       mState = FADE_IN;
+       sleep();
+}// intialize()
+
+//\81@\83\81\83C\83\93 \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+bool StartImpl::main()
+{
+       mTimer --;
+       
+       if(mpInput->exit(true))
+       {
+               exitKeyPressed(this);
+               return true;
+//             return end();
+       }
+
+       if(!mTimer){
+               return end();
+       }
+
+//     mpMain->printPlayerInfo();
+       printMessage();
+       
+       return true;
+}// main()
+
+//\81@\8fI\97¹\8f\88\97\9d\81@\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+bool StartImpl::end()
+{
+       callSceneEvent(&Listener::endOfScene);
+       delete this;
+       return true;
+}// end()
+
+// \83t\83F\81[\83h\83C\83\93 \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+bool StartImpl::fadeIn()
+{
+       printMessage(); 
+       return true;
+}// fadeIn()
+
+// \83t\83F\81[\83h\83C\83\93\82Ì\8fI\97¹ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void StartImpl::endOfScene(Scene *pScene)
+{
+       switch(mState)
+       {
+       case FADE_IN:
+               // BGM \89\89\91t\8aJ\8en
+               active();
+               mpSound->play(0,1,true,true);
+               mState = MAIN;
+               mpScene = NULL;
+               break;
+       }
+}// endOfScene()
+
+// \83t\83F\81[\83h\83C\83\93\92\86\82É\82d\82w\82h\82s\83L\81[\82ª\89\9f\82³\82ê\82½\81I\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void StartImpl::exitKeyPressed(Scene *pScene)
+{
+       callSceneEvent(&Listener::exitKeyPressed);
+       delete this;
+}// exitKeyPressed()
+
+// \83X\83^\81[\83g\83\81\83b\83Z\81[\83W\82Ì\95\\8e¦ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void StartImpl::printMessage()
+{
+       using namespace sf::system::console;
+
+       mTimer1 ++;
+
+       // \83X\83^\81[\83g\95\8e\9a\97ñ\82ð\83u\83\8a\83\93\83N\95\\8e¦
+       if(mTimer1 & 0x8)
+       {
+               mpConsole->print(
+                       0,
+                       viewport::X + viewport::WIDTH / 2.0f - 12.0f / 2.0f * text::COLUMN_PITCH,
+                       viewport::Y + viewport::HEIGHT / 8.0f,
+                       0.0f,
+                       1.0f,
+                       0xffffffff,
+                       "Game StartImpl!!");
+       }
+
+}// printMessage()
diff --git a/project/s2001scene/StartImpl.h b/project/s2001scene/StartImpl.h
new file mode 100644 (file)
index 0000000..f7f8120
--- /dev/null
@@ -0,0 +1,73 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// StartImpl.h: StartImpl \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \97\9a\97ð\81F
+// $Log: StartImpl.h,v $
+// Revision 1.1  2001/10/28 21:40:37  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.4  2001/07/09 20:30:10  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.3  2001/07/01 01:03:44  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.2  2001/05/12 00:48:55  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_START_H__60D87C34_6643_4E80_B0EB_3F418B3889C7__INCLUDED_)
+#define AFX_START_H__60D87C34_6643_4E80_B0EB_3F418B3889C7__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "AbstractScene.h"
+namespace sf {
+       namespace application {
+               namespace scene {
+
+
+class StartImpl : public AbstractScene
+{
+       // LIFECYCLE //
+public:
+       void endOfScene(Scene * const pScene);
+       void exitKeyPressed(Scene * const pScene);
+       StartImpl();
+       virtual ~StartImpl();
+       // OPERATORS //
+       // OPERATIONS //
+       void move(void);
+       // ACCESS //
+       const TYPE type() const {return START;};
+       // INQUIRY //
+private:
+       void printMessage();
+       bool end();
+       bool main();
+       bool fadeIn();
+       void initialize();
+       enum STATE {
+               INITIALIZE,
+               FADE_IN,
+               MAIN,
+               END
+       } mState;
+
+       int mTimer,mTimer1;
+       Scene *mpScene;
+
+       static const int PERIOD;
+       static const char BGM_FILENAME[sf::system::MAX_PATH_]; 
+};
+               }
+       }
+}
+
+#endif // !defined(AFX_START_H__60D87C34_6643_4E80_B0EB_3F418B3889C7__INCLUDED_)
diff --git a/project/s2001scene/StdAfx.cpp b/project/s2001scene/StdAfx.cpp
new file mode 100644 (file)
index 0000000..7ac69f1
--- /dev/null
@@ -0,0 +1,8 @@
+// stdafx.cpp : \95W\8f\80\83C\83\93\83N\83\8b\81[\83h\83t\83@\83C\83\8b\82ð\8aÜ\82Þ\83\\81[\83\83t\83@\83C\83\8b
+//              s2001scene.pch \90\90¬\82³\82ê\82é\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\83w\83b\83_\81[
+//              stdafx.obj \90\90¬\82³\82ê\82é\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\83^\83C\83v\8fî\95ñ
+
+#include "stdafx.h"
+
+// TODO: STDAFX.H \82É\8aÜ\82Ü\82ê\82Ä\82¢\82Ä\81A\82±\82Ì\83t\83@\83C\83\8b\82É\8bL\8fq\82³\82ê\82Ä\82¢\82È\82¢
+// \83w\83b\83_\81[\83t\83@\83C\83\8b\82ð\92Ç\89Á\82µ\82Ä\82­\82¾\82³\82¢\81B
diff --git a/project/s2001scene/StdAfx.h b/project/s2001scene/StdAfx.h
new file mode 100644 (file)
index 0000000..bb17a86
--- /dev/null
@@ -0,0 +1,30 @@
+// stdafx.h : \95W\8f\80\82Ì\83V\83X\83e\83\80 \83C\83\93\83N\83\8b\81[\83\83t\83@\83C\83\8b\81A
+//            \82Ü\82½\82Í\8eQ\8fÆ\89ñ\90\94\82ª\91½\82­\81A\82©\82Â\82 \82Ü\82è\95Ï\8dX\82³\82ê\82È\82¢
+//            \83v\83\8d\83W\83F\83N\83g\90ê\97p\82Ì\83C\83\93\83N\83\8b\81[\83\83t\83@\83C\83\8b\82ð\8bL\8fq\82µ\82Ü\82·\81B
+//
+
+#if !defined(AFX_STDAFX_H__DDC02B52_EF1C_443A_B453_ABFD7CA69CEA__INCLUDED_)
+#define AFX_STDAFX_H__DDC02B52_EF1C_443A_B453_ABFD7CA69CEA__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+
+// \82±\82Ì\88Ê\92u\82É\83w\83b\83_\81[\82ð\91}\93ü\82µ\82Ä\82­\82¾\82³\82¢
+#define WIN32_LEAN_AND_MEAN            // Windows \83w\83b\83_\81[\82©\82ç\96w\82Ç\8eg\97p\82³\82ê\82È\82¢\83X\83^\83b\83t\82ð\8f\9c\8aO\82µ\82Ü\82·
+
+#include <windows.h>
+
+#ifdef S2001SCENE_EXPORTS 
+       #define S2001SCENE_DLL __declspec(dllexport)
+#else
+       #define S2001SCENE_DLL __declspec(dllimport)
+#endif
+
+// TODO: \83v\83\8d\83O\83\89\83\80\82Å\95K\97v\82È\83w\83b\83_\81[\8eQ\8fÆ\82ð\92Ç\89Á\82µ\82Ä\82­\82¾\82³\82¢\81B
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ \82Í\91O\8ds\82Ì\92¼\91O\82É\92Ç\89Á\82Ì\90é\8c¾\82ð\91}\93ü\82µ\82Ü\82·\81B
+
+#endif // !defined(AFX_STDAFX_H__DDC02B52_EF1C_443A_B453_ABFD7CA69CEA__INCLUDED_)
diff --git a/project/s2001scene/SystemWin32.cpp b/project/s2001scene/SystemWin32.cpp
new file mode 100644 (file)
index 0000000..bbbccd0
--- /dev/null
@@ -0,0 +1,20 @@
+// SystemWin32.cpp: SystemWin32 \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//
+//////////////////////////////////////////////////////////////////////
+
+#include "stdafx.h"
+#include "SystemWin32.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+SystemWin32::SystemWin32()
+{
+
+}
+
+SystemWin32::~SystemWin32()
+{
+
+}
diff --git a/project/s2001scene/SystemWin32.h b/project/s2001scene/SystemWin32.h
new file mode 100644 (file)
index 0000000..5020acb
--- /dev/null
@@ -0,0 +1,20 @@
+// SystemWin32.h: SystemWin32 \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//
+//////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_SYSTEMWIN32_H__2A496587_75EC_4A9C_898E_69B0ACA87242__INCLUDED_)
+#define AFX_SYSTEMWIN32_H__2A496587_75EC_4A9C_898E_69B0ACA87242__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+class SystemWin32  
+{
+public:
+       SystemWin32();
+       virtual ~SystemWin32();
+
+};
+
+#endif // !defined(AFX_SYSTEMWIN32_H__2A496587_75EC_4A9C_898E_69B0ACA87242__INCLUDED_)
diff --git a/project/s2001scene/TitleImpl.cpp b/project/s2001scene/TitleImpl.cpp
new file mode 100644 (file)
index 0000000..e7571ed
--- /dev/null
@@ -0,0 +1,225 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// TitleImpl.cpp: TitleImpl \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+// $Log: TitleImpl.cpp,v $
+// Revision 1.1  2001/10/28 21:40:37  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.5  2001/07/09 20:30:10  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.4  2001/07/01 21:30:34  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.3  2001/07/01 01:03:45  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.2  2001/05/12 00:48:42  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include <stack>
+#include <list>
+
+#include "exception.h"
+#include "system.h"
+#include "sound.h"
+#include "console.h"
+#include "Obj.h"
+#include "Obj2D.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+#include "input.h"
+#include "Scene.h"
+#include "s2001.h"
+#include "main.h"
+#include "AbstractScene.h"
+#include "Fade.h"
+
+#include "TitleImpl.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+using namespace sf::application::scene;
+using namespace sf::system;
+const int TitleImpl::PERIOD    = 1000 / TIMER_INTERVAL * 10;//(10 Sec)
+
+//const console::sprite::Info TitleImpl::SPRITE_INFO =
+//     { "media\\test.x",0.0f,0.0f,0.0f,0.0f,0xff000000,console::sprite::MESH};
+
+const console::sprite::Info TitleImpl::SPRITE_INFO_TITLE =
+       { "media\\title.png",0.0f,0.0f,0.0f,0.0f,0xff000000,console::sprite::SPRITE3D};
+
+// \83R\83\93\83X\83g\83\89\83N\83^ -------------------------------------------------------------
+TitleImpl::TitleImpl() : AbstractScene()
+{
+       mTimer = 0;
+       mState = INITIALIZE;
+       //mpSpriteMyShip = 
+       mpSpriteTitle = NULL;
+
+}// TitleImpl::TitleImpl()
+
+//\83f\83X\83g\83\89\83N\83^ ----------------------------------------------------------------
+TitleImpl::~TitleImpl()
+{
+//     delete mpSpriteMyShip;
+       delete mpSpriteTitle;
+
+}// TitleImpl::~TitleImpl()
+
+// \83t\83\8c\81[\83\80\8f\88\97\9d ---------------------------------------------------------------
+void TitleImpl::move(void)
+{
+
+       switch(mState)
+       {
+       case INITIALIZE:
+               initialize();
+               return;
+       // \83\81\83C\83\93 -------------------------------------
+       case MAIN:
+               main();
+               return;
+       case END:
+    ;
+       }
+}// TitleImpl::move()
+
+//TitleImpl Scene \82Ì\8fI\97¹ ---------------------------------------------------------
+void TitleImpl::endOfScene(Scene * const pScene)
+{
+       callSceneEvent(&Listener::endOfScene);
+       delete this;
+} //endOfScene()
+
+// exit key \82ª\89\9f\82³\82ê\82½\81I ------------------------------------------------------
+void TitleImpl::exitKeyPressed(Scene * const pScene)
+{
+       callSceneEvent(&Listener::exitKeyPressed);
+       delete this;
+} //endOfScene()
+
+// \8f\89\8aú\89» ----------------------------------------------------------------------
+void TitleImpl::initialize()
+{
+
+       mpSound->load(0,"select.sgt");
+       
+//     if(NULL == (mpSpriteMyShip = mpConsole->createSprite(&SPRITE_INFO)) )
+//     {
+//             mpSystem->outputError("TitleImpl.move():Bitmap File Load Error");
+//             return false;
+//     }
+
+       mpSpriteTitle = mpConsole->createSprite(&SPRITE_INFO_TITLE);
+
+       mState = MAIN;
+       
+       // \83^\83C\83g\83\8b\83r\83b\83g\83}\83b\83v\82Ì\83Z\83b\83g\83A\83b\83v
+/* mTitleObj.color(0xffffffff);
+       mTitleObj.specular(0xff000000);
+
+       mTitleObj.x(system::console::viewport::X + system::console::viewport::WIDTH / 2.0f);
+       mTitleObj.y(system::console::viewport::Y + 300.0f);
+
+       mTitleObj.z(0.5f);
+       mTitleObj.sprite(mpSpriteMyShip);
+       mTitleObj.visibility(true);
+*/
+       // \83^\83C\83g\83\8b\83r\83b\83g\83}\83b\83v\82Ì\83Z\83b\83g\83A\83b\83v
+       mTitleObj1.color(0xffffffff);
+       mTitleObj1.specular(0xff000000);
+
+       mTitleObj1.x(system::console::viewport::X + system::console::viewport::WIDTH / 2.0f);
+       mTitleObj1.y(system::console::viewport::Y + 100.0f);
+
+       mTitleObj1.z(0.0f);
+       mTitleObj1.sprite(mpSpriteTitle);
+       mTitleObj1.visibility(true);
+       
+       // \83t\83F\81[\83h\83C\83\93\90Ý\92è     
+       Fade *pfade = dynamic_cast<Fade*>(scene::createScene(FADE));
+       pfade->startColor(0xff000000);
+       pfade->endColor(0x00000000);
+       pfade->speed(0.02f);
+       pfade->fadeType(Fade::FADE_IN);
+       pfade->fadeVolumeFlag(true);
+       
+       mState = MAIN;
+       mSoundID =      sf::system::instance()->sound()->load("title.wav");
+       sf::system::instance()->sound()->play(mSoundID,0,false,false);
+
+}// initialize();
+
+// \83V\81[\83\93\82Ì\83\81\83C\83\93 ------------------------------------------------------------
+void TitleImpl::main()
+{
+       mTimer ++;
+       float r = PI * 2.0f / 1024.0f * (float)(mTimer & 0x3ff);
+//     mTitleObj.angleX(r);
+//     mTitleObj.angleY(r);
+
+       mTitleObj1.angleX(r);
+
+       // \83X\83^\81[\83g\89æ\96Ê\82Ì\95\\8e¦ 
+       if(mTimer & 0x10)
+       {
+               mpConsole->print(
+                       0,
+                       system::console::viewport::X + system::console::viewport::WIDTH / 2 - 144.0f,
+                       system::console::viewport::Y + 300.0f,
+                       0.0f,1.0f,0xffffffff,"Start Game: A Button Or Space Key");
+               mpConsole->print(
+                       0,
+                       system::console::viewport::X + system::console::viewport::WIDTH / 2 - 135.0f,
+                       system::console::viewport::Y + 310.0f,
+                       0.0f,1.0f,0xffffffff,"Exit Game: ESC Key");
+
+       } else {
+               mpConsole->print(
+                       0,
+                       system::console::viewport::X + system::console::viewport::WIDTH / 2 - 144.0f,
+                       system::console::viewport::Y + 300.0f,
+                       0.0f,1.0f,0x80ffffff,"Start Game: A Button Or Space Key");
+
+               mpConsole->print(
+                       0,
+                       system::console::viewport::X + system::console::viewport::WIDTH / 2 - 135.0f,
+                       system::console::viewport::Y + 310.0f,
+                       0.0f,1.0f,0x80ffffff,"Exit Game: ESC Key");
+
+       }
+
+       // \82d\82w\82h\82s\83L\81[\82ª\89\9f\82³\82ê\82½\82©\81H
+       if(mpInput->exit(true)) {
+               exitKeyPressed(this);
+               return;
+       }
+
+       // \83X\83^\81[\82Æ\83L\81[\82ª\89\9f\82³\82ê\82½\82©\81H
+       if(mpInput->start(true)){
+               mpSound->play(0,1,true,true);
+               endOfScene(this);
+               scene::createScene(GAME);
+       }
+
+}// main() 
+
+
diff --git a/project/s2001scene/TitleImpl.h b/project/s2001scene/TitleImpl.h
new file mode 100644 (file)
index 0000000..ddebda5
--- /dev/null
@@ -0,0 +1,74 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// TitleImpl.h: TitleImpl \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+// $Log: TitleImpl.h,v $
+// Revision 1.1  2001/10/28 21:40:37  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.4  2001/07/09 20:30:10  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.3  2001/07/01 01:03:45  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.2  2001/05/12 00:48:42  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+
+#if !defined(AFX_TITLE_H__CD1C05DB_BB7E_4086_83DE_55E203830952__INCLUDED_)
+#define AFX_TITLE_H__CD1C05DB_BB7E_4086_83DE_55E203830952__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "AbstractScene.h"
+namespace sf {
+       namespace application {
+               namespace scene {
+
+class TitleImpl : public AbstractScene
+{
+public:
+       TitleImpl();
+       virtual ~TitleImpl();
+       void move(void);
+       void endOfScene(Scene * const pScene);
+       void exitKeyPressed(Scene * const pScene);
+
+       virtual const TYPE type() const{return TITLE;};
+private:
+       void main();
+       void initialize();
+
+
+       enum STATE {
+               INITIALIZE,
+               MAIN,
+               END
+       };
+
+       int mTimer;
+       STATE mState;
+       int mSoundID;
+//     system::console::Obj3DL mTitleObj;
+       system::console::Obj3DL mTitleObj1;
+//     system::console::sprite::Sprite *mpSpriteMyShip;
+       system::console::sprite::Sprite *mpSpriteTitle;
+
+       static const int PERIOD;
+//     static const system::console::sprite::Info SPRITE_INFO;
+       static const system::console::sprite::Info SPRITE_INFO_TITLE;
+
+};// TitleImpl
+
+               }// scene
+       }// appplication
+}// sf
+
+#endif // !defined(AFX_TITLE_H__CD1C05DB_BB7E_4086_83DE_55E203830952__INCLUDED_)
diff --git a/project/s2001scene/fade.prep b/project/s2001scene/fade.prep
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/project/s2001scene/fade.prep.txt b/project/s2001scene/fade.prep.txt
new file mode 100644 (file)
index 0000000..7e7ed91
--- /dev/null
@@ -0,0 +1,51953 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4001)
+#pragma warning(disable:4201)
+#pragma warning(disable:4214)
+#pragma warning(disable:4514)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef enum _EXCEPTION_DISPOSITION {
+    ExceptionContinueExecution,
+    ExceptionContinueSearch,
+    ExceptionNestedException,
+    ExceptionCollidedUnwind
+} EXCEPTION_DISPOSITION;
+
+
+
+
+
+
+
+
+
+
+
+struct _EXCEPTION_RECORD;
+struct _CONTEXT;
+
+EXCEPTION_DISPOSITION __cdecl _except_handler (
+    struct _EXCEPTION_RECORD *ExceptionRecord,
+    void * EstablisherFrame,
+    struct _CONTEXT *ContextRecord,
+    void * DispatcherContext
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+unsigned long __cdecl _exception_code(void);
+void *        __cdecl _exception_info(void);
+int           __cdecl _abnormal_termination(void);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+typedef char *  va_list;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+typedef unsigned long ULONG;
+typedef ULONG *PULONG;
+typedef unsigned short USHORT;
+typedef USHORT *PUSHORT;
+typedef unsigned char UCHAR;
+typedef UCHAR *PUCHAR;
+typedef char *PSZ;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef unsigned long       DWORD;
+typedef int                 BOOL;
+typedef unsigned char       BYTE;
+typedef unsigned short      WORD;
+typedef float               FLOAT;
+typedef FLOAT               *PFLOAT;
+typedef BOOL            *PBOOL;
+typedef BOOL             *LPBOOL;
+typedef BYTE            *PBYTE;
+typedef BYTE             *LPBYTE;
+typedef int             *PINT;
+typedef int              *LPINT;
+typedef WORD            *PWORD;
+typedef WORD             *LPWORD;
+typedef long             *LPLONG;
+typedef DWORD           *PDWORD;
+typedef DWORD            *LPDWORD;
+typedef void             *LPVOID;
+typedef const void       *LPCVOID;
+
+typedef int                 INT;
+typedef unsigned int        UINT;
+typedef unsigned int        *PUINT;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef unsigned short wchar_t;
+
+
+
+
+
+typedef wchar_t wint_t;
+typedef wchar_t wctype_t;
+
+
+
+
+
+
+
+
+
+
+ extern unsigned short _ctype[];
+ extern unsigned short *_pctype;
+
+ extern wctype_t *_pwctype;
+
+
+
+
+
+
+
+
+
+
+                                
+
+
+
+
+
+
+
+
+
+
+
+
+
+ int __cdecl _isctype(int, int);
+ int __cdecl isalpha(int);
+ int __cdecl isupper(int);
+ int __cdecl islower(int);
+ int __cdecl isdigit(int);
+ int __cdecl isxdigit(int);
+ int __cdecl isspace(int);
+ int __cdecl ispunct(int);
+ int __cdecl isalnum(int);
+ int __cdecl isprint(int);
+ int __cdecl isgraph(int);
+ int __cdecl iscntrl(int);
+ int __cdecl toupper(int);
+ int __cdecl tolower(int);
+ int __cdecl _tolower(int);
+ int __cdecl _toupper(int);
+ int __cdecl __isascii(int);
+ int __cdecl __toascii(int);
+ int __cdecl __iscsymf(int);
+ int __cdecl __iscsym(int);
+
+
+
+
+
+
+
+
+
+
+
+ int __cdecl iswalpha(wint_t);
+ int __cdecl iswupper(wint_t);
+ int __cdecl iswlower(wint_t);
+ int __cdecl iswdigit(wint_t);
+ int __cdecl iswxdigit(wint_t);
+ int __cdecl iswspace(wint_t);
+ int __cdecl iswpunct(wint_t);
+ int __cdecl iswalnum(wint_t);
+ int __cdecl iswprint(wint_t);
+ int __cdecl iswgraph(wint_t);
+ int __cdecl iswcntrl(wint_t);
+ int __cdecl iswascii(wint_t);
+ int __cdecl isleadbyte(int);
+
+ wchar_t __cdecl towupper(wchar_t);
+ wchar_t __cdecl towlower(wchar_t);
+
+ int __cdecl iswctype(wint_t, wctype_t);
+
+
+ int __cdecl is_wctype(wint_t, wctype_t);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ extern int __mb_cur_max;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef unsigned long POINTER_64_INT;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+
+
+
+
+typedef int LONG32, *PLONG32;
+typedef int INT32, *PINT32;
+
+
+
+
+
+typedef unsigned int ULONG32, *PULONG32;
+typedef unsigned int DWORD32, *PDWORD32;
+typedef unsigned int UINT32, *PUINT32;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef long INT_PTR, *PINT_PTR;
+typedef unsigned long UINT_PTR, *PUINT_PTR;
+
+
+
+
+
+typedef unsigned short UHALF_PTR, *PUHALF_PTR;
+typedef short HALF_PTR, *PHALF_PTR;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef UINT_PTR SIZE_T, *PSIZE_T;
+typedef INT_PTR SSIZE_T, *PSSIZE_T;
+
+
+
+
+
+typedef __int64 LONG64, *PLONG64;
+typedef __int64 INT64, *PINT64;
+
+
+
+
+
+
+typedef unsigned __int64 ULONG64, *PULONG64;
+typedef unsigned __int64 DWORD64, *PDWORD64;
+typedef unsigned __int64 UINT64, *PUINT64;
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef void *PVOID;
+typedef void *  PVOID64;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef char CHAR;
+typedef short SHORT;
+typedef long LONG;
+
+
+
+
+
+
+
+typedef wchar_t WCHAR;    
+
+
+
+
+
+typedef WCHAR *PWCHAR;
+typedef WCHAR *LPWCH, *PWCH;
+typedef const WCHAR *LPCWCH, *PCWCH;
+typedef WCHAR *NWPSTR;
+typedef WCHAR *LPWSTR, *PWSTR;
+
+typedef const WCHAR *LPCWSTR, *PCWSTR;
+
+
+
+
+typedef CHAR *PCHAR;
+typedef CHAR *LPCH, *PCH;
+
+typedef const CHAR *LPCCH, *PCCH;
+typedef CHAR *NPSTR;
+typedef CHAR *LPSTR, *PSTR;
+typedef const CHAR *LPCSTR, *PCSTR;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef char TCHAR, *PTCHAR;
+typedef unsigned char TBYTE , *PTBYTE ;
+
+
+
+typedef LPSTR LPTCH, PTCH;
+typedef LPSTR PTSTR, LPTSTR;
+typedef LPCSTR LPCTSTR;
+
+
+
+
+
+
+typedef SHORT *PSHORT;  
+typedef LONG *PLONG;    
+
+
+typedef void *HANDLE;
+
+
+
+
+
+typedef HANDLE *PHANDLE;
+
+
+
+
+
+typedef BYTE   FCHAR;
+typedef WORD   FSHORT;
+typedef DWORD  FLONG;
+
+
+
+
+
+typedef LONG HRESULT;
+
+
+
+
+    
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef char CCHAR;          
+typedef DWORD LCID;         
+typedef PDWORD PLCID;       
+typedef WORD   LANGID;      
+  
+  
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _FLOAT128 {
+    __int64 LowPart;
+    __int64 HighPart;
+} FLOAT128;
+
+typedef FLOAT128 *PFLOAT128;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef __int64 LONGLONG;
+typedef unsigned __int64 ULONGLONG;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef LONGLONG *PLONGLONG;
+typedef ULONGLONG *PULONGLONG;
+
+
+
+typedef LONGLONG USN;
+
+
+
+
+typedef union _LARGE_INTEGER {
+    struct {
+        DWORD LowPart;
+        LONG HighPart;
+    };
+    struct {
+        DWORD LowPart;
+        LONG HighPart;
+    } u;
+
+    LONGLONG QuadPart;
+} LARGE_INTEGER;
+
+typedef LARGE_INTEGER *PLARGE_INTEGER;
+
+
+
+
+
+typedef union _ULARGE_INTEGER {
+    struct {
+        DWORD LowPart;
+        DWORD HighPart;
+    };
+    struct {
+        DWORD LowPart;
+        DWORD HighPart;
+    } u;
+
+    ULONGLONG QuadPart;
+} ULARGE_INTEGER;
+
+typedef ULARGE_INTEGER *PULARGE_INTEGER;
+
+
+
+
+
+
+
+
+typedef struct _LUID {
+    DWORD LowPart;
+    LONG HighPart;
+} LUID, *PLUID;
+
+
+typedef ULONGLONG  DWORDLONG;
+typedef DWORDLONG *PDWORDLONG;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ULONGLONG
+__stdcall
+Int64ShllMod32 (
+    ULONGLONG Value,
+    DWORD ShiftCount
+    );
+
+LONGLONG
+__stdcall
+Int64ShraMod32 (
+    LONGLONG Value,
+    DWORD ShiftCount
+    );
+
+ULONGLONG
+__stdcall
+Int64ShrlMod32 (
+    ULONGLONG Value,
+    DWORD ShiftCount
+    );
+
+#pragma warning(disable:4035)               
+
+__inline ULONGLONG
+__stdcall
+Int64ShllMod32 (
+    ULONGLONG Value,
+    DWORD ShiftCount
+    )
+{
+    __asm    {
+        mov     ecx, ShiftCount
+        mov     eax, dword ptr [Value]
+        mov     edx, dword ptr [Value+4]
+        shld    edx, eax, cl
+        shl     eax, cl
+    }
+}
+
+__inline LONGLONG
+__stdcall
+Int64ShraMod32 (
+    LONGLONG Value,
+    DWORD ShiftCount
+    )
+{
+    __asm {
+        mov     ecx, ShiftCount
+        mov     eax, dword ptr [Value]
+        mov     edx, dword ptr [Value+4]
+        shrd    eax, edx, cl
+        sar     edx, cl
+    }
+}
+
+__inline ULONGLONG
+__stdcall
+Int64ShrlMod32 (
+    ULONGLONG Value,
+    DWORD ShiftCount
+    )
+{
+    __asm    {
+        mov     ecx, ShiftCount
+        mov     eax, dword ptr [Value]
+        mov     edx, dword ptr [Value+4]
+        shrd    eax, edx, cl
+        shr     edx, cl
+    }
+}
+
+#pragma warning(default:4035)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef BYTE  BOOLEAN;           
+typedef BOOLEAN *PBOOLEAN;       
+
+
+
+
+
+typedef struct _LIST_ENTRY {
+   struct _LIST_ENTRY *Flink;
+   struct _LIST_ENTRY *Blink;
+} LIST_ENTRY, *PLIST_ENTRY, * PRLIST_ENTRY;
+
+
+
+
+
+
+typedef struct _SINGLE_LIST_ENTRY {
+    struct _SINGLE_LIST_ENTRY *Next;
+} SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
+
+
+
+
+
+
+
+
+typedef struct _GUID {          
+    DWORD Data1;
+    WORD   Data2;
+    WORD   Data3;
+    BYTE  Data4[8];
+} GUID;
+
+
+
+
+
+
+typedef struct  _OBJECTID {     
+    GUID Lineage;
+    DWORD Uniquifier;
+} OBJECTID;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  
+
+
+
+
+
+typedef UINT_PTR KSPIN_LOCK;
+typedef KSPIN_LOCK *PKSPIN_LOCK;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+struct _TEB *
+NtCurrentTeb(void);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4164)   
+                                
+
+#pragma function(_enable)
+#pragma function(_disable)
+
+
+#pragma warning(default:4164)   
+
+
+
+
+
+
+#pragma warning (disable:4035)        
+_inline PVOID GetFiberData( void ) { __asm {
+                                        mov eax, fs:[0x10]
+                                        mov eax,[eax]
+                                        }
+                                     }
+_inline PVOID GetCurrentFiber( void ) { __asm mov eax, fs:[0x10] }
+
+#pragma warning (default:4035)        
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _FLOATING_SAVE_AREA {
+    DWORD   ControlWord;
+    DWORD   StatusWord;
+    DWORD   TagWord;
+    DWORD   ErrorOffset;
+    DWORD   ErrorSelector;
+    DWORD   DataOffset;
+    DWORD   DataSelector;
+    BYTE    RegisterArea[80];
+    DWORD   Cr0NpxState;
+} FLOATING_SAVE_AREA;
+
+typedef FLOATING_SAVE_AREA *PFLOATING_SAVE_AREA;
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _CONTEXT {
+
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+
+    DWORD ContextFlags;
+
+    
+    
+    
+    
+    
+
+    DWORD   Dr0;
+    DWORD   Dr1;
+    DWORD   Dr2;
+    DWORD   Dr3;
+    DWORD   Dr6;
+    DWORD   Dr7;
+
+    
+    
+    
+    
+
+    FLOATING_SAVE_AREA FloatSave;
+
+    
+    
+    
+    
+
+    DWORD   SegGs;
+    DWORD   SegFs;
+    DWORD   SegEs;
+    DWORD   SegDs;
+
+    
+    
+    
+    
+
+    DWORD   Edi;
+    DWORD   Esi;
+    DWORD   Ebx;
+    DWORD   Edx;
+    DWORD   Ecx;
+    DWORD   Eax;
+
+    
+    
+    
+    
+
+    DWORD   Ebp;
+    DWORD   Eip;
+    DWORD   SegCs;              
+    DWORD   EFlags;             
+    DWORD   Esp;
+    DWORD   SegSs;
+
+    
+    
+    
+    
+    
+
+    BYTE    ExtendedRegisters[512];
+
+} CONTEXT;
+
+
+
+typedef CONTEXT *PCONTEXT;
+
+
+
+
+
+
+
+
+
+typedef struct _LDT_ENTRY {
+    WORD    LimitLow;
+    WORD    BaseLow;
+    union {
+        struct {
+            BYTE    BaseMid;
+            BYTE    Flags1;     
+            BYTE    Flags2;     
+            BYTE    BaseHi;
+        } Bytes;
+        struct {
+            DWORD   BaseMid : 8;
+            DWORD   Type : 5;
+            DWORD   Dpl : 2;
+            DWORD   Pres : 1;
+            DWORD   LimitHi : 4;
+            DWORD   Sys : 1;
+            DWORD   Reserved_0 : 1;
+            DWORD   Default_Big : 1;
+            DWORD   Granularity : 1;
+            DWORD   BaseHi : 8;
+        } Bits;
+    } HighWord;
+} LDT_ENTRY, *PLDT_ENTRY;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _EXCEPTION_RECORD {
+    DWORD    ExceptionCode;
+    DWORD ExceptionFlags;
+    struct _EXCEPTION_RECORD *ExceptionRecord;
+    PVOID ExceptionAddress;
+    DWORD NumberParameters;
+    UINT_PTR ExceptionInformation[15];
+    } EXCEPTION_RECORD;
+
+typedef EXCEPTION_RECORD *PEXCEPTION_RECORD;
+
+
+
+
+
+typedef struct _EXCEPTION_POINTERS {
+    PEXCEPTION_RECORD ExceptionRecord;
+    PCONTEXT ContextRecord;
+} EXCEPTION_POINTERS, *PEXCEPTION_POINTERS;
+typedef PVOID PACCESS_TOKEN;            
+typedef PVOID PSECURITY_DESCRIPTOR;     
+typedef PVOID PSID;     
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef DWORD ACCESS_MASK;
+typedef ACCESS_MASK *PACCESS_MASK;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _GENERIC_MAPPING {
+    ACCESS_MASK GenericRead;
+    ACCESS_MASK GenericWrite;
+    ACCESS_MASK GenericExecute;
+    ACCESS_MASK GenericAll;
+} GENERIC_MAPPING;
+typedef GENERIC_MAPPING *PGENERIC_MAPPING;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(push)
+
+#pragma pack(4)
+
+
+
+
+
+
+typedef struct _LUID_AND_ATTRIBUTES {
+    LUID Luid;
+    DWORD Attributes;
+    } LUID_AND_ATTRIBUTES, * PLUID_AND_ATTRIBUTES;
+typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[1];
+typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _SID_IDENTIFIER_AUTHORITY {
+    BYTE  Value[6];
+} SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY;
+
+
+
+
+
+typedef struct _SID {
+   BYTE  Revision;
+   BYTE  SubAuthorityCount;
+   SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
+
+
+
+   DWORD SubAuthority[1];
+
+} SID, *PISID;
+
+
+
+
+
+                                                
+
+typedef enum _SID_NAME_USE {
+    SidTypeUser = 1,
+    SidTypeGroup,
+    SidTypeDomain,
+    SidTypeAlias,
+    SidTypeWellKnownGroup,
+    SidTypeDeletedAccount,
+    SidTypeInvalid,
+    SidTypeUnknown,
+    SidTypeComputer
+} SID_NAME_USE, *PSID_NAME_USE;
+
+typedef struct _SID_AND_ATTRIBUTES {
+    PSID Sid;
+    DWORD Attributes;
+    } SID_AND_ATTRIBUTES, * PSID_AND_ATTRIBUTES;
+
+typedef SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[1];
+typedef SID_AND_ATTRIBUTES_ARRAY *PSID_AND_ATTRIBUTES_ARRAY;
+
+
+\f
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\f
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+\f
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _ACL {
+    BYTE  AclRevision;
+    BYTE  Sbz1;
+    WORD   AclSize;
+    WORD   AceCount;
+    WORD   Sbz2;
+} ACL;
+typedef ACL *PACL;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _ACE_HEADER {
+    BYTE  AceType;
+    BYTE  AceFlags;
+    WORD   AceSize;
+} ACE_HEADER;
+typedef ACE_HEADER *PACE_HEADER;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _ACCESS_ALLOWED_ACE {
+    ACE_HEADER Header;
+    ACCESS_MASK Mask;
+    DWORD SidStart;
+} ACCESS_ALLOWED_ACE;
+
+typedef ACCESS_ALLOWED_ACE *PACCESS_ALLOWED_ACE;
+
+typedef struct _ACCESS_DENIED_ACE {
+    ACE_HEADER Header;
+    ACCESS_MASK Mask;
+    DWORD SidStart;
+} ACCESS_DENIED_ACE;
+typedef ACCESS_DENIED_ACE *PACCESS_DENIED_ACE;
+
+typedef struct _SYSTEM_AUDIT_ACE {
+    ACE_HEADER Header;
+    ACCESS_MASK Mask;
+    DWORD SidStart;
+} SYSTEM_AUDIT_ACE;
+typedef SYSTEM_AUDIT_ACE *PSYSTEM_AUDIT_ACE;
+
+typedef struct _SYSTEM_ALARM_ACE {
+    ACE_HEADER Header;
+    ACCESS_MASK Mask;
+    DWORD SidStart;
+} SYSTEM_ALARM_ACE;
+typedef SYSTEM_ALARM_ACE *PSYSTEM_ALARM_ACE;
+
+
+
+
+typedef struct _ACCESS_ALLOWED_OBJECT_ACE {
+    ACE_HEADER Header;
+    ACCESS_MASK Mask;
+    DWORD Flags;
+    GUID ObjectType;
+    GUID InheritedObjectType;
+    DWORD SidStart;
+} ACCESS_ALLOWED_OBJECT_ACE, *PACCESS_ALLOWED_OBJECT_ACE;
+
+typedef struct _ACCESS_DENIED_OBJECT_ACE {
+    ACE_HEADER Header;
+    ACCESS_MASK Mask;
+    DWORD Flags;
+    GUID ObjectType;
+    GUID InheritedObjectType;
+    DWORD SidStart;
+} ACCESS_DENIED_OBJECT_ACE, *PACCESS_DENIED_OBJECT_ACE;
+
+typedef struct _SYSTEM_AUDIT_OBJECT_ACE {
+    ACE_HEADER Header;
+    ACCESS_MASK Mask;
+    DWORD Flags;
+    GUID ObjectType;
+    GUID InheritedObjectType;
+    DWORD SidStart;
+} SYSTEM_AUDIT_OBJECT_ACE, *PSYSTEM_AUDIT_OBJECT_ACE;
+
+typedef struct _SYSTEM_ALARM_OBJECT_ACE {
+    ACE_HEADER Header;
+    ACCESS_MASK Mask;
+    DWORD Flags;
+    GUID ObjectType;
+    GUID InheritedObjectType;
+    DWORD SidStart;
+} SYSTEM_ALARM_OBJECT_ACE, *PSYSTEM_ALARM_OBJECT_ACE;
+
+
+
+
+
+
+
+
+\f
+
+
+
+
+
+
+typedef enum _ACL_INFORMATION_CLASS {
+    AclRevisionInformation = 1,
+    AclSizeInformation
+} ACL_INFORMATION_CLASS;
+
+
+
+
+
+
+typedef struct _ACL_REVISION_INFORMATION {
+    DWORD AclRevision;
+} ACL_REVISION_INFORMATION;
+typedef ACL_REVISION_INFORMATION *PACL_REVISION_INFORMATION;
+
+
+
+
+
+typedef struct _ACL_SIZE_INFORMATION {
+    DWORD AceCount;
+    DWORD AclBytesInUse;
+    DWORD AclBytesFree;
+} ACL_SIZE_INFORMATION;
+typedef ACL_SIZE_INFORMATION *PACL_SIZE_INFORMATION;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef WORD   SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _SECURITY_DESCRIPTOR_RELATIVE {
+    BYTE  Revision;
+    BYTE  Sbz1;
+    SECURITY_DESCRIPTOR_CONTROL Control;
+    DWORD Owner;
+    DWORD Group;
+    DWORD Sacl;
+    DWORD Dacl;
+    } SECURITY_DESCRIPTOR_RELATIVE, *PISECURITY_DESCRIPTOR_RELATIVE;
+
+typedef struct _SECURITY_DESCRIPTOR {
+   BYTE  Revision;
+   BYTE  Sbz1;
+   SECURITY_DESCRIPTOR_CONTROL Control;
+   PSID Owner;
+   PSID Group;
+   PACL Sacl;
+   PACL Dacl;
+
+   } SECURITY_DESCRIPTOR, *PISECURITY_DESCRIPTOR;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _OBJECT_TYPE_LIST {
+    WORD   Level;
+    WORD   Sbz;
+    GUID *ObjectType;
+} OBJECT_TYPE_LIST, *POBJECT_TYPE_LIST;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef enum _AUDIT_EVENT_TYPE {
+    AuditEventObjectAccess,
+    AuditEventDirectoryServiceAccess
+} AUDIT_EVENT_TYPE, *PAUDIT_EVENT_TYPE;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _PRIVILEGE_SET {
+    DWORD PrivilegeCount;
+    DWORD Control;
+    LUID_AND_ATTRIBUTES Privilege[1];
+    } PRIVILEGE_SET, * PPRIVILEGE_SET;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef enum _SECURITY_IMPERSONATION_LEVEL {
+    SecurityAnonymous,
+    SecurityIdentification,
+    SecurityImpersonation,
+    SecurityDelegation
+    } SECURITY_IMPERSONATION_LEVEL, * PSECURITY_IMPERSONATION_LEVEL;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef enum _TOKEN_TYPE {
+    TokenPrimary = 1,
+    TokenImpersonation
+    } TOKEN_TYPE;
+typedef TOKEN_TYPE *PTOKEN_TYPE;
+
+
+
+
+
+
+
+typedef enum _TOKEN_INFORMATION_CLASS {
+    TokenUser = 1,
+    TokenGroups,
+    TokenPrivileges,
+    TokenOwner,
+    TokenPrimaryGroup,
+    TokenDefaultDacl,
+    TokenSource,
+    TokenType,
+    TokenImpersonationLevel,
+    TokenStatistics,
+    TokenRestrictedSids,
+    TokenSessionId
+} TOKEN_INFORMATION_CLASS, *PTOKEN_INFORMATION_CLASS;
+
+
+
+
+
+
+typedef struct _TOKEN_USER {
+    SID_AND_ATTRIBUTES User;
+} TOKEN_USER, *PTOKEN_USER;
+
+typedef struct _TOKEN_GROUPS {
+    DWORD GroupCount;
+    SID_AND_ATTRIBUTES Groups[1];
+} TOKEN_GROUPS, *PTOKEN_GROUPS;
+
+
+typedef struct _TOKEN_PRIVILEGES {
+    DWORD PrivilegeCount;
+    LUID_AND_ATTRIBUTES Privileges[1];
+} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES;
+
+
+typedef struct _TOKEN_OWNER {
+    PSID Owner;
+} TOKEN_OWNER, *PTOKEN_OWNER;
+
+
+typedef struct _TOKEN_PRIMARY_GROUP {
+    PSID PrimaryGroup;
+} TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP;
+
+
+typedef struct _TOKEN_DEFAULT_DACL {
+    PACL DefaultDacl;
+} TOKEN_DEFAULT_DACL, *PTOKEN_DEFAULT_DACL;
+
+
+
+
+
+typedef struct _TOKEN_SOURCE {
+    CHAR SourceName[8];
+    LUID SourceIdentifier;
+} TOKEN_SOURCE, *PTOKEN_SOURCE;
+
+
+typedef struct _TOKEN_STATISTICS {
+    LUID TokenId;
+    LUID AuthenticationId;
+    LARGE_INTEGER ExpirationTime;
+    TOKEN_TYPE TokenType;
+    SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
+    DWORD DynamicCharged;
+    DWORD DynamicAvailable;
+    DWORD GroupCount;
+    DWORD PrivilegeCount;
+    LUID ModifiedId;
+} TOKEN_STATISTICS, *PTOKEN_STATISTICS;
+
+
+
+typedef struct _TOKEN_CONTROL {
+    LUID TokenId;
+    LUID AuthenticationId;
+    LUID ModifiedId;
+    TOKEN_SOURCE TokenSource;
+    } TOKEN_CONTROL, *PTOKEN_CONTROL;
+
+
+
+
+
+
+
+
+typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE,
+                    * PSECURITY_CONTEXT_TRACKING_MODE;
+
+
+
+
+
+
+
+typedef struct _SECURITY_QUALITY_OF_SERVICE {
+    DWORD Length;
+    SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
+    SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
+    BOOLEAN EffectiveOnly;
+    } SECURITY_QUALITY_OF_SERVICE, * PSECURITY_QUALITY_OF_SERVICE;
+
+
+
+
+
+
+typedef struct _SE_IMPERSONATION_STATE {
+    PACCESS_TOKEN Token;
+    BOOLEAN CopyOnOpen;
+    BOOLEAN EffectiveOnly;
+    SECURITY_IMPERSONATION_LEVEL Level;
+} SE_IMPERSONATION_STATE, *PSE_IMPERSONATION_STATE;
+
+
+typedef DWORD SECURITY_INFORMATION, *PSECURITY_INFORMATION;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _NT_TIB {
+    struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList;
+    PVOID StackBase;
+    PVOID StackLimit;
+    PVOID SubSystemTib;
+    union {
+        PVOID FiberData;
+        DWORD Version;
+    };
+    PVOID ArbitraryUserPointer;
+    struct _NT_TIB *Self;
+} NT_TIB;
+typedef NT_TIB *PNT_TIB;
+
+
+
+
+
+
+
+
+
+
+typedef struct _QUOTA_LIMITS {
+    SIZE_T PagedPoolLimit;
+    SIZE_T NonPagedPoolLimit;
+    DWORD MinimumWorkingSetSize;
+    DWORD MaximumWorkingSetSize;
+    SIZE_T PagefileLimit;
+    LARGE_INTEGER TimeLimit;
+} QUOTA_LIMITS;
+typedef QUOTA_LIMITS *PQUOTA_LIMITS;
+
+
+
+typedef struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {
+    LARGE_INTEGER TotalUserTime;
+    LARGE_INTEGER TotalKernelTime;
+    LARGE_INTEGER ThisPeriodTotalUserTime;
+    LARGE_INTEGER ThisPeriodTotalKernelTime;
+    DWORD TotalPageFaultCount;
+    DWORD TotalProcesses;
+    DWORD ActiveProcesses;
+    DWORD TotalTerminatedProcesses;
+} JOBOBJECT_BASIC_ACCOUNTING_INFORMATION, *PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION;
+
+typedef struct _JOBOBJECT_BASIC_LIMIT_INFORMATION {
+    LARGE_INTEGER PerProcessUserTimeLimit;
+    LARGE_INTEGER PerJobUserTimeLimit;
+    DWORD LimitFlags;
+    DWORD MinimumWorkingSetSize;
+    DWORD MaximumWorkingSetSize;
+    DWORD ActiveProcessLimit;
+    DWORD Affinity;
+    DWORD PriorityClass;
+} JOBOBJECT_BASIC_LIMIT_INFORMATION, *PJOBOBJECT_BASIC_LIMIT_INFORMATION;
+
+typedef struct _JOBOBJECT_BASIC_PROCESS_ID_LIST {
+    DWORD NumberOfAssignedProcesses;
+    DWORD NumberOfProcessIdsInList;
+    UINT_PTR ProcessIdList[1];
+} JOBOBJECT_BASIC_PROCESS_ID_LIST, *PJOBOBJECT_BASIC_PROCESS_ID_LIST;
+
+typedef struct _JOBOBJECT_BASIC_UI_RESTRICTIONS {
+    DWORD UIRestrictionsClass;
+} JOBOBJECT_BASIC_UI_RESTRICTIONS, *PJOBOBJECT_BASIC_UI_RESTRICTIONS;
+
+typedef struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION {
+    DWORD SecurityLimitFlags ;
+    HANDLE JobToken ;
+    PTOKEN_GROUPS SidsToDisable ;
+    PTOKEN_PRIVILEGES PrivilegesToDelete ;
+    PTOKEN_GROUPS RestrictedSids ;
+} JOBOBJECT_SECURITY_LIMIT_INFORMATION, *PJOBOBJECT_SECURITY_LIMIT_INFORMATION ;
+
+typedef struct _JOBOBJECT_END_OF_JOB_TIME_INFORMATION {
+    DWORD EndOfJobTimeAction;
+} JOBOBJECT_END_OF_JOB_TIME_INFORMATION, *PJOBOBJECT_END_OF_JOB_TIME_INFORMATION;
+
+typedef struct _JOBOBJECT_ASSOCIATE_COMPLETION_PORT {
+    PVOID CompletionKey;
+    HANDLE CompletionPort;
+} JOBOBJECT_ASSOCIATE_COMPLETION_PORT, *PJOBOBJECT_ASSOCIATE_COMPLETION_PORT;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef enum _JOBOBJECTINFOCLASS {
+    JobObjectBasicAccountingInformation = 1,
+    JobObjectBasicLimitInformation,
+    JobObjectBasicProcessIdList,
+    JobObjectBasicUIRestrictions,
+    JobObjectSecurityLimitInformation,
+    JobObjectEndOfJobTimeInformation,
+    JobObjectAssociateCompletionPortInformation,
+    MaxJobObjectInfoClass
+    } JOBOBJECTINFOCLASS;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _MEMORY_BASIC_INFORMATION {
+    PVOID BaseAddress;
+    PVOID AllocationBase;
+    DWORD AllocationProtect;
+    SIZE_T RegionSize;
+    DWORD State;
+    DWORD Protect;
+    DWORD Type;
+} MEMORY_BASIC_INFORMATION, *PMEMORY_BASIC_INFORMATION;
+
+typedef struct _MEMORY_BASIC_INFORMATION_VLM {
+    union {
+        PVOID64 BaseAddress;
+        ULONGLONG BaseAddressAsUlongLong;
+    };
+    union {
+        PVOID64 AllocationBase;
+        ULONGLONG AllocationBaseAsUlongLong;
+    };
+    ULONGLONG RegionSize;
+    DWORD AllocationProtect;
+    DWORD State;
+    DWORD Protect;
+    DWORD Type;
+} MEMORY_BASIC_INFORMATION_VLM, *PMEMORY_BASIC_INFORMATION_VLM;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _FILE_NOTIFY_INFORMATION {
+    DWORD NextEntryOffset;
+    DWORD Action;
+    DWORD FileNameLength;
+    WCHAR FileName[1];
+} FILE_NOTIFY_INFORMATION, *PFILE_NOTIFY_INFORMATION;
+
+
+
+
+
+
+typedef union _FILE_SEGMENT_ELEMENT {
+    PVOID64 Buffer;
+    ULONGLONG Alignment;
+}FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT;
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _REPARSE_DATA_BUFFER {
+    DWORD  ReparseTag;
+    WORD   ReparseDataLength;
+    WORD   Reserved;
+    union {
+        struct {
+            WORD   SubstituteNameOffset;
+            WORD   SubstituteNameLength;
+            WORD   PrintNameOffset;
+            WORD   PrintNameLength;
+            WCHAR PathBuffer[1];
+        } SymbolicLinkReparseBuffer;
+        struct {
+            WORD   SubstituteNameOffset;
+            WORD   SubstituteNameLength;
+            WORD   PrintNameOffset;
+            WORD   PrintNameLength;
+            WCHAR PathBuffer[1];
+        } MountPointReparseBuffer;
+        struct {
+            BYTE   DataBuffer[1];
+        } GenericReparseBuffer;
+    };
+} REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER;
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _REPARSE_GUID_DATA_BUFFER {
+    DWORD  ReparseTag;
+    WORD   ReparseDataLength;
+    WORD   Reserved;
+    GUID   ReparseGuid;
+    struct {
+        BYTE   DataBuffer[1];
+    } GenericReparseBuffer;
+} REPARSE_GUID_DATA_BUFFER, *PREPARSE_GUID_DATA_BUFFER;
+
+
+
+
+
+
+
+
+
+typedef struct _REPARSE_POINT_INFORMATION {
+    WORD   ReparseDataLength;
+    WORD   UnparsedNameLength;
+} REPARSE_POINT_INFORMATION, *PREPARSE_POINT_INFORMATION;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef DWORD EXECUTION_STATE;
+
+typedef enum {
+    LT_DONT_CARE,
+    LT_LOWEST_LATENCY
+} LATENCY_TIME;
+
+
+typedef struct _POWER_DEVICE_TIMEOUTS {
+    DWORD   ConservationIdleTime;
+    DWORD   PerformanceIdleTime;
+} POWER_DEVICE_TIMEOUTS, *PPOWER_DEVICE_TIMEOUTS;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(push)
+
+#pragma pack(4)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(push)
+
+#pragma pack(2)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_DOS_HEADER {      
+    WORD   e_magic;                     
+    WORD   e_cblp;                      
+    WORD   e_cp;                        
+    WORD   e_crlc;                      
+    WORD   e_cparhdr;                   
+    WORD   e_minalloc;                  
+    WORD   e_maxalloc;                  
+    WORD   e_ss;                        
+    WORD   e_sp;                        
+    WORD   e_csum;                      
+    WORD   e_ip;                        
+    WORD   e_cs;                        
+    WORD   e_lfarlc;                    
+    WORD   e_ovno;                      
+    WORD   e_res[4];                    
+    WORD   e_oemid;                     
+    WORD   e_oeminfo;                   
+    WORD   e_res2[10];                  
+    LONG   e_lfanew;                    
+  } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
+
+typedef struct _IMAGE_OS2_HEADER {      
+    WORD   ne_magic;                    
+    CHAR   ne_ver;                      
+    CHAR   ne_rev;                      
+    WORD   ne_enttab;                   
+    WORD   ne_cbenttab;                 
+    LONG   ne_crc;                      
+    WORD   ne_flags;                    
+    WORD   ne_autodata;                 
+    WORD   ne_heap;                     
+    WORD   ne_stack;                    
+    LONG   ne_csip;                     
+    LONG   ne_sssp;                     
+    WORD   ne_cseg;                     
+    WORD   ne_cmod;                     
+    WORD   ne_cbnrestab;                
+    WORD   ne_segtab;                   
+    WORD   ne_rsrctab;                  
+    WORD   ne_restab;                   
+    WORD   ne_modtab;                   
+    WORD   ne_imptab;                   
+    LONG   ne_nrestab;                  
+    WORD   ne_cmovent;                  
+    WORD   ne_align;                    
+    WORD   ne_cres;                     
+    BYTE   ne_exetyp;                   
+    BYTE   ne_flagsothers;              
+    WORD   ne_pretthunks;               
+    WORD   ne_psegrefbytes;             
+    WORD   ne_swaparea;                 
+    WORD   ne_expver;                   
+  } IMAGE_OS2_HEADER, *PIMAGE_OS2_HEADER;
+
+typedef struct _IMAGE_VXD_HEADER {      
+    WORD   e32_magic;                   
+    BYTE   e32_border;                  
+    BYTE   e32_worder;                  
+    DWORD  e32_level;                   
+    WORD   e32_cpu;                     
+    WORD   e32_os;                      
+    DWORD  e32_ver;                     
+    DWORD  e32_mflags;                  
+    DWORD  e32_mpages;                  
+    DWORD  e32_startobj;                
+    DWORD  e32_eip;                     
+    DWORD  e32_stackobj;                
+    DWORD  e32_esp;                     
+    DWORD  e32_pagesize;                
+    DWORD  e32_lastpagesize;            
+    DWORD  e32_fixupsize;               
+    DWORD  e32_fixupsum;                
+    DWORD  e32_ldrsize;                 
+    DWORD  e32_ldrsum;                  
+    DWORD  e32_objtab;                  
+    DWORD  e32_objcnt;                  
+    DWORD  e32_objmap;                  
+    DWORD  e32_itermap;                 
+    DWORD  e32_rsrctab;                 
+    DWORD  e32_rsrccnt;                 
+    DWORD  e32_restab;                  
+    DWORD  e32_enttab;                  
+    DWORD  e32_dirtab;                  
+    DWORD  e32_dircnt;                  
+    DWORD  e32_fpagetab;                
+    DWORD  e32_frectab;                 
+    DWORD  e32_impmod;                  
+    DWORD  e32_impmodcnt;               
+    DWORD  e32_impproc;                 
+    DWORD  e32_pagesum;                 
+    DWORD  e32_datapage;                
+    DWORD  e32_preload;                 
+    DWORD  e32_nrestab;                 
+    DWORD  e32_cbnrestab;               
+    DWORD  e32_nressum;                 
+    DWORD  e32_autodata;                
+    DWORD  e32_debuginfo;               
+    DWORD  e32_debuglen;                
+    DWORD  e32_instpreload;             
+    DWORD  e32_instdemand;              
+    DWORD  e32_heapsize;                
+    BYTE   e32_res3[12];                
+    DWORD  e32_winresoff;
+    DWORD  e32_winreslen;
+    WORD   e32_devid;                   
+    WORD   e32_ddkver;                  
+  } IMAGE_VXD_HEADER, *PIMAGE_VXD_HEADER;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_FILE_HEADER {
+    WORD    Machine;
+    WORD    NumberOfSections;
+    DWORD   TimeDateStamp;
+    DWORD   PointerToSymbolTable;
+    DWORD   NumberOfSymbols;
+    WORD    SizeOfOptionalHeader;
+    WORD    Characteristics;
+} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_DATA_DIRECTORY {
+    DWORD   VirtualAddress;
+    DWORD   Size;
+} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;
+
+
+
+
+
+
+
+typedef struct _IMAGE_OPTIONAL_HEADER {
+    
+    
+    
+
+    WORD    Magic;
+    BYTE    MajorLinkerVersion;
+    BYTE    MinorLinkerVersion;
+    DWORD   SizeOfCode;
+    DWORD   SizeOfInitializedData;
+    DWORD   SizeOfUninitializedData;
+    DWORD   AddressOfEntryPoint;
+    DWORD   BaseOfCode;
+    DWORD   BaseOfData;
+
+    
+    
+    
+
+    DWORD   ImageBase;
+    DWORD   SectionAlignment;
+    DWORD   FileAlignment;
+    WORD    MajorOperatingSystemVersion;
+    WORD    MinorOperatingSystemVersion;
+    WORD    MajorImageVersion;
+    WORD    MinorImageVersion;
+    WORD    MajorSubsystemVersion;
+    WORD    MinorSubsystemVersion;
+    DWORD   Win32VersionValue;
+    DWORD   SizeOfImage;
+    DWORD   SizeOfHeaders;
+    DWORD   CheckSum;
+    WORD    Subsystem;
+    WORD    DllCharacteristics;
+    DWORD   SizeOfStackReserve;
+    DWORD   SizeOfStackCommit;
+    DWORD   SizeOfHeapReserve;
+    DWORD   SizeOfHeapCommit;
+    DWORD   LoaderFlags;
+    DWORD   NumberOfRvaAndSizes;
+    IMAGE_DATA_DIRECTORY DataDirectory[16];
+} IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32;
+
+typedef struct _IMAGE_ROM_OPTIONAL_HEADER {
+    WORD   Magic;
+    BYTE   MajorLinkerVersion;
+    BYTE   MinorLinkerVersion;
+    DWORD  SizeOfCode;
+    DWORD  SizeOfInitializedData;
+    DWORD  SizeOfUninitializedData;
+    DWORD  AddressOfEntryPoint;
+    DWORD  BaseOfCode;
+    DWORD  BaseOfData;
+    DWORD  BaseOfBss;
+    DWORD  GprMask;
+    DWORD  CprMask[4];
+    DWORD  GpValue;
+} IMAGE_ROM_OPTIONAL_HEADER, *PIMAGE_ROM_OPTIONAL_HEADER;
+
+typedef struct _IMAGE_OPTIONAL_HEADER64 {
+    WORD        Magic;
+    BYTE        MajorLinkerVersion;
+    BYTE        MinorLinkerVersion;
+    DWORD       SizeOfCode;
+    DWORD       SizeOfInitializedData;
+    DWORD       SizeOfUninitializedData;
+    DWORD       AddressOfEntryPoint;
+    DWORD       BaseOfCode;
+    ULONGLONG   ImageBase;
+    DWORD       SectionAlignment;
+    DWORD       FileAlignment;
+    WORD        MajorOperatingSystemVersion;
+    WORD        MinorOperatingSystemVersion;
+    WORD        MajorImageVersion;
+    WORD        MinorImageVersion;
+    WORD        MajorSubsystemVersion;
+    WORD        MinorSubsystemVersion;
+    DWORD       Win32VersionValue;
+    DWORD       SizeOfImage;
+    DWORD       SizeOfHeaders;
+    DWORD       CheckSum;
+    WORD        Subsystem;
+    WORD        DllCharacteristics;
+    ULONGLONG   SizeOfStackReserve;
+    ULONGLONG   SizeOfStackCommit;
+    ULONGLONG   SizeOfHeapReserve;
+    ULONGLONG   SizeOfHeapCommit;
+    DWORD       LoaderFlags;
+    DWORD       NumberOfRvaAndSizes;
+    IMAGE_DATA_DIRECTORY DataDirectory[16];
+} IMAGE_OPTIONAL_HEADER64, *PIMAGE_OPTIONAL_HEADER64;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef IMAGE_OPTIONAL_HEADER32             IMAGE_OPTIONAL_HEADER;
+typedef PIMAGE_OPTIONAL_HEADER32            PIMAGE_OPTIONAL_HEADER;
+
+
+
+
+typedef struct _IMAGE_NT_HEADERS64 {
+    DWORD Signature;
+    IMAGE_FILE_HEADER FileHeader;
+    IMAGE_OPTIONAL_HEADER64 OptionalHeader;
+} IMAGE_NT_HEADERS64, *PIMAGE_NT_HEADERS64;
+
+typedef struct _IMAGE_NT_HEADERS {
+    DWORD Signature;
+    IMAGE_FILE_HEADER FileHeader;
+    IMAGE_OPTIONAL_HEADER32 OptionalHeader;
+} IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32;
+
+typedef struct _IMAGE_ROM_HEADERS {
+    IMAGE_FILE_HEADER FileHeader;
+    IMAGE_ROM_OPTIONAL_HEADER OptionalHeader;
+} IMAGE_ROM_HEADERS, *PIMAGE_ROM_HEADERS;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef IMAGE_NT_HEADERS32                  IMAGE_NT_HEADERS;
+typedef PIMAGE_NT_HEADERS32                 PIMAGE_NT_HEADERS;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_SECTION_HEADER {
+    BYTE    Name[8];
+    union {
+            DWORD   PhysicalAddress;
+            DWORD   VirtualSize;
+    } Misc;
+    DWORD   VirtualAddress;
+    DWORD   SizeOfRawData;
+    DWORD   PointerToRawData;
+    DWORD   PointerToRelocations;
+    DWORD   PointerToLinenumbers;
+    WORD    NumberOfRelocations;
+    WORD    NumberOfLinenumbers;
+    DWORD   Characteristics;
+} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(push)
+
+#pragma pack(2)
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_SYMBOL {
+    union {
+        BYTE    ShortName[8];
+        struct {
+            DWORD   Short;     
+            DWORD   Long;      
+        } Name;
+        PBYTE   LongName[2];
+    } N;
+    DWORD   Value;
+    SHORT   SectionNumber;
+    WORD    Type;
+    BYTE    StorageClass;
+    BYTE    NumberOfAuxSymbols;
+} IMAGE_SYMBOL;
+typedef IMAGE_SYMBOL  *PIMAGE_SYMBOL;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef union _IMAGE_AUX_SYMBOL {
+    struct {
+        DWORD    TagIndex;                      
+        union {
+            struct {
+                WORD    Linenumber;             
+                WORD    Size;                   
+            } LnSz;
+           DWORD    TotalSize;
+        } Misc;
+        union {
+            struct {                            
+                DWORD    PointerToLinenumber;
+                DWORD    PointerToNextFunction;
+            } Function;
+            struct {                            
+                WORD     Dimension[4];
+            } Array;
+        } FcnAry;
+        WORD    TvIndex;                        
+    } Sym;
+    struct {
+        BYTE    Name[18];
+    } File;
+    struct {
+        DWORD   Length;                         
+        WORD    NumberOfRelocations;            
+        WORD    NumberOfLinenumbers;            
+        DWORD   CheckSum;                       
+        SHORT   Number;                         
+        BYTE    Selection;                      
+    } Section;
+} IMAGE_AUX_SYMBOL;
+typedef IMAGE_AUX_SYMBOL  *PIMAGE_AUX_SYMBOL;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_RELOCATION {
+    union {
+        DWORD   VirtualAddress;
+        DWORD   RelocCount;             
+    };
+    DWORD   SymbolTableIndex;
+    WORD    Type;
+} IMAGE_RELOCATION;
+typedef IMAGE_RELOCATION  *PIMAGE_RELOCATION;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_LINENUMBER {
+    union {
+        DWORD   SymbolTableIndex;               
+        DWORD   VirtualAddress;                 
+    } Type;
+    WORD    Linenumber;                         
+} IMAGE_LINENUMBER;
+typedef IMAGE_LINENUMBER  *PIMAGE_LINENUMBER;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_BASE_RELOCATION {
+    DWORD   VirtualAddress;
+    DWORD   SizeOfBlock;
+
+} IMAGE_BASE_RELOCATION;
+typedef IMAGE_BASE_RELOCATION  * PIMAGE_BASE_RELOCATION;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_ARCHIVE_MEMBER_HEADER {
+    BYTE     Name[16];                          
+    BYTE     Date[12];                          
+    BYTE     UserID[6];                         
+    BYTE     GroupID[6];                        
+    BYTE     Mode[8];                           
+    BYTE     Size[10];                          
+    BYTE     EndHeader[2];                      
+} IMAGE_ARCHIVE_MEMBER_HEADER, *PIMAGE_ARCHIVE_MEMBER_HEADER;
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_EXPORT_DIRECTORY {
+    DWORD   Characteristics;
+    DWORD   TimeDateStamp;
+    WORD    MajorVersion;
+    WORD    MinorVersion;
+    DWORD   Name;
+    DWORD   Base;
+    DWORD   NumberOfFunctions;
+    DWORD   NumberOfNames;
+    DWORD   AddressOfFunctions;     
+    DWORD   AddressOfNames;         
+    DWORD   AddressOfNameOrdinals;  
+} IMAGE_EXPORT_DIRECTORY, *PIMAGE_EXPORT_DIRECTORY;
+
+
+
+
+
+typedef struct _IMAGE_IMPORT_BY_NAME {
+    WORD    Hint;
+    BYTE    Name[1];
+} IMAGE_IMPORT_BY_NAME, *PIMAGE_IMPORT_BY_NAME;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(push)
+
+#pragma pack(8)
+
+
+
+
+
+
+typedef struct _IMAGE_THUNK_DATA64 {
+    union {
+        PBYTE  ForwarderString;
+        PDWORD Function;
+        ULONGLONG Ordinal;
+        PIMAGE_IMPORT_BY_NAME  AddressOfData;
+    } u1;
+} IMAGE_THUNK_DATA64;
+typedef IMAGE_THUNK_DATA64 * PIMAGE_THUNK_DATA64;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_THUNK_DATA32 {
+    union {
+        PBYTE  ForwarderString;
+        PDWORD Function;
+        DWORD Ordinal;
+        PIMAGE_IMPORT_BY_NAME  AddressOfData;
+    } u1;
+} IMAGE_THUNK_DATA32;
+typedef IMAGE_THUNK_DATA32 * PIMAGE_THUNK_DATA32;
+
+
+
+
+
+
+
+
+
+
+
+
+typedef void
+(__stdcall *PIMAGE_TLS_CALLBACK) (
+    PVOID DllHandle,
+    DWORD Reason,
+    PVOID Reserved
+    );
+
+typedef struct _IMAGE_TLS_DIRECTORY64 {
+    ULONGLONG   StartAddressOfRawData;
+    ULONGLONG   EndAddressOfRawData;
+    PDWORD  AddressOfIndex;
+    PIMAGE_TLS_CALLBACK *AddressOfCallBacks;
+    DWORD   SizeOfZeroFill;
+    DWORD   Characteristics;
+} IMAGE_TLS_DIRECTORY64;
+typedef IMAGE_TLS_DIRECTORY64 * PIMAGE_TLS_DIRECTORY64;
+
+typedef struct _IMAGE_TLS_DIRECTORY32 {
+    DWORD   StartAddressOfRawData;
+    DWORD   EndAddressOfRawData;
+    PDWORD  AddressOfIndex;
+    PIMAGE_TLS_CALLBACK *AddressOfCallBacks;
+    DWORD   SizeOfZeroFill;
+    DWORD   Characteristics;
+} IMAGE_TLS_DIRECTORY32;
+typedef IMAGE_TLS_DIRECTORY32 * PIMAGE_TLS_DIRECTORY32;
+
+
+
+
+
+
+
+
+
+
+
+
+typedef IMAGE_THUNK_DATA32              IMAGE_THUNK_DATA;
+typedef PIMAGE_THUNK_DATA32             PIMAGE_THUNK_DATA;
+
+typedef IMAGE_TLS_DIRECTORY32           IMAGE_TLS_DIRECTORY;
+typedef PIMAGE_TLS_DIRECTORY32          PIMAGE_TLS_DIRECTORY;
+
+
+typedef struct _IMAGE_IMPORT_DESCRIPTOR {
+    union {
+        DWORD   Characteristics;            
+        DWORD   OriginalFirstThunk;         
+    };
+    DWORD   TimeDateStamp;                  
+                                            
+                                            
+                                            
+
+    DWORD   ForwarderChain;                 
+    DWORD   Name;
+    DWORD   FirstThunk;                     
+} IMAGE_IMPORT_DESCRIPTOR;
+typedef IMAGE_IMPORT_DESCRIPTOR  *PIMAGE_IMPORT_DESCRIPTOR;
+
+
+
+
+
+typedef struct _IMAGE_BOUND_IMPORT_DESCRIPTOR {
+    DWORD   TimeDateStamp;
+    WORD    OffsetModuleName;
+    WORD    NumberOfModuleForwarderRefs;
+
+} IMAGE_BOUND_IMPORT_DESCRIPTOR,  *PIMAGE_BOUND_IMPORT_DESCRIPTOR;
+
+typedef struct _IMAGE_BOUND_FORWARDER_REF {
+    DWORD   TimeDateStamp;
+    WORD    OffsetModuleName;
+    WORD    Reserved;
+} IMAGE_BOUND_FORWARDER_REF, *PIMAGE_BOUND_FORWARDER_REF;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_RESOURCE_DIRECTORY {
+    DWORD   Characteristics;
+    DWORD   TimeDateStamp;
+    WORD    MajorVersion;
+    WORD    MinorVersion;
+    WORD    NumberOfNamedEntries;
+    WORD    NumberOfIdEntries;
+
+} IMAGE_RESOURCE_DIRECTORY, *PIMAGE_RESOURCE_DIRECTORY;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {
+    union {
+        struct {
+            DWORD NameOffset:31;
+            DWORD NameIsString:1;
+        };
+        DWORD   Name;
+        WORD    Id;
+    };
+    union {
+        DWORD   OffsetToData;
+        struct {
+            DWORD   OffsetToDirectory:31;
+            DWORD   DataIsDirectory:1;
+        };
+    };
+} IMAGE_RESOURCE_DIRECTORY_ENTRY, *PIMAGE_RESOURCE_DIRECTORY_ENTRY;
+
+
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_RESOURCE_DIRECTORY_STRING {
+    WORD    Length;
+    CHAR    NameString[ 1 ];
+} IMAGE_RESOURCE_DIRECTORY_STRING, *PIMAGE_RESOURCE_DIRECTORY_STRING;
+
+
+typedef struct _IMAGE_RESOURCE_DIR_STRING_U {
+    WORD    Length;
+    WCHAR   NameString[ 1 ];
+} IMAGE_RESOURCE_DIR_STRING_U, *PIMAGE_RESOURCE_DIR_STRING_U;
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_RESOURCE_DATA_ENTRY {
+    DWORD   OffsetToData;
+    DWORD   Size;
+    DWORD   CodePage;
+    DWORD   Reserved;
+} IMAGE_RESOURCE_DATA_ENTRY, *PIMAGE_RESOURCE_DATA_ENTRY;
+
+
+
+
+
+typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY {
+    DWORD   Characteristics;
+    DWORD   TimeDateStamp;
+    WORD    MajorVersion;
+    WORD    MinorVersion;
+    DWORD   GlobalFlagsClear;
+    DWORD   GlobalFlagsSet;
+    DWORD   CriticalSectionDefaultTimeout;
+    DWORD   DeCommitFreeBlockThreshold;
+    DWORD   DeCommitTotalFreeThreshold;
+    PVOID   LockPrefixTable;
+    DWORD   MaximumAllocationSize;
+    DWORD   VirtualMemoryThreshold;
+    DWORD   ProcessHeapFlags;
+    DWORD   ProcessAffinityMask;
+    WORD    CSDVersion;
+    WORD    Reserved1;
+    PVOID   EditList;
+    DWORD   Reserved[ 1 ];
+} IMAGE_LOAD_CONFIG_DIRECTORY, *PIMAGE_LOAD_CONFIG_DIRECTORY;
+
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_IA64_RUNTIME_FUNCTION_ENTRY {
+    DWORD BeginAddress;
+    DWORD EndAddress;
+    DWORD UnwindInfoAddress;
+} IMAGE_IA64_RUNTIME_FUNCTION_ENTRY, *PIMAGE_IA64_RUNTIME_FUNCTION_ENTRY;
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY {
+    DWORD BeginAddress;
+    DWORD EndAddress;
+    DWORD ExceptionHandler;
+    DWORD HandlerData;
+    DWORD PrologEndAddress;
+} IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY, *PIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY;
+
+typedef struct _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY {
+    ULONGLONG BeginAddress;
+    ULONGLONG EndAddress;
+    ULONGLONG ExceptionHandler;
+    ULONGLONG HandlerData;
+    ULONGLONG PrologEndAddress;
+} IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY, *PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY;
+
+typedef  IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY  IMAGE_AXP64_RUNTIME_FUNCTION_ENTRY;
+typedef PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY PIMAGE_AXP64_RUNTIME_FUNCTION_ENTRY;
+
+
+
+
+
+typedef struct _IMAGE_CE_RUNTIME_FUNCTION_ENTRY {
+    DWORD FuncStart;
+    DWORD PrologLen : 8;
+    DWORD FuncLen : 22;
+    DWORD ThirtyTwoBit : 1;
+    DWORD ExceptionFlag : 1;
+} IMAGE_CE_RUNTIME_FUNCTION_ENTRY, * PIMAGE_CE_RUNTIME_FUNCTION_ENTRY;
+
+
+
+
+
+
+
+
+typedef  IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY  IMAGE_RUNTIME_FUNCTION_ENTRY;
+typedef PIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY PIMAGE_RUNTIME_FUNCTION_ENTRY;
+
+
+
+
+
+
+
+typedef struct _IMAGE_DEBUG_DIRECTORY {
+    DWORD   Characteristics;
+    DWORD   TimeDateStamp;
+    WORD    MajorVersion;
+    WORD    MinorVersion;
+    DWORD   Type;
+    DWORD   SizeOfData;
+    DWORD   AddressOfRawData;
+    DWORD   PointerToRawData;
+} IMAGE_DEBUG_DIRECTORY, *PIMAGE_DEBUG_DIRECTORY;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_COFF_SYMBOLS_HEADER {
+    DWORD   NumberOfSymbols;
+    DWORD   LvaToFirstSymbol;
+    DWORD   NumberOfLinenumbers;
+    DWORD   LvaToFirstLinenumber;
+    DWORD   RvaToFirstByteOfCode;
+    DWORD   RvaToLastByteOfCode;
+    DWORD   RvaToFirstByteOfData;
+    DWORD   RvaToLastByteOfData;
+} IMAGE_COFF_SYMBOLS_HEADER, *PIMAGE_COFF_SYMBOLS_HEADER;
+
+
+
+
+
+
+typedef struct _FPO_DATA {
+    DWORD       ulOffStart;             
+    DWORD       cbProcSize;             
+    DWORD       cdwLocals;              
+    WORD        cdwParams;              
+    WORD        cbProlog : 8;           
+    WORD        cbRegs   : 3;           
+    WORD        fHasSEH  : 1;           
+    WORD        fUseBP   : 1;           
+    WORD        reserved : 1;           
+    WORD        cbFrame  : 2;           
+} FPO_DATA, *PFPO_DATA;
+
+
+
+
+
+typedef struct _IMAGE_DEBUG_MISC {
+    DWORD       DataType;               
+    DWORD       Length;                 
+                                        
+    BOOLEAN     Unicode;                
+    BYTE        Reserved[ 3 ];
+    BYTE        Data[ 1 ];              
+} IMAGE_DEBUG_MISC, *PIMAGE_DEBUG_MISC;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_FUNCTION_ENTRY {
+    DWORD   StartingAddress;
+    DWORD   EndingAddress;
+    DWORD   EndOfPrologue;
+} IMAGE_FUNCTION_ENTRY, *PIMAGE_FUNCTION_ENTRY;
+
+
+typedef struct _IMAGE_FUNCTION_ENTRY64 {
+    ULONGLONG   StartingAddress;
+    ULONGLONG   EndingAddress;
+    ULONGLONG   EndOfPrologue;
+} IMAGE_FUNCTION_ENTRY64, *PIMAGE_FUNCTION_ENTRY64;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _IMAGE_SEPARATE_DEBUG_HEADER {
+    WORD        Signature;
+    WORD        Flags;
+    WORD        Machine;
+    WORD        Characteristics;
+    DWORD       TimeDateStamp;
+    DWORD       CheckSum;
+    DWORD       ImageBase;
+    DWORD       SizeOfImage;
+    DWORD       NumberOfSections;
+    DWORD       ExportedNamesSize;
+    DWORD       DebugDirectorySize;
+    DWORD       SectionAlignment;
+    DWORD       Reserved[2];
+} IMAGE_SEPARATE_DEBUG_HEADER, *PIMAGE_SEPARATE_DEBUG_HEADER;
+
+
+
+
+
+
+
+
+
+                                                
+
+
+
+
+
+
+
+
+
+typedef struct _ImageArchitectureHeader {
+    unsigned int AmaskValue: 1;                 
+                                                
+    int :7;                                     
+    unsigned int AmaskShift: 8;                 
+    int :16;                                    
+    DWORD FirstEntryRVA;                        
+} IMAGE_ARCHITECTURE_HEADER, *PIMAGE_ARCHITECTURE_HEADER;
+
+typedef struct _ImageArchitectureEntry {
+    DWORD FixupInstRVA;                         
+    DWORD NewInst;                              
+} IMAGE_ARCHITECTURE_ENTRY, *PIMAGE_ARCHITECTURE_ENTRY;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct IMPORT_OBJECT_HEADER {
+    WORD    Sig1;                       
+    WORD    Sig2;                       
+    WORD    Version;
+    WORD    Machine;
+    DWORD   TimeDateStamp;              
+    DWORD   SizeOfData;                 
+
+    union {
+        WORD    Ordinal;                
+        WORD    Hint;
+    };
+
+    WORD    Type : 2;                   
+    WORD    NameType : 3;               
+    WORD    Reserved : 11;              
+} IMPORT_OBJECT_HEADER;
+
+typedef enum IMPORT_OBJECT_TYPE
+{
+    IMPORT_OBJECT_CODE = 0,
+    IMPORT_OBJECT_DATA = 1,
+    IMPORT_OBJECT_CONST = 2,
+} IMPORT_OBJECT_TYPE;
+
+typedef enum IMPORT_OBJECT_NAME_TYPE
+{
+    IMPORT_OBJECT_ORDINAL = 0,          
+    IMPORT_OBJECT_NAME = 1,             
+    IMPORT_OBJECT_NAME_NO_PREFIX = 2,   
+    IMPORT_OBJECT_NAME_UNDECORATE = 3,  
+                                        
+} IMPORT_OBJECT_NAME_TYPE;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef unsigned int size_t;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        void *  __cdecl memcpy(void *, const void *, size_t);
+        int     __cdecl memcmp(const void *, const void *, size_t);
+        void *  __cdecl memset(void *, int, size_t);
+        char *  __cdecl _strset(char *, int);
+        char *  __cdecl strcpy(char *, const char *);
+        char *  __cdecl strcat(char *, const char *);
+        int     __cdecl strcmp(const char *, const char *);
+        size_t  __cdecl strlen(const char *);
+
+ void *  __cdecl _memccpy(void *, const void *, int, unsigned int);
+ void *  __cdecl memchr(const void *, int, size_t);
+ int     __cdecl _memicmp(const void *, const void *, unsigned int);
+
+
+
+
+
+ void *  __cdecl memmove(void *, const void *, size_t);
+
+
+
+ char *  __cdecl strchr(const char *, int);
+ int     __cdecl _strcmpi(const char *, const char *);
+ int     __cdecl _stricmp(const char *, const char *);
+ int     __cdecl strcoll(const char *, const char *);
+ int     __cdecl _stricoll(const char *, const char *);
+ int     __cdecl _strncoll(const char *, const char *, size_t);
+ int     __cdecl _strnicoll(const char *, const char *, size_t);
+ size_t  __cdecl strcspn(const char *, const char *);
+ char *  __cdecl _strdup(const char *);
+ char *  __cdecl _strerror(const char *);
+ char *  __cdecl strerror(int);
+ char *  __cdecl _strlwr(char *);
+ char *  __cdecl strncat(char *, const char *, size_t);
+ int     __cdecl strncmp(const char *, const char *, size_t);
+ int     __cdecl _strnicmp(const char *, const char *, size_t);
+ char *  __cdecl strncpy(char *, const char *, size_t);
+ char *  __cdecl _strnset(char *, int, size_t);
+ char *  __cdecl strpbrk(const char *, const char *);
+ char *  __cdecl strrchr(const char *, int);
+ char *  __cdecl _strrev(char *);
+ size_t  __cdecl strspn(const char *, const char *);
+ char *  __cdecl strstr(const char *, const char *);
+ char *  __cdecl strtok(char *, const char *);
+ char *  __cdecl _strupr(char *);
+ size_t  __cdecl strxfrm (char *, const char *, size_t);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ void * __cdecl memccpy(void *, const void *, int, unsigned int);
+ int __cdecl memicmp(const void *, const void *, unsigned int);
+ int __cdecl strcmpi(const char *, const char *);
+ int __cdecl stricmp(const char *, const char *);
+ char * __cdecl strdup(const char *);
+ char * __cdecl strlwr(char *);
+ int __cdecl strnicmp(const char *, const char *, size_t);
+ char * __cdecl strnset(char *, int, size_t);
+ char * __cdecl strrev(char *);
+        char * __cdecl strset(char *, int);
+ char * __cdecl strupr(char *);
+
+
+
+
+
+
+
+
+
+ wchar_t * __cdecl wcscat(wchar_t *, const wchar_t *);
+ wchar_t * __cdecl wcschr(const wchar_t *, wchar_t);
+ int __cdecl wcscmp(const wchar_t *, const wchar_t *);
+ wchar_t * __cdecl wcscpy(wchar_t *, const wchar_t *);
+ size_t __cdecl wcscspn(const wchar_t *, const wchar_t *);
+ size_t __cdecl wcslen(const wchar_t *);
+ wchar_t * __cdecl wcsncat(wchar_t *, const wchar_t *, size_t);
+ int __cdecl wcsncmp(const wchar_t *, const wchar_t *, size_t);
+ wchar_t * __cdecl wcsncpy(wchar_t *, const wchar_t *, size_t);
+ wchar_t * __cdecl wcspbrk(const wchar_t *, const wchar_t *);
+ wchar_t * __cdecl wcsrchr(const wchar_t *, wchar_t);
+ size_t __cdecl wcsspn(const wchar_t *, const wchar_t *);
+ wchar_t * __cdecl wcsstr(const wchar_t *, const wchar_t *);
+ wchar_t * __cdecl wcstok(wchar_t *, const wchar_t *);
+
+ wchar_t * __cdecl _wcsdup(const wchar_t *);
+ int __cdecl _wcsicmp(const wchar_t *, const wchar_t *);
+ int __cdecl _wcsnicmp(const wchar_t *, const wchar_t *, size_t);
+ wchar_t * __cdecl _wcsnset(wchar_t *, wchar_t, size_t);
+ wchar_t * __cdecl _wcsrev(wchar_t *);
+ wchar_t * __cdecl _wcsset(wchar_t *, wchar_t);
+
+ wchar_t * __cdecl _wcslwr(wchar_t *);
+ wchar_t * __cdecl _wcsupr(wchar_t *);
+ size_t __cdecl wcsxfrm(wchar_t *, const wchar_t *, size_t);
+ int __cdecl wcscoll(const wchar_t *, const wchar_t *);
+ int __cdecl _wcsicoll(const wchar_t *, const wchar_t *);
+ int __cdecl _wcsncoll(const wchar_t *, const wchar_t *, size_t);
+ int __cdecl _wcsnicoll(const wchar_t *, const wchar_t *, size_t);
+
+
+
+
+
+
+
+ wchar_t * __cdecl wcsdup(const wchar_t *);
+ int __cdecl wcsicmp(const wchar_t *, const wchar_t *);
+ int __cdecl wcsnicmp(const wchar_t *, const wchar_t *, size_t);
+ wchar_t * __cdecl wcsnset(wchar_t *, wchar_t, size_t);
+ wchar_t * __cdecl wcsrev(wchar_t *);
+ wchar_t * __cdecl wcsset(wchar_t *, wchar_t);
+ wchar_t * __cdecl wcslwr(wchar_t *);
+ wchar_t * __cdecl wcsupr(wchar_t *);
+ int __cdecl wcsicoll(const wchar_t *, const wchar_t *);
+
+
+
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+SIZE_T
+__stdcall
+RtlCompareMemory (
+    const void *Source1,
+    const void *Source2,
+    SIZE_T Length
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _MESSAGE_RESOURCE_ENTRY {
+    WORD   Length;
+    WORD   Flags;
+    BYTE  Text[ 1 ];
+} MESSAGE_RESOURCE_ENTRY, *PMESSAGE_RESOURCE_ENTRY;
+
+
+
+typedef struct _MESSAGE_RESOURCE_BLOCK {
+    DWORD LowId;
+    DWORD HighId;
+    DWORD OffsetToEntries;
+} MESSAGE_RESOURCE_BLOCK, *PMESSAGE_RESOURCE_BLOCK;
+
+typedef struct _MESSAGE_RESOURCE_DATA {
+    DWORD NumberOfBlocks;
+    MESSAGE_RESOURCE_BLOCK Blocks[ 1 ];
+} MESSAGE_RESOURCE_DATA, *PMESSAGE_RESOURCE_DATA;
+
+
+typedef struct _RTL_CRITICAL_SECTION_DEBUG {
+    WORD   Type;
+    WORD   CreatorBackTraceIndex;
+    struct _RTL_CRITICAL_SECTION *CriticalSection;
+    LIST_ENTRY ProcessLocksList;
+    DWORD EntryCount;
+    DWORD ContentionCount;
+    DWORD Spare[ 2 ];
+} RTL_CRITICAL_SECTION_DEBUG, *PRTL_CRITICAL_SECTION_DEBUG, RTL_RESOURCE_DEBUG, *PRTL_RESOURCE_DEBUG;
+
+
+
+
+typedef struct _RTL_CRITICAL_SECTION {
+    PRTL_CRITICAL_SECTION_DEBUG DebugInfo;
+
+    
+    
+    
+    
+
+    LONG LockCount;
+    LONG RecursionCount;
+    HANDLE OwningThread;        
+    HANDLE LockSemaphore;
+    DWORD SpinCount;
+} RTL_CRITICAL_SECTION, *PRTL_CRITICAL_SECTION;
+
+
+
+
+
+
+
+
+
+
+typedef void (__stdcall * WAITORTIMERCALLBACKFUNC) (PVOID, BOOLEAN );   
+typedef void (__stdcall * WORKERCALLBACKFUNC) (PVOID );                 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _EVENTLOGRECORD {
+    DWORD  Length;        
+    DWORD  Reserved;      
+    DWORD  RecordNumber;  
+    DWORD  TimeGenerated; 
+    DWORD  TimeWritten;   
+    DWORD  EventID;
+    WORD   EventType;
+    WORD   NumStrings;
+    WORD   EventCategory;
+    WORD   ReservedFlags; 
+    DWORD  ClosingRecordNumber; 
+    DWORD  StringOffset;  
+    DWORD  UserSidLength;
+    DWORD  UserSidOffset;
+    DWORD  DataLength;
+    DWORD  DataOffset;    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+} EVENTLOGRECORD, *PEVENTLOGRECORD;
+
+
+
+
+
+#pragma warning(disable : 4200)
+typedef struct _EVENTSFORLOGFILE{
+       DWORD                   ulSize;
+    WCHAR              szLogicalLogFile[256];        
+    DWORD                      ulNumRecords;
+       EVENTLOGRECORD  pEventLogRecords[];
+}EVENTSFORLOGFILE, *PEVENTSFORLOGFILE;
+
+typedef struct _PACKEDEVENTINFO{
+    DWORD               ulSize;  
+    DWORD               ulNumEventsForLogFile; 
+    DWORD                              ulOffsets[];           
+}PACKEDEVENTINFO, *PPACKEDEVENTINFO;
+
+#pragma warning(default : 4200)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                                                    
+
+
+                                                    
+
+
+                                                    
+
+
+                                                    
+                                                    
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                                            
+
+
+
+
+
+
+
+
+
+
+
+\f
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef enum _CM_SERVICE_NODE_TYPE {
+    DriverType               = 0x00000001,
+    FileSystemType           = 0x00000002,
+    Win32ServiceOwnProcess   = 0x00000010,
+    Win32ServiceShareProcess = 0x00000020,
+    AdapterType              = 0x00000004,
+    RecognizerType           = 0x00000008
+} SERVICE_NODE_TYPE;
+
+typedef enum _CM_SERVICE_LOAD_TYPE {
+    BootLoad    = 0x00000000,
+    SystemLoad  = 0x00000001,
+    AutoLoad    = 0x00000002,
+    DemandLoad  = 0x00000003,
+    DisableLoad = 0x00000004
+} SERVICE_LOAD_TYPE;
+
+typedef enum _CM_ERROR_CONTROL_TYPE {
+    IgnoreError   = 0x00000000,
+    NormalError   = 0x00000001,
+    SevereError   = 0x00000002,
+    CriticalError = 0x00000003
+} SERVICE_ERROR_TYPE;
+
+
+
+
+
+
+
+
+
+
+typedef struct _TAPE_ERASE {
+    DWORD Type;
+    BOOLEAN Immediate;
+} TAPE_ERASE, *PTAPE_ERASE;
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _TAPE_PREPARE {
+    DWORD Operation;
+    BOOLEAN Immediate;
+} TAPE_PREPARE, *PTAPE_PREPARE;
+
+
+
+
+
+
+
+
+
+
+typedef struct _TAPE_WRITE_MARKS {
+    DWORD Type;
+    DWORD Count;
+    BOOLEAN Immediate;
+} TAPE_WRITE_MARKS, *PTAPE_WRITE_MARKS;
+
+
+
+
+
+
+
+
+
+typedef struct _TAPE_GET_POSITION {
+    DWORD Type;
+    DWORD Partition;
+    LARGE_INTEGER Offset;
+} TAPE_GET_POSITION, *PTAPE_GET_POSITION;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _TAPE_SET_POSITION {
+    DWORD Method;
+    DWORD Partition;
+    LARGE_INTEGER Offset;
+    BOOLEAN Immediate;
+} TAPE_SET_POSITION, *PTAPE_SET_POSITION;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _TAPE_GET_DRIVE_PARAMETERS {
+    BOOLEAN ECC;
+    BOOLEAN Compression;
+    BOOLEAN DataPadding;
+    BOOLEAN ReportSetmarks;
+    DWORD DefaultBlockSize;
+    DWORD MaximumBlockSize;
+    DWORD MinimumBlockSize;
+    DWORD MaximumPartitionCount;
+    DWORD FeaturesLow;
+    DWORD FeaturesHigh;
+    DWORD EOTWarningZoneSize;
+} TAPE_GET_DRIVE_PARAMETERS, *PTAPE_GET_DRIVE_PARAMETERS;
+
+
+
+
+
+typedef struct _TAPE_SET_DRIVE_PARAMETERS {
+    BOOLEAN ECC;
+    BOOLEAN Compression;
+    BOOLEAN DataPadding;
+    BOOLEAN ReportSetmarks;
+    DWORD EOTWarningZoneSize;
+} TAPE_SET_DRIVE_PARAMETERS, *PTAPE_SET_DRIVE_PARAMETERS;
+
+
+
+
+
+typedef struct _TAPE_GET_MEDIA_PARAMETERS {
+    LARGE_INTEGER Capacity;
+    LARGE_INTEGER Remaining;
+    DWORD BlockSize;
+    DWORD PartitionCount;
+    BOOLEAN WriteProtected;
+} TAPE_GET_MEDIA_PARAMETERS, *PTAPE_GET_MEDIA_PARAMETERS;
+
+
+
+
+
+typedef struct _TAPE_SET_MEDIA_PARAMETERS {
+    DWORD BlockSize;
+} TAPE_SET_MEDIA_PARAMETERS, *PTAPE_SET_MEDIA_PARAMETERS;
+
+
+
+
+
+
+
+
+
+typedef struct _TAPE_CREATE_PARTITION {
+    DWORD Method;
+    DWORD Count;
+    DWORD Size;
+} TAPE_CREATE_PARTITION, *PTAPE_CREATE_PARTITION;
+
+
+
+}
+
+
+
+
+
+
+
+typedef UINT WPARAM;
+typedef LONG LPARAM;
+typedef LONG LRESULT;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+struct HWND__ { int unused; }; typedef struct HWND__ *HWND;
+struct HHOOK__ { int unused; }; typedef struct HHOOK__ *HHOOK;
+
+
+
+
+
+typedef WORD                ATOM;
+
+typedef HANDLE          *SPHANDLE;
+typedef HANDLE           *LPHANDLE;
+typedef HANDLE              HGLOBAL;
+typedef HANDLE              HLOCAL;
+typedef HANDLE              GLOBALHANDLE;
+typedef HANDLE              LOCALHANDLE;
+
+typedef int ( __stdcall *FARPROC)();
+typedef int ( __stdcall *NEARPROC)();
+typedef int (__stdcall *PROC)();
+
+
+
+
+
+
+
+
+typedef void * HGDIOBJ;
+
+
+
+
+
+
+struct HACCEL__ { int unused; }; typedef struct HACCEL__ *HACCEL;
+
+
+struct HBITMAP__ { int unused; }; typedef struct HBITMAP__ *HBITMAP;
+struct HBRUSH__ { int unused; }; typedef struct HBRUSH__ *HBRUSH;
+
+
+struct HCOLORSPACE__ { int unused; }; typedef struct HCOLORSPACE__ *HCOLORSPACE;
+
+
+struct HDC__ { int unused; }; typedef struct HDC__ *HDC;
+
+struct HGLRC__ { int unused; }; typedef struct HGLRC__ *HGLRC;          
+struct HDESK__ { int unused; }; typedef struct HDESK__ *HDESK;
+struct HENHMETAFILE__ { int unused; }; typedef struct HENHMETAFILE__ *HENHMETAFILE;
+
+struct HFONT__ { int unused; }; typedef struct HFONT__ *HFONT;
+
+struct HICON__ { int unused; }; typedef struct HICON__ *HICON;
+
+struct HMENU__ { int unused; }; typedef struct HMENU__ *HMENU;
+
+struct HMETAFILE__ { int unused; }; typedef struct HMETAFILE__ *HMETAFILE;
+struct HINSTANCE__ { int unused; }; typedef struct HINSTANCE__ *HINSTANCE;
+typedef HINSTANCE HMODULE;      
+
+struct HPALETTE__ { int unused; }; typedef struct HPALETTE__ *HPALETTE;
+struct HPEN__ { int unused; }; typedef struct HPEN__ *HPEN;
+
+struct HRGN__ { int unused; }; typedef struct HRGN__ *HRGN;
+struct HRSRC__ { int unused; }; typedef struct HRSRC__ *HRSRC;
+struct HSTR__ { int unused; }; typedef struct HSTR__ *HSTR;
+struct HTASK__ { int unused; }; typedef struct HTASK__ *HTASK;
+struct HWINSTA__ { int unused; }; typedef struct HWINSTA__ *HWINSTA;
+struct HKL__ { int unused; }; typedef struct HKL__ *HKL;
+
+
+
+
+
+
+
+
+
+
+typedef int HFILE;
+typedef HICON HCURSOR;      
+
+
+
+
+
+typedef DWORD   COLORREF;
+typedef DWORD   *LPCOLORREF;
+
+
+
+typedef struct tagRECT
+{
+    LONG    left;
+    LONG    top;
+    LONG    right;
+    LONG    bottom;
+} RECT, *PRECT,  *NPRECT,  *LPRECT;
+
+typedef const RECT * LPCRECT;
+
+typedef struct _RECTL       
+{
+    LONG    left;
+    LONG    top;
+    LONG    right;
+    LONG    bottom;
+} RECTL, *PRECTL, *LPRECTL;
+
+typedef const RECTL * LPCRECTL;
+
+typedef struct tagPOINT
+{
+    LONG  x;
+    LONG  y;
+} POINT, *PPOINT,  *NPPOINT,  *LPPOINT;
+
+typedef struct _POINTL      
+{
+    LONG  x;
+    LONG  y;
+} POINTL, *PPOINTL;
+
+typedef struct tagSIZE
+{
+    LONG        cx;
+    LONG        cy;
+} SIZE, *PSIZE, *LPSIZE;
+
+typedef SIZE               SIZEL;
+typedef SIZE               *PSIZEL, *LPSIZEL;
+
+typedef struct tagPOINTS
+{
+
+    SHORT   x;
+    SHORT   y;
+
+
+
+
+} POINTS, *PPOINTS, *LPPOINTS;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _OVERLAPPED {
+    DWORD   Internal;
+    DWORD   InternalHigh;
+    DWORD   Offset;
+    DWORD   OffsetHigh;
+    HANDLE  hEvent;
+} OVERLAPPED, *LPOVERLAPPED;
+
+typedef struct _SECURITY_ATTRIBUTES {
+    DWORD nLength;
+    LPVOID lpSecurityDescriptor;
+    BOOL bInheritHandle;
+} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
+
+typedef struct _PROCESS_INFORMATION {
+    HANDLE hProcess;
+    HANDLE hThread;
+    DWORD dwProcessId;
+    DWORD dwThreadId;
+} PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION;
+
+
+
+
+
+typedef struct _FILETIME {
+    DWORD dwLowDateTime;
+    DWORD dwHighDateTime;
+} FILETIME, *PFILETIME, *LPFILETIME;
+
+
+
+
+
+typedef struct _SYSTEMTIME {
+    WORD wYear;
+    WORD wMonth;
+    WORD wDayOfWeek;
+    WORD wDay;
+    WORD wHour;
+    WORD wMinute;
+    WORD wSecond;
+    WORD wMilliseconds;
+} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
+
+typedef DWORD (__stdcall *PTHREAD_START_ROUTINE)(
+    LPVOID lpThreadParameter
+    );
+typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
+
+
+
+
+
+
+
+
+typedef RTL_CRITICAL_SECTION CRITICAL_SECTION;
+typedef PRTL_CRITICAL_SECTION PCRITICAL_SECTION;
+typedef PRTL_CRITICAL_SECTION LPCRITICAL_SECTION;
+
+typedef RTL_CRITICAL_SECTION_DEBUG CRITICAL_SECTION_DEBUG;
+typedef PRTL_CRITICAL_SECTION_DEBUG PCRITICAL_SECTION_DEBUG;
+typedef PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG;
+
+
+typedef PLDT_ENTRY LPLDT_ENTRY;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _COMMPROP {
+    WORD wPacketLength;
+    WORD wPacketVersion;
+    DWORD dwServiceMask;
+    DWORD dwReserved1;
+    DWORD dwMaxTxQueue;
+    DWORD dwMaxRxQueue;
+    DWORD dwMaxBaud;
+    DWORD dwProvSubType;
+    DWORD dwProvCapabilities;
+    DWORD dwSettableParams;
+    DWORD dwSettableBaud;
+    WORD wSettableData;
+    WORD wSettableStopParity;
+    DWORD dwCurrentTxQueue;
+    DWORD dwCurrentRxQueue;
+    DWORD dwProvSpec1;
+    DWORD dwProvSpec2;
+    WCHAR wcProvChar[1];
+} COMMPROP,*LPCOMMPROP;
+
+
+
+
+
+
+
+typedef struct _COMSTAT {
+    DWORD fCtsHold : 1;
+    DWORD fDsrHold : 1;
+    DWORD fRlsdHold : 1;
+    DWORD fXoffHold : 1;
+    DWORD fXoffSent : 1;
+    DWORD fEof : 1;
+    DWORD fTxim : 1;
+    DWORD fReserved : 25;
+    DWORD cbInQue;
+    DWORD cbOutQue;
+} COMSTAT, *LPCOMSTAT;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _DCB {
+    DWORD DCBlength;      
+    DWORD BaudRate;       
+    DWORD fBinary: 1;     
+    DWORD fParity: 1;     
+    DWORD fOutxCtsFlow:1; 
+    DWORD fOutxDsrFlow:1; 
+    DWORD fDtrControl:2;  
+    DWORD fDsrSensitivity:1; 
+    DWORD fTXContinueOnXoff: 1; 
+    DWORD fOutX: 1;       
+    DWORD fInX: 1;        
+    DWORD fErrorChar: 1;  
+    DWORD fNull: 1;       
+    DWORD fRtsControl:2;  
+    DWORD fAbortOnError:1; 
+    DWORD fDummy2:17;     
+    WORD wReserved;       
+    WORD XonLim;          
+    WORD XoffLim;         
+    BYTE ByteSize;        
+    BYTE Parity;          
+    BYTE StopBits;        
+    char XonChar;         
+    char XoffChar;        
+    char ErrorChar;       
+    char EofChar;         
+    char EvtChar;         
+    WORD wReserved1;      
+} DCB, *LPDCB;
+
+typedef struct _COMMTIMEOUTS {
+    DWORD ReadIntervalTimeout;          
+    DWORD ReadTotalTimeoutMultiplier;   
+    DWORD ReadTotalTimeoutConstant;     
+    DWORD WriteTotalTimeoutMultiplier;  
+    DWORD WriteTotalTimeoutConstant;    
+} COMMTIMEOUTS,*LPCOMMTIMEOUTS;
+
+typedef struct _COMMCONFIG {
+    DWORD dwSize;               
+    WORD wVersion;              
+    WORD wReserved;             
+    DCB dcb;                    
+    DWORD dwProviderSubType;    
+
+    DWORD dwProviderOffset;     
+
+    DWORD dwProviderSize;       
+    WCHAR wcProviderData[1];    
+} COMMCONFIG,*LPCOMMCONFIG;
+
+typedef struct _SYSTEM_INFO {
+    union {
+        DWORD dwOemId;          
+        struct {
+            WORD wProcessorArchitecture;
+            WORD wReserved;
+        };
+    };
+    DWORD dwPageSize;
+    LPVOID lpMinimumApplicationAddress;
+    LPVOID lpMaximumApplicationAddress;
+    DWORD dwActiveProcessorMask;
+    DWORD dwNumberOfProcessors;
+    DWORD dwProcessorType;
+    DWORD dwAllocationGranularity;
+    WORD wProcessorLevel;
+    WORD wProcessorRevision;
+} SYSTEM_INFO, *LPSYSTEM_INFO;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _MEMORYSTATUS {
+    DWORD dwLength;
+    DWORD dwMemoryLoad;
+    DWORD dwTotalPhys;
+    DWORD dwAvailPhys;
+    DWORD dwTotalPageFile;
+    DWORD dwAvailPageFile;
+    DWORD dwTotalVirtual;
+    DWORD dwAvailVirtual;
+} MEMORYSTATUS, *LPMEMORYSTATUS;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _EXCEPTION_DEBUG_INFO {
+    EXCEPTION_RECORD ExceptionRecord;
+    DWORD dwFirstChance;
+} EXCEPTION_DEBUG_INFO, *LPEXCEPTION_DEBUG_INFO;
+
+typedef struct _CREATE_THREAD_DEBUG_INFO {
+    HANDLE hThread;
+    LPVOID lpThreadLocalBase;
+    LPTHREAD_START_ROUTINE lpStartAddress;
+} CREATE_THREAD_DEBUG_INFO, *LPCREATE_THREAD_DEBUG_INFO;
+
+typedef struct _CREATE_PROCESS_DEBUG_INFO {
+    HANDLE hFile;
+    HANDLE hProcess;
+    HANDLE hThread;
+    LPVOID lpBaseOfImage;
+    DWORD dwDebugInfoFileOffset;
+    DWORD nDebugInfoSize;
+    LPVOID lpThreadLocalBase;
+    LPTHREAD_START_ROUTINE lpStartAddress;
+    LPVOID lpImageName;
+    WORD fUnicode;
+} CREATE_PROCESS_DEBUG_INFO, *LPCREATE_PROCESS_DEBUG_INFO;
+
+typedef struct _EXIT_THREAD_DEBUG_INFO {
+    DWORD dwExitCode;
+} EXIT_THREAD_DEBUG_INFO, *LPEXIT_THREAD_DEBUG_INFO;
+
+typedef struct _EXIT_PROCESS_DEBUG_INFO {
+    DWORD dwExitCode;
+} EXIT_PROCESS_DEBUG_INFO, *LPEXIT_PROCESS_DEBUG_INFO;
+
+typedef struct _LOAD_DLL_DEBUG_INFO {
+    HANDLE hFile;
+    LPVOID lpBaseOfDll;
+    DWORD dwDebugInfoFileOffset;
+    DWORD nDebugInfoSize;
+    LPVOID lpImageName;
+    WORD fUnicode;
+} LOAD_DLL_DEBUG_INFO, *LPLOAD_DLL_DEBUG_INFO;
+
+typedef struct _UNLOAD_DLL_DEBUG_INFO {
+    LPVOID lpBaseOfDll;
+} UNLOAD_DLL_DEBUG_INFO, *LPUNLOAD_DLL_DEBUG_INFO;
+
+typedef struct _OUTPUT_DEBUG_STRING_INFO {
+    LPSTR lpDebugStringData;
+    WORD fUnicode;
+    WORD nDebugStringLength;
+} OUTPUT_DEBUG_STRING_INFO, *LPOUTPUT_DEBUG_STRING_INFO;
+
+typedef struct _RIP_INFO {
+    DWORD dwError;
+    DWORD dwType;
+} RIP_INFO, *LPRIP_INFO;
+
+
+typedef struct _DEBUG_EVENT {
+    DWORD dwDebugEventCode;
+    DWORD dwProcessId;
+    DWORD dwThreadId;
+    union {
+        EXCEPTION_DEBUG_INFO Exception;
+        CREATE_THREAD_DEBUG_INFO CreateThread;
+        CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
+        EXIT_THREAD_DEBUG_INFO ExitThread;
+        EXIT_PROCESS_DEBUG_INFO ExitProcess;
+        LOAD_DLL_DEBUG_INFO LoadDll;
+        UNLOAD_DLL_DEBUG_INFO UnloadDll;
+        OUTPUT_DEBUG_STRING_INFO DebugString;
+        RIP_INFO RipInfo;
+    } u;
+} DEBUG_EVENT, *LPDEBUG_EVENT;
+
+
+typedef PCONTEXT LPCONTEXT;
+typedef PEXCEPTION_RECORD LPEXCEPTION_RECORD;
+typedef PEXCEPTION_POINTERS LPEXCEPTION_POINTERS;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _OFSTRUCT {
+    BYTE cBytes;
+    BYTE fFixedDisk;
+    WORD nErrCode;
+    WORD Reserved1;
+    WORD Reserved2;
+    CHAR szPathName[128];
+} OFSTRUCT, *LPOFSTRUCT, *POFSTRUCT;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+InterlockedIncrement(
+    LPLONG lpAddend
+    );
+
+__declspec(dllimport)
+LONG
+__stdcall
+InterlockedDecrement(
+    LPLONG lpAddend
+    );
+
+__declspec(dllimport)
+LONG
+__stdcall
+InterlockedExchange(
+    LPLONG Target,
+    LONG Value
+    );
+
+__declspec(dllimport)
+LONG
+__stdcall
+InterlockedExchangeAdd(
+    LPLONG Addend,
+    LONG Value
+    );
+
+__declspec(dllimport)
+PVOID
+__stdcall
+InterlockedCompareExchange (
+    PVOID *Destination,
+    PVOID Exchange,
+    PVOID Comperand
+    );
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+FreeResource(
+        HGLOBAL hResData
+        );
+
+__declspec(dllimport)
+LPVOID
+__stdcall
+LockResource(
+        HGLOBAL hResData
+        );
+
+
+
+
+
+
+
+int
+__stdcall
+
+
+
+
+WinMain(
+    HINSTANCE hInstance,
+    HINSTANCE hPrevInstance,
+    LPSTR lpCmdLine,
+    int nShowCmd
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+FreeLibrary(
+    HMODULE hLibModule
+    );
+
+
+__declspec(dllimport)
+void
+__stdcall
+FreeLibraryAndExitThread(
+    HMODULE hLibModule,
+    DWORD dwExitCode
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DisableThreadLibraryCalls(
+    HMODULE hLibModule
+    );
+
+__declspec(dllimport)
+FARPROC
+__stdcall
+GetProcAddress(
+    HMODULE hModule,
+    LPCSTR lpProcName
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetVersion( void );
+
+__declspec(dllimport)
+HGLOBAL
+__stdcall
+GlobalAlloc(
+    UINT uFlags,
+    DWORD dwBytes
+    );
+
+__declspec(dllimport)
+HGLOBAL
+__stdcall
+GlobalReAlloc(
+    HGLOBAL hMem,
+    DWORD dwBytes,
+    UINT uFlags
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GlobalSize(
+    HGLOBAL hMem
+    );
+
+__declspec(dllimport)
+UINT
+__stdcall
+GlobalFlags(
+    HGLOBAL hMem
+    );
+
+
+__declspec(dllimport)
+LPVOID
+__stdcall
+GlobalLock(
+    HGLOBAL hMem
+    );
+
+
+__declspec(dllimport)
+HGLOBAL
+__stdcall
+GlobalHandle(
+    LPCVOID pMem
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GlobalUnlock(
+    HGLOBAL hMem
+    );
+
+
+__declspec(dllimport)
+HGLOBAL
+__stdcall
+GlobalFree(
+    HGLOBAL hMem
+    );
+
+__declspec(dllimport)
+UINT
+__stdcall
+GlobalCompact(
+    DWORD dwMinFree
+    );
+
+__declspec(dllimport)
+void
+__stdcall
+GlobalFix(
+    HGLOBAL hMem
+    );
+
+__declspec(dllimport)
+void
+__stdcall
+GlobalUnfix(
+    HGLOBAL hMem
+    );
+
+__declspec(dllimport)
+LPVOID
+__stdcall
+GlobalWire(
+    HGLOBAL hMem
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GlobalUnWire(
+    HGLOBAL hMem
+    );
+
+__declspec(dllimport)
+void
+__stdcall
+GlobalMemoryStatus(
+    LPMEMORYSTATUS lpBuffer
+    );
+
+__declspec(dllimport)
+HLOCAL
+__stdcall
+LocalAlloc(
+    UINT uFlags,
+    UINT uBytes
+    );
+
+__declspec(dllimport)
+HLOCAL
+__stdcall
+LocalReAlloc(
+    HLOCAL hMem,
+    UINT uBytes,
+    UINT uFlags
+    );
+
+__declspec(dllimport)
+LPVOID
+__stdcall
+LocalLock(
+    HLOCAL hMem
+    );
+
+__declspec(dllimport)
+HLOCAL
+__stdcall
+LocalHandle(
+    LPCVOID pMem
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+LocalUnlock(
+    HLOCAL hMem
+    );
+
+__declspec(dllimport)
+UINT
+__stdcall
+LocalSize(
+    HLOCAL hMem
+    );
+
+__declspec(dllimport)
+UINT
+__stdcall
+LocalFlags(
+    HLOCAL hMem
+    );
+
+__declspec(dllimport)
+HLOCAL
+__stdcall
+LocalFree(
+    HLOCAL hMem
+    );
+
+__declspec(dllimport)
+UINT
+__stdcall
+LocalShrink(
+    HLOCAL hMem,
+    UINT cbNewSize
+    );
+
+__declspec(dllimport)
+UINT
+__stdcall
+LocalCompact(
+    UINT uMinFree
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+FlushInstructionCache(
+    HANDLE hProcess,
+    LPCVOID lpBaseAddress,
+    DWORD dwSize
+    );
+
+__declspec(dllimport)
+LPVOID
+__stdcall
+VirtualAlloc(
+    LPVOID lpAddress,
+    DWORD dwSize,
+    DWORD flAllocationType,
+    DWORD flProtect
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+VirtualFree(
+    LPVOID lpAddress,
+    DWORD dwSize,
+    DWORD dwFreeType
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+VirtualProtect(
+    LPVOID lpAddress,
+    DWORD dwSize,
+    DWORD flNewProtect,
+    PDWORD lpflOldProtect
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+VirtualQuery(
+    LPCVOID lpAddress,
+    PMEMORY_BASIC_INFORMATION lpBuffer,
+    DWORD dwLength
+    );
+
+__declspec(dllimport)
+LPVOID
+__stdcall
+VirtualAllocEx(
+    HANDLE hProcess,
+    LPVOID lpAddress,
+    DWORD dwSize,
+    DWORD flAllocationType,
+    DWORD flProtect
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+VirtualFreeEx(
+    HANDLE hProcess,
+    LPVOID lpAddress,
+    DWORD dwSize,
+    DWORD dwFreeType
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+VirtualProtectEx(
+    HANDLE hProcess,
+    LPVOID lpAddress,
+    DWORD dwSize,
+    DWORD flNewProtect,
+    PDWORD lpflOldProtect
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+VirtualQueryEx(
+    HANDLE hProcess,
+    LPCVOID lpAddress,
+    PMEMORY_BASIC_INFORMATION lpBuffer,
+    DWORD dwLength
+    );
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+HeapCreate(
+    DWORD flOptions,
+    DWORD dwInitialSize,
+    DWORD dwMaximumSize
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+HeapDestroy(
+    HANDLE hHeap
+    );
+
+
+__declspec(dllimport)
+LPVOID
+__stdcall
+HeapAlloc(
+    HANDLE hHeap,
+    DWORD dwFlags,
+    DWORD dwBytes
+    );
+
+__declspec(dllimport)
+LPVOID
+__stdcall
+HeapReAlloc(
+    HANDLE hHeap,
+    DWORD dwFlags,
+    LPVOID lpMem,
+    DWORD dwBytes
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+HeapFree(
+    HANDLE hHeap,
+    DWORD dwFlags,
+    LPVOID lpMem
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+HeapSize(
+    HANDLE hHeap,
+    DWORD dwFlags,
+    LPCVOID lpMem
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+HeapValidate(
+    HANDLE hHeap,
+    DWORD dwFlags,
+    LPCVOID lpMem
+    );
+
+__declspec(dllimport)
+UINT
+__stdcall
+HeapCompact(
+    HANDLE hHeap,
+    DWORD dwFlags
+    );
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+GetProcessHeap( void );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetProcessHeaps(
+    DWORD NumberOfHeaps,
+    PHANDLE ProcessHeaps
+    );
+
+typedef struct _PROCESS_HEAP_ENTRY {
+    PVOID lpData;
+    DWORD cbData;
+    BYTE cbOverhead;
+    BYTE iRegionIndex;
+    WORD wFlags;
+    union {
+        struct {
+            HANDLE hMem;
+            DWORD dwReserved[ 3 ];
+        } Block;
+        struct {
+            DWORD dwCommittedSize;
+            DWORD dwUnCommittedSize;
+            LPVOID lpFirstBlock;
+            LPVOID lpLastBlock;
+        } Region;
+    };
+} PROCESS_HEAP_ENTRY, *LPPROCESS_HEAP_ENTRY, *PPROCESS_HEAP_ENTRY;
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+HeapLock(
+    HANDLE hHeap
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+HeapUnlock(
+    HANDLE hHeap
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+HeapWalk(
+    HANDLE hHeap,
+    LPPROCESS_HEAP_ENTRY lpEntry
+    );
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetBinaryTypeA(
+    LPCSTR lpApplicationName,
+    LPDWORD lpBinaryType
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+GetBinaryTypeW(
+    LPCWSTR lpApplicationName,
+    LPDWORD lpBinaryType
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetShortPathNameA(
+    LPCSTR lpszLongPath,
+    LPSTR  lpszShortPath,
+    DWORD    cchBuffer
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+GetShortPathNameW(
+    LPCWSTR lpszLongPath,
+    LPWSTR  lpszShortPath,
+    DWORD    cchBuffer
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetLongPathNameA(
+    LPCSTR lpszShortPath,
+    LPSTR  lpszLongPath,
+    DWORD    cchBuffer
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+GetLongPathNameW(
+    LPCWSTR lpszShortPath,
+    LPWSTR  lpszLongPath,
+    DWORD    cchBuffer
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetProcessAffinityMask(
+    HANDLE hProcess,
+    LPDWORD lpProcessAffinityMask,
+    LPDWORD lpSystemAffinityMask
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetProcessAffinityMask(
+    HANDLE hProcess,
+    DWORD dwProcessAffinityMask
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetProcessTimes(
+    HANDLE hProcess,
+    LPFILETIME lpCreationTime,
+    LPFILETIME lpExitTime,
+    LPFILETIME lpKernelTime,
+    LPFILETIME lpUserTime
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetProcessWorkingSetSize(
+    HANDLE hProcess,
+    LPDWORD lpMinimumWorkingSetSize,
+    LPDWORD lpMaximumWorkingSetSize
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetProcessWorkingSetSize(
+    HANDLE hProcess,
+    DWORD dwMinimumWorkingSetSize,
+    DWORD dwMaximumWorkingSetSize
+    );
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+OpenProcess(
+    DWORD dwDesiredAccess,
+    BOOL bInheritHandle,
+    DWORD dwProcessId
+    );
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+GetCurrentProcess(
+    void
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetCurrentProcessId(
+    void
+    );
+
+__declspec(dllimport)
+void
+__stdcall
+ExitProcess(
+    UINT uExitCode
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+TerminateProcess(
+    HANDLE hProcess,
+    UINT uExitCode
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetExitCodeProcess(
+    HANDLE hProcess,
+    LPDWORD lpExitCode
+    );
+
+
+__declspec(dllimport)
+void
+__stdcall
+FatalExit(
+    int ExitCode
+    );
+
+__declspec(dllimport)
+LPSTR
+__stdcall
+GetEnvironmentStrings(
+    void
+    );
+
+__declspec(dllimport)
+LPWSTR
+__stdcall
+GetEnvironmentStringsW(
+    void
+    );
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+FreeEnvironmentStringsA(
+    LPSTR
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+FreeEnvironmentStringsW(
+    LPWSTR
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+void
+__stdcall
+RaiseException(
+    DWORD dwExceptionCode,
+    DWORD dwExceptionFlags,
+    DWORD nNumberOfArguments,
+    const DWORD *lpArguments
+    );
+
+__declspec(dllimport)
+LONG
+__stdcall
+UnhandledExceptionFilter(
+    struct _EXCEPTION_POINTERS *ExceptionInfo
+    );
+
+typedef LONG (__stdcall *PTOP_LEVEL_EXCEPTION_FILTER)(
+    struct _EXCEPTION_POINTERS *ExceptionInfo
+    );
+typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
+
+__declspec(dllimport)
+LPTOP_LEVEL_EXCEPTION_FILTER
+__stdcall
+SetUnhandledExceptionFilter(
+    LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+CreateThread(
+    LPSECURITY_ATTRIBUTES lpThreadAttributes,
+    DWORD dwStackSize,
+    LPTHREAD_START_ROUTINE lpStartAddress,
+    LPVOID lpParameter,
+    DWORD dwCreationFlags,
+    LPDWORD lpThreadId
+    );
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+CreateRemoteThread(
+    HANDLE hProcess,
+    LPSECURITY_ATTRIBUTES lpThreadAttributes,
+    DWORD dwStackSize,
+    LPTHREAD_START_ROUTINE lpStartAddress,
+    LPVOID lpParameter,
+    DWORD dwCreationFlags,
+    LPDWORD lpThreadId
+    );
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+GetCurrentThread(
+    void
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetCurrentThreadId(
+    void
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+SetThreadAffinityMask(
+    HANDLE hThread,
+    DWORD dwThreadAffinityMask
+    );
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetProcessPriorityBoost(
+    HANDLE hProcess,
+    BOOL bDisablePriorityBoost
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetProcessPriorityBoost(
+    HANDLE hProcess,
+    PBOOL pDisablePriorityBoost
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+RequestWakeupLatency(
+    LATENCY_TIME latency
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetThreadPriority(
+    HANDLE hThread,
+    int nPriority
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetThreadPriorityBoost(
+    HANDLE hThread,
+    BOOL bDisablePriorityBoost
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetThreadPriorityBoost(
+    HANDLE hThread,
+    PBOOL pDisablePriorityBoost
+    );
+
+__declspec(dllimport)
+int
+__stdcall
+GetThreadPriority(
+    HANDLE hThread
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetThreadTimes(
+    HANDLE hThread,
+    LPFILETIME lpCreationTime,
+    LPFILETIME lpExitTime,
+    LPFILETIME lpKernelTime,
+    LPFILETIME lpUserTime
+    );
+
+__declspec(dllimport)
+void
+__stdcall
+ExitThread(
+    DWORD dwExitCode
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+TerminateThread(
+    HANDLE hThread,
+    DWORD dwExitCode
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetExitCodeThread(
+    HANDLE hThread,
+    LPDWORD lpExitCode
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetThreadSelectorEntry(
+    HANDLE hThread,
+    DWORD dwSelector,
+    LPLDT_ENTRY lpSelectorEntry
+    );
+
+__declspec(dllimport)
+EXECUTION_STATE
+__stdcall
+SetThreadExecutionState(
+    EXECUTION_STATE esFlags
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetLastError(
+    void
+    );
+
+__declspec(dllimport)
+void
+__stdcall
+SetLastError(
+    DWORD dwErrCode
+    );
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetOverlappedResult(
+    HANDLE hFile,
+    LPOVERLAPPED lpOverlapped,
+    LPDWORD lpNumberOfBytesTransferred,
+    BOOL bWait
+    );
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+CreateIoCompletionPort(
+    HANDLE FileHandle,
+    HANDLE ExistingCompletionPort,
+    DWORD CompletionKey,
+    DWORD NumberOfConcurrentThreads
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetQueuedCompletionStatus(
+    HANDLE CompletionPort,
+    LPDWORD lpNumberOfBytesTransferred,
+    LPDWORD lpCompletionKey,
+    LPOVERLAPPED *lpOverlapped,
+    DWORD dwMilliseconds
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+PostQueuedCompletionStatus(
+    HANDLE CompletionPort,
+    DWORD dwNumberOfBytesTransferred,
+    DWORD dwCompletionKey,
+    LPOVERLAPPED lpOverlapped
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+UINT
+__stdcall
+SetErrorMode(
+    UINT uMode
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ReadProcessMemory(
+    HANDLE hProcess,
+    LPCVOID lpBaseAddress,
+    LPVOID lpBuffer,
+    DWORD nSize,
+    LPDWORD lpNumberOfBytesRead
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+WriteProcessMemory(
+    HANDLE hProcess,
+    LPVOID lpBaseAddress,
+    LPVOID lpBuffer,
+    DWORD nSize,
+    LPDWORD lpNumberOfBytesWritten
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetThreadContext(
+    HANDLE hThread,
+    LPCONTEXT lpContext
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetThreadContext(
+    HANDLE hThread,
+    const CONTEXT *lpContext
+    );
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+SuspendThread(
+    HANDLE hThread
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+ResumeThread(
+    HANDLE hThread
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+void
+__stdcall
+DebugBreak(
+    void
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+WaitForDebugEvent(
+    LPDEBUG_EVENT lpDebugEvent,
+    DWORD dwMilliseconds
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ContinueDebugEvent(
+    DWORD dwProcessId,
+    DWORD dwThreadId,
+    DWORD dwContinueStatus
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DebugActiveProcess(
+    DWORD dwProcessId
+    );
+
+__declspec(dllimport)
+void
+__stdcall
+InitializeCriticalSection(
+    LPCRITICAL_SECTION lpCriticalSection
+    );
+
+__declspec(dllimport)
+void
+__stdcall
+EnterCriticalSection(
+    LPCRITICAL_SECTION lpCriticalSection
+    );
+
+__declspec(dllimport)
+void
+__stdcall
+LeaveCriticalSection(
+    LPCRITICAL_SECTION lpCriticalSection
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+void
+__stdcall
+DeleteCriticalSection(
+    LPCRITICAL_SECTION lpCriticalSection
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetEvent(
+    HANDLE hEvent
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ResetEvent(
+    HANDLE hEvent
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+PulseEvent(
+    HANDLE hEvent
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ReleaseSemaphore(
+    HANDLE hSemaphore,
+    LONG lReleaseCount,
+    LPLONG lpPreviousCount
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ReleaseMutex(
+    HANDLE hMutex
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+WaitForSingleObject(
+    HANDLE hHandle,
+    DWORD dwMilliseconds
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+WaitForMultipleObjects(
+    DWORD nCount,
+    const HANDLE *lpHandles,
+    BOOL bWaitAll,
+    DWORD dwMilliseconds
+    );
+
+__declspec(dllimport)
+void
+__stdcall
+Sleep(
+    DWORD dwMilliseconds
+    );
+
+__declspec(dllimport)
+HGLOBAL
+__stdcall
+LoadResource(
+    HMODULE hModule,
+    HRSRC hResInfo
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+SizeofResource(
+    HMODULE hModule,
+    HRSRC hResInfo
+    );
+
+
+__declspec(dllimport)
+ATOM
+__stdcall
+GlobalDeleteAtom(
+    ATOM nAtom
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+InitAtomTable(
+    DWORD nSize
+    );
+
+__declspec(dllimport)
+ATOM
+__stdcall
+DeleteAtom(
+    ATOM nAtom
+    );
+
+__declspec(dllimport)
+UINT
+__stdcall
+SetHandleCount(
+    UINT uNumber
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetLogicalDrives(
+    void
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+LockFile(
+    HANDLE hFile,
+    DWORD dwFileOffsetLow,
+    DWORD dwFileOffsetHigh,
+    DWORD nNumberOfBytesToLockLow,
+    DWORD nNumberOfBytesToLockHigh
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+UnlockFile(
+    HANDLE hFile,
+    DWORD dwFileOffsetLow,
+    DWORD dwFileOffsetHigh,
+    DWORD nNumberOfBytesToUnlockLow,
+    DWORD nNumberOfBytesToUnlockHigh
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+LockFileEx(
+    HANDLE hFile,
+    DWORD dwFlags,
+    DWORD dwReserved,
+    DWORD nNumberOfBytesToLockLow,
+    DWORD nNumberOfBytesToLockHigh,
+    LPOVERLAPPED lpOverlapped
+    );
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+UnlockFileEx(
+    HANDLE hFile,
+    DWORD dwReserved,
+    DWORD nNumberOfBytesToUnlockLow,
+    DWORD nNumberOfBytesToUnlockHigh,
+    LPOVERLAPPED lpOverlapped
+    );
+
+typedef struct _BY_HANDLE_FILE_INFORMATION {
+    DWORD dwFileAttributes;
+    FILETIME ftCreationTime;
+    FILETIME ftLastAccessTime;
+    FILETIME ftLastWriteTime;
+    DWORD dwVolumeSerialNumber;
+    DWORD nFileSizeHigh;
+    DWORD nFileSizeLow;
+    DWORD nNumberOfLinks;
+    DWORD nFileIndexHigh;
+    DWORD nFileIndexLow;
+} BY_HANDLE_FILE_INFORMATION, *PBY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION;
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetFileInformationByHandle(
+    HANDLE hFile,
+    LPBY_HANDLE_FILE_INFORMATION lpFileInformation
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetFileType(
+    HANDLE hFile
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetFileSize(
+    HANDLE hFile,
+    LPDWORD lpFileSizeHigh
+    );
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+GetStdHandle(
+    DWORD nStdHandle
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetStdHandle(
+    DWORD nStdHandle,
+    HANDLE hHandle
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+WriteFile(
+    HANDLE hFile,
+    LPCVOID lpBuffer,
+    DWORD nNumberOfBytesToWrite,
+    LPDWORD lpNumberOfBytesWritten,
+    LPOVERLAPPED lpOverlapped
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ReadFile(
+    HANDLE hFile,
+    LPVOID lpBuffer,
+    DWORD nNumberOfBytesToRead,
+    LPDWORD lpNumberOfBytesRead,
+    LPOVERLAPPED lpOverlapped
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+FlushFileBuffers(
+    HANDLE hFile
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DeviceIoControl(
+    HANDLE hDevice,
+    DWORD dwIoControlCode,
+    LPVOID lpInBuffer,
+    DWORD nInBufferSize,
+    LPVOID lpOutBuffer,
+    DWORD nOutBufferSize,
+    LPDWORD lpBytesReturned,
+    LPOVERLAPPED lpOverlapped
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetDevicePowerState(
+    HANDLE hFile
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetEndOfFile(
+    HANDLE hFile
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+SetFilePointer(
+    HANDLE hFile,
+    LONG lDistanceToMove,
+    PLONG lpDistanceToMoveHigh,
+    DWORD dwMoveMethod
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+FindClose(
+    HANDLE hFindFile
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetFileTime(
+    HANDLE hFile,
+    LPFILETIME lpCreationTime,
+    LPFILETIME lpLastAccessTime,
+    LPFILETIME lpLastWriteTime
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetFileTime(
+    HANDLE hFile,
+    const FILETIME *lpCreationTime,
+    const FILETIME *lpLastAccessTime,
+    const FILETIME *lpLastWriteTime
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CloseHandle(
+    HANDLE hObject
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DuplicateHandle(
+    HANDLE hSourceProcessHandle,
+    HANDLE hSourceHandle,
+    HANDLE hTargetProcessHandle,
+    LPHANDLE lpTargetHandle,
+    DWORD dwDesiredAccess,
+    BOOL bInheritHandle,
+    DWORD dwOptions
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetHandleInformation(
+    HANDLE hObject,
+    LPDWORD lpdwFlags
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetHandleInformation(
+    HANDLE hObject,
+    DWORD dwMask,
+    DWORD dwFlags
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+LoadModule(
+    LPCSTR lpModuleName,
+    LPVOID lpParameterBlock
+    );
+
+__declspec(dllimport)
+UINT
+__stdcall
+WinExec(
+    LPCSTR lpCmdLine,
+    UINT uCmdShow
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ClearCommBreak(
+    HANDLE hFile
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ClearCommError(
+    HANDLE hFile,
+    LPDWORD lpErrors,
+    LPCOMSTAT lpStat
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetupComm(
+    HANDLE hFile,
+    DWORD dwInQueue,
+    DWORD dwOutQueue
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EscapeCommFunction(
+    HANDLE hFile,
+    DWORD dwFunc
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetCommConfig(
+    HANDLE hCommDev,
+    LPCOMMCONFIG lpCC,
+    LPDWORD lpdwSize
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetCommMask(
+    HANDLE hFile,
+    LPDWORD lpEvtMask
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetCommProperties(
+    HANDLE hFile,
+    LPCOMMPROP lpCommProp
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetCommModemStatus(
+    HANDLE hFile,
+    LPDWORD lpModemStat
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetCommState(
+    HANDLE hFile,
+    LPDCB lpDCB
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetCommTimeouts(
+    HANDLE hFile,
+    LPCOMMTIMEOUTS lpCommTimeouts
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+PurgeComm(
+    HANDLE hFile,
+    DWORD dwFlags
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetCommBreak(
+    HANDLE hFile
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetCommConfig(
+    HANDLE hCommDev,
+    LPCOMMCONFIG lpCC,
+    DWORD dwSize
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetCommMask(
+    HANDLE hFile,
+    DWORD dwEvtMask
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetCommState(
+    HANDLE hFile,
+    LPDCB lpDCB
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetCommTimeouts(
+    HANDLE hFile,
+    LPCOMMTIMEOUTS lpCommTimeouts
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+TransmitCommChar(
+    HANDLE hFile,
+    char cChar
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+WaitCommEvent(
+    HANDLE hFile,
+    LPDWORD lpEvtMask,
+    LPOVERLAPPED lpOverlapped
+    );
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+SetTapePosition(
+    HANDLE hDevice,
+    DWORD dwPositionMethod,
+    DWORD dwPartition,
+    DWORD dwOffsetLow,
+    DWORD dwOffsetHigh,
+    BOOL bImmediate
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetTapePosition(
+    HANDLE hDevice,
+    DWORD dwPositionType,
+    LPDWORD lpdwPartition,
+    LPDWORD lpdwOffsetLow,
+    LPDWORD lpdwOffsetHigh
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+PrepareTape(
+    HANDLE hDevice,
+    DWORD dwOperation,
+    BOOL bImmediate
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+EraseTape(
+    HANDLE hDevice,
+    DWORD dwEraseType,
+    BOOL bImmediate
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+CreateTapePartition(
+    HANDLE hDevice,
+    DWORD dwPartitionMethod,
+    DWORD dwCount,
+    DWORD dwSize
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+WriteTapemark(
+    HANDLE hDevice,
+    DWORD dwTapemarkType,
+    DWORD dwTapemarkCount,
+    BOOL bImmediate
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetTapeStatus(
+    HANDLE hDevice
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetTapeParameters(
+    HANDLE hDevice,
+    DWORD dwOperation,
+    LPDWORD lpdwSize,
+    LPVOID lpTapeInformation
+    );
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+SetTapeParameters(
+    HANDLE hDevice,
+    DWORD dwOperation,
+    LPVOID lpTapeInformation
+    );
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+Beep(
+    DWORD dwFreq,
+    DWORD dwDuration
+    );
+
+__declspec(dllimport)
+int
+__stdcall
+MulDiv(
+    int nNumber,
+    int nNumerator,
+    int nDenominator
+    );
+
+__declspec(dllimport)
+void
+__stdcall
+GetSystemTime(
+    LPSYSTEMTIME lpSystemTime
+    );
+
+__declspec(dllimport)
+void
+__stdcall
+GetSystemTimeAsFileTime(
+    LPFILETIME lpSystemTimeAsFileTime
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetSystemTime(
+    const SYSTEMTIME *lpSystemTime
+    );
+
+__declspec(dllimport)
+void
+__stdcall
+GetLocalTime(
+    LPSYSTEMTIME lpSystemTime
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetLocalTime(
+    const SYSTEMTIME *lpSystemTime
+    );
+
+__declspec(dllimport)
+void
+__stdcall
+GetSystemInfo(
+    LPSYSTEM_INFO lpSystemInfo
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsProcessorFeaturePresent(
+    DWORD ProcessorFeature
+    );
+
+typedef struct _TIME_ZONE_INFORMATION {
+    LONG Bias;
+    WCHAR StandardName[ 32 ];
+    SYSTEMTIME StandardDate;
+    LONG StandardBias;
+    WCHAR DaylightName[ 32 ];
+    SYSTEMTIME DaylightDate;
+    LONG DaylightBias;
+} TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SystemTimeToTzSpecificLocalTime(
+    LPTIME_ZONE_INFORMATION lpTimeZoneInformation,
+    LPSYSTEMTIME lpUniversalTime,
+    LPSYSTEMTIME lpLocalTime
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetTimeZoneInformation(
+    LPTIME_ZONE_INFORMATION lpTimeZoneInformation
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetTimeZoneInformation(
+    const TIME_ZONE_INFORMATION *lpTimeZoneInformation
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SystemTimeToFileTime(
+    const SYSTEMTIME *lpSystemTime,
+    LPFILETIME lpFileTime
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+FileTimeToLocalFileTime(
+    const FILETIME *lpFileTime,
+    LPFILETIME lpLocalFileTime
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+LocalFileTimeToFileTime(
+    const FILETIME *lpLocalFileTime,
+    LPFILETIME lpFileTime
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+FileTimeToSystemTime(
+    const FILETIME *lpFileTime,
+    LPSYSTEMTIME lpSystemTime
+    );
+
+__declspec(dllimport)
+LONG
+__stdcall
+CompareFileTime(
+    const FILETIME *lpFileTime1,
+    const FILETIME *lpFileTime2
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+FileTimeToDosDateTime(
+    const FILETIME *lpFileTime,
+    LPWORD lpFatDate,
+    LPWORD lpFatTime
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DosDateTimeToFileTime(
+    WORD wFatDate,
+    WORD wFatTime,
+    LPFILETIME lpFileTime
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetTickCount(
+    void
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetSystemTimeAdjustment(
+    DWORD dwTimeAdjustment,
+    BOOL  bTimeAdjustmentDisabled
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetSystemTimeAdjustment(
+    PDWORD lpTimeAdjustment,
+    PDWORD lpTimeIncrement,
+    PBOOL  lpTimeAdjustmentDisabled
+    );
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+FormatMessageA(
+    DWORD dwFlags,
+    LPCVOID lpSource,
+    DWORD dwMessageId,
+    DWORD dwLanguageId,
+    LPSTR lpBuffer,
+    DWORD nSize,
+    va_list *Arguments
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+FormatMessageW(
+    DWORD dwFlags,
+    LPCVOID lpSource,
+    DWORD dwMessageId,
+    DWORD dwLanguageId,
+    LPWSTR lpBuffer,
+    DWORD nSize,
+    va_list *Arguments
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CreatePipe(
+    PHANDLE hReadPipe,
+    PHANDLE hWritePipe,
+    LPSECURITY_ATTRIBUTES lpPipeAttributes,
+    DWORD nSize
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ConnectNamedPipe(
+    HANDLE hNamedPipe,
+    LPOVERLAPPED lpOverlapped
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DisconnectNamedPipe(
+    HANDLE hNamedPipe
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetNamedPipeHandleState(
+    HANDLE hNamedPipe,
+    LPDWORD lpMode,
+    LPDWORD lpMaxCollectionCount,
+    LPDWORD lpCollectDataTimeout
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetNamedPipeInfo(
+    HANDLE hNamedPipe,
+    LPDWORD lpFlags,
+    LPDWORD lpOutBufferSize,
+    LPDWORD lpInBufferSize,
+    LPDWORD lpMaxInstances
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+PeekNamedPipe(
+    HANDLE hNamedPipe,
+    LPVOID lpBuffer,
+    DWORD nBufferSize,
+    LPDWORD lpBytesRead,
+    LPDWORD lpTotalBytesAvail,
+    LPDWORD lpBytesLeftThisMessage
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+TransactNamedPipe(
+    HANDLE hNamedPipe,
+    LPVOID lpInBuffer,
+    DWORD nInBufferSize,
+    LPVOID lpOutBuffer,
+    DWORD nOutBufferSize,
+    LPDWORD lpBytesRead,
+    LPOVERLAPPED lpOverlapped
+    );
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+CreateMailslotA(
+    LPCSTR lpName,
+    DWORD nMaxMessageSize,
+    DWORD lReadTimeout,
+    LPSECURITY_ATTRIBUTES lpSecurityAttributes
+    );
+__declspec(dllimport)
+HANDLE
+__stdcall
+CreateMailslotW(
+    LPCWSTR lpName,
+    DWORD nMaxMessageSize,
+    DWORD lReadTimeout,
+    LPSECURITY_ATTRIBUTES lpSecurityAttributes
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetMailslotInfo(
+    HANDLE hMailslot,
+    LPDWORD lpMaxMessageSize,
+    LPDWORD lpNextSize,
+    LPDWORD lpMessageCount,
+    LPDWORD lpReadTimeout
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetMailslotInfo(
+    HANDLE hMailslot,
+    DWORD lReadTimeout
+    );
+
+__declspec(dllimport)
+LPVOID
+__stdcall
+MapViewOfFile(
+    HANDLE hFileMappingObject,
+    DWORD dwDesiredAccess,
+    DWORD dwFileOffsetHigh,
+    DWORD dwFileOffsetLow,
+    DWORD dwNumberOfBytesToMap
+    );
+
+
+__declspec(dllimport)
+PVOID64
+__stdcall
+MapViewOfFileVlm(
+    HANDLE hFileMappingObject,
+    DWORD dwDesiredAccess,
+    DWORDLONG ulOffset,
+    DWORDLONG ulNumberOfBytesToMap,
+    PVOID64 lpBaseAddress
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+FlushViewOfFile(
+    LPCVOID lpBaseAddress,
+    DWORD dwNumberOfBytesToFlush
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+UnmapViewOfFile(
+    LPCVOID lpBaseAddress
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+UnmapViewOfFileVlm(
+    PVOID64 lpBaseAddress
+    );
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EncryptFileA(
+    LPCSTR lpFileName
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+EncryptFileW(
+    LPCWSTR lpFileName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DecryptFileA(
+    LPCSTR lpFileName,
+    DWORD    dwReserved
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+DecryptFileW(
+    LPCWSTR lpFileName,
+    DWORD    dwReserved
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+typedef
+DWORD
+(*PFE_EXPORT_FUNC)(
+    PBYTE pbData,
+    PVOID pvCallbackContext,
+    ULONG ulLength
+    );
+
+typedef
+DWORD
+(*PFE_IMPORT_FUNC)(
+    PBYTE pbData,
+    PVOID pvCallbackContext,
+    PULONG ulLength
+    );
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+OpenRawA(
+    LPCSTR        lpFileName,
+    ULONG           ulFlags,
+    PVOID *         pvContext
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+OpenRawW(
+    LPCWSTR        lpFileName,
+    ULONG           ulFlags,
+    PVOID *         pvContext
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+ReadRaw(
+    PFE_EXPORT_FUNC pfExportCallback,
+    PVOID           pvCallbackContext,
+    PVOID           pvContext
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+WriteRaw(
+    PFE_IMPORT_FUNC pfImportCallback,
+    PVOID           pvCallbackContext,
+    PVOID           pvContext
+    );
+
+__declspec(dllimport)
+void
+__stdcall
+CloseRaw(
+    PVOID           pvContext
+    );
+
+typedef struct _RECOVERY_AGENT_INFORMATIONA {
+    DWORD NextEntryOffset;
+    DWORD AgentNameLength;
+    CHAR   AgentInformation[1];
+} RECOVERY_AGENT_INFORMATIONA, *LPRECOVERY_AGENT_INFORMATIONA;
+typedef struct _RECOVERY_AGENT_INFORMATIONW {
+    DWORD NextEntryOffset;
+    DWORD AgentNameLength;
+    WCHAR  AgentInformation[1];
+} RECOVERY_AGENT_INFORMATIONW, *LPRECOVERY_AGENT_INFORMATIONW;
+
+
+
+
+typedef RECOVERY_AGENT_INFORMATIONA RECOVERY_AGENT_INFORMATION;
+typedef LPRECOVERY_AGENT_INFORMATIONA LPRECOVERY_AGENT_INFORMATION;
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+QueryRecoveryAgentsA(
+           LPCSTR                        lpFileName,
+          PDWORD                          AgentCount,
+          LPRECOVERY_AGENT_INFORMATIONA * RecoveryAgentInformation
+     );
+__declspec(dllimport)
+DWORD
+__stdcall
+QueryRecoveryAgentsW(
+           LPCWSTR                        lpFileName,
+          PDWORD                          AgentCount,
+          LPRECOVERY_AGENT_INFORMATIONW * RecoveryAgentInformation
+     );
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+lstrcmpA(
+    LPCSTR lpString1,
+    LPCSTR lpString2
+    );
+__declspec(dllimport)
+int
+__stdcall
+lstrcmpW(
+    LPCWSTR lpString1,
+    LPCWSTR lpString2
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+lstrcmpiA(
+    LPCSTR lpString1,
+    LPCSTR lpString2
+    );
+__declspec(dllimport)
+int
+__stdcall
+lstrcmpiW(
+    LPCWSTR lpString1,
+    LPCWSTR lpString2
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LPSTR
+__stdcall
+lstrcpynA(
+    LPSTR lpString1,
+    LPCSTR lpString2,
+    int iMaxLength
+    );
+__declspec(dllimport)
+LPWSTR
+__stdcall
+lstrcpynW(
+    LPWSTR lpString1,
+    LPCWSTR lpString2,
+    int iMaxLength
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LPSTR
+__stdcall
+lstrcpyA(
+    LPSTR lpString1,
+    LPCSTR lpString2
+    );
+__declspec(dllimport)
+LPWSTR
+__stdcall
+lstrcpyW(
+    LPWSTR lpString1,
+    LPCWSTR lpString2
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LPSTR
+__stdcall
+lstrcatA(
+    LPSTR lpString1,
+    LPCSTR lpString2
+    );
+__declspec(dllimport)
+LPWSTR
+__stdcall
+lstrcatW(
+    LPWSTR lpString1,
+    LPCWSTR lpString2
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+lstrlenA(
+    LPCSTR lpString
+    );
+__declspec(dllimport)
+int
+__stdcall
+lstrlenW(
+    LPCWSTR lpString
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+HFILE
+__stdcall
+OpenFile(
+    LPCSTR lpFileName,
+    LPOFSTRUCT lpReOpenBuff,
+    UINT uStyle
+    );
+
+__declspec(dllimport)
+HFILE
+__stdcall
+_lopen(
+    LPCSTR lpPathName,
+    int iReadWrite
+    );
+
+__declspec(dllimport)
+HFILE
+__stdcall
+_lcreat(
+    LPCSTR lpPathName,
+    int  iAttribute
+    );
+
+__declspec(dllimport)
+UINT
+__stdcall
+_lread(
+    HFILE hFile,
+    LPVOID lpBuffer,
+    UINT uBytes
+    );
+
+__declspec(dllimport)
+UINT
+__stdcall
+_lwrite(
+    HFILE hFile,
+    LPCSTR lpBuffer,
+    UINT uBytes
+    );
+
+__declspec(dllimport)
+long
+__stdcall
+_hread(
+    HFILE hFile,
+    LPVOID lpBuffer,
+    long lBytes
+    );
+
+__declspec(dllimport)
+long
+__stdcall
+_hwrite(
+    HFILE hFile,
+    LPCSTR lpBuffer,
+    long lBytes
+    );
+
+__declspec(dllimport)
+HFILE
+__stdcall
+_lclose(
+    HFILE hFile
+    );
+
+__declspec(dllimport)
+LONG
+__stdcall
+_llseek(
+    HFILE hFile,
+    LONG lOffset,
+    int iOrigin
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsTextUnicode(
+    const LPVOID lpBuffer,
+    int cb,
+    LPINT lpi
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+TlsAlloc(
+    void
+    );
+
+
+
+__declspec(dllimport)
+LPVOID
+__stdcall
+TlsGetValue(
+    DWORD dwTlsIndex
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+TlsSetValue(
+    DWORD dwTlsIndex,
+    LPVOID lpTlsValue
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+TlsFree(
+    DWORD dwTlsIndex
+    );
+
+typedef
+void
+(__stdcall *LPOVERLAPPED_COMPLETION_ROUTINE)(
+    DWORD dwErrorCode,
+    DWORD dwNumberOfBytesTransfered,
+    LPOVERLAPPED lpOverlapped
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+SleepEx(
+    DWORD dwMilliseconds,
+    BOOL bAlertable
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+WaitForSingleObjectEx(
+    HANDLE hHandle,
+    DWORD dwMilliseconds,
+    BOOL bAlertable
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+WaitForMultipleObjectsEx(
+    DWORD nCount,
+    const HANDLE *lpHandles,
+    BOOL bWaitAll,
+    DWORD dwMilliseconds,
+    BOOL bAlertable
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ReadFileEx(
+    HANDLE hFile,
+    LPVOID lpBuffer,
+    DWORD nNumberOfBytesToRead,
+    LPOVERLAPPED lpOverlapped,
+    LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+WriteFileEx(
+    HANDLE hFile,
+    LPCVOID lpBuffer,
+    DWORD nNumberOfBytesToWrite,
+    LPOVERLAPPED lpOverlapped,
+    LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+BackupRead(
+    HANDLE hFile,
+    LPBYTE lpBuffer,
+    DWORD nNumberOfBytesToRead,
+    LPDWORD lpNumberOfBytesRead,
+    BOOL bAbort,
+    BOOL bProcessSecurity,
+    LPVOID *lpContext
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+BackupSeek(
+    HANDLE hFile,
+    DWORD  dwLowBytesToSeek,
+    DWORD  dwHighBytesToSeek,
+    LPDWORD lpdwLowByteSeeked,
+    LPDWORD lpdwHighByteSeeked,
+    LPVOID *lpContext
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+BackupWrite(
+    HANDLE hFile,
+    LPBYTE lpBuffer,
+    DWORD nNumberOfBytesToWrite,
+    LPDWORD lpNumberOfBytesWritten,
+    BOOL bAbort,
+    BOOL bProcessSecurity,
+    LPVOID *lpContext
+    );
+
+
+
+
+typedef struct _WIN32_STREAM_ID {
+        DWORD          dwStreamId ;
+        DWORD          dwStreamAttributes ;
+        LARGE_INTEGER  Size ;
+        DWORD          dwStreamNameSize ;
+        WCHAR          cStreamName[ 1 ] ;
+} WIN32_STREAM_ID, *LPWIN32_STREAM_ID ;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ReadFileScatter(
+    HANDLE hFile,
+    FILE_SEGMENT_ELEMENT aSegmentArray[],
+    DWORD nNumberOfBytesToRead,
+    LPDWORD lpReserved,
+    LPOVERLAPPED lpOverlapped
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+WriteFileGather(
+    HANDLE hFile,
+    FILE_SEGMENT_ELEMENT aSegmentArray[],
+    DWORD nNumberOfBytesToWrite,
+    LPDWORD lpReserved,
+    LPOVERLAPPED lpOverlapped
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _STARTUPINFOA {
+    DWORD   cb;
+    LPSTR   lpReserved;
+    LPSTR   lpDesktop;
+    LPSTR   lpTitle;
+    DWORD   dwX;
+    DWORD   dwY;
+    DWORD   dwXSize;
+    DWORD   dwYSize;
+    DWORD   dwXCountChars;
+    DWORD   dwYCountChars;
+    DWORD   dwFillAttribute;
+    DWORD   dwFlags;
+    WORD    wShowWindow;
+    WORD    cbReserved2;
+    LPBYTE  lpReserved2;
+    HANDLE  hStdInput;
+    HANDLE  hStdOutput;
+    HANDLE  hStdError;
+} STARTUPINFOA, *LPSTARTUPINFOA;
+typedef struct _STARTUPINFOW {
+    DWORD   cb;
+    LPWSTR  lpReserved;
+    LPWSTR  lpDesktop;
+    LPWSTR  lpTitle;
+    DWORD   dwX;
+    DWORD   dwY;
+    DWORD   dwXSize;
+    DWORD   dwYSize;
+    DWORD   dwXCountChars;
+    DWORD   dwYCountChars;
+    DWORD   dwFillAttribute;
+    DWORD   dwFlags;
+    WORD    wShowWindow;
+    WORD    cbReserved2;
+    LPBYTE  lpReserved2;
+    HANDLE  hStdInput;
+    HANDLE  hStdOutput;
+    HANDLE  hStdError;
+} STARTUPINFOW, *LPSTARTUPINFOW;
+
+
+
+
+typedef STARTUPINFOA STARTUPINFO;
+typedef LPSTARTUPINFOA LPSTARTUPINFO;
+
+
+
+
+typedef struct _WIN32_FIND_DATAA {
+    DWORD dwFileAttributes;
+    FILETIME ftCreationTime;
+    FILETIME ftLastAccessTime;
+    FILETIME ftLastWriteTime;
+    DWORD nFileSizeHigh;
+    DWORD nFileSizeLow;
+    DWORD dwReserved0;
+    DWORD dwReserved1;
+    CHAR   cFileName[ 260 ];
+    CHAR   cAlternateFileName[ 14 ];
+
+
+
+
+
+} WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA;
+typedef struct _WIN32_FIND_DATAW {
+    DWORD dwFileAttributes;
+    FILETIME ftCreationTime;
+    FILETIME ftLastAccessTime;
+    FILETIME ftLastWriteTime;
+    DWORD nFileSizeHigh;
+    DWORD nFileSizeLow;
+    DWORD dwReserved0;
+    DWORD dwReserved1;
+    WCHAR  cFileName[ 260 ];
+    WCHAR  cAlternateFileName[ 14 ];
+
+
+
+
+
+} WIN32_FIND_DATAW, *PWIN32_FIND_DATAW, *LPWIN32_FIND_DATAW;
+
+
+
+
+
+typedef WIN32_FIND_DATAA WIN32_FIND_DATA;
+typedef PWIN32_FIND_DATAA PWIN32_FIND_DATA;
+typedef LPWIN32_FIND_DATAA LPWIN32_FIND_DATA;
+
+
+typedef struct _WIN32_FILE_ATTRIBUTE_DATA {
+    DWORD dwFileAttributes;
+    FILETIME ftCreationTime;
+    FILETIME ftLastAccessTime;
+    FILETIME ftLastWriteTime;
+    DWORD nFileSizeHigh;
+    DWORD nFileSizeLow;
+} WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA;
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+CreateMutexA(
+    LPSECURITY_ATTRIBUTES lpMutexAttributes,
+    BOOL bInitialOwner,
+    LPCSTR lpName
+    );
+__declspec(dllimport)
+HANDLE
+__stdcall
+CreateMutexW(
+    LPSECURITY_ATTRIBUTES lpMutexAttributes,
+    BOOL bInitialOwner,
+    LPCWSTR lpName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+OpenMutexA(
+    DWORD dwDesiredAccess,
+    BOOL bInheritHandle,
+    LPCSTR lpName
+    );
+__declspec(dllimport)
+HANDLE
+__stdcall
+OpenMutexW(
+    DWORD dwDesiredAccess,
+    BOOL bInheritHandle,
+    LPCWSTR lpName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+CreateEventA(
+    LPSECURITY_ATTRIBUTES lpEventAttributes,
+    BOOL bManualReset,
+    BOOL bInitialState,
+    LPCSTR lpName
+    );
+__declspec(dllimport)
+HANDLE
+__stdcall
+CreateEventW(
+    LPSECURITY_ATTRIBUTES lpEventAttributes,
+    BOOL bManualReset,
+    BOOL bInitialState,
+    LPCWSTR lpName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+OpenEventA(
+    DWORD dwDesiredAccess,
+    BOOL bInheritHandle,
+    LPCSTR lpName
+    );
+__declspec(dllimport)
+HANDLE
+__stdcall
+OpenEventW(
+    DWORD dwDesiredAccess,
+    BOOL bInheritHandle,
+    LPCWSTR lpName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+CreateSemaphoreA(
+    LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
+    LONG lInitialCount,
+    LONG lMaximumCount,
+    LPCSTR lpName
+    );
+__declspec(dllimport)
+HANDLE
+__stdcall
+CreateSemaphoreW(
+    LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
+    LONG lInitialCount,
+    LONG lMaximumCount,
+    LPCWSTR lpName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+OpenSemaphoreA(
+    DWORD dwDesiredAccess,
+    BOOL bInheritHandle,
+    LPCSTR lpName
+    );
+__declspec(dllimport)
+HANDLE
+__stdcall
+OpenSemaphoreW(
+    DWORD dwDesiredAccess,
+    BOOL bInheritHandle,
+    LPCWSTR lpName
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+CreateFileMappingA(
+    HANDLE hFile,
+    LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
+    DWORD flProtect,
+    DWORD dwMaximumSizeHigh,
+    DWORD dwMaximumSizeLow,
+    LPCSTR lpName
+    );
+__declspec(dllimport)
+HANDLE
+__stdcall
+CreateFileMappingW(
+    HANDLE hFile,
+    LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
+    DWORD flProtect,
+    DWORD dwMaximumSizeHigh,
+    DWORD dwMaximumSizeLow,
+    LPCWSTR lpName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+OpenFileMappingA(
+    DWORD dwDesiredAccess,
+    BOOL bInheritHandle,
+    LPCSTR lpName
+    );
+__declspec(dllimport)
+HANDLE
+__stdcall
+OpenFileMappingW(
+    DWORD dwDesiredAccess,
+    BOOL bInheritHandle,
+    LPCWSTR lpName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetLogicalDriveStringsA(
+    DWORD nBufferLength,
+    LPSTR lpBuffer
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+GetLogicalDriveStringsW(
+    DWORD nBufferLength,
+    LPWSTR lpBuffer
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+HMODULE
+__stdcall
+LoadLibraryA(
+    LPCSTR lpLibFileName
+    );
+__declspec(dllimport)
+HMODULE
+__stdcall
+LoadLibraryW(
+    LPCWSTR lpLibFileName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+HMODULE
+__stdcall
+LoadLibraryExA(
+    LPCSTR lpLibFileName,
+    HANDLE hFile,
+    DWORD dwFlags
+    );
+__declspec(dllimport)
+HMODULE
+__stdcall
+LoadLibraryExW(
+    LPCWSTR lpLibFileName,
+    HANDLE hFile,
+    DWORD dwFlags
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetModuleFileNameA(
+    HMODULE hModule,
+    LPSTR lpFilename,
+    DWORD nSize
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+GetModuleFileNameW(
+    HMODULE hModule,
+    LPWSTR lpFilename,
+    DWORD nSize
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+HMODULE
+__stdcall
+GetModuleHandleA(
+    LPCSTR lpModuleName
+    );
+__declspec(dllimport)
+HMODULE
+__stdcall
+GetModuleHandleW(
+    LPCWSTR lpModuleName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CreateProcessA(
+    LPCSTR lpApplicationName,
+    LPSTR lpCommandLine,
+    LPSECURITY_ATTRIBUTES lpProcessAttributes,
+    LPSECURITY_ATTRIBUTES lpThreadAttributes,
+    BOOL bInheritHandles,
+    DWORD dwCreationFlags,
+    LPVOID lpEnvironment,
+    LPCSTR lpCurrentDirectory,
+    LPSTARTUPINFOA lpStartupInfo,
+    LPPROCESS_INFORMATION lpProcessInformation
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+CreateProcessW(
+    LPCWSTR lpApplicationName,
+    LPWSTR lpCommandLine,
+    LPSECURITY_ATTRIBUTES lpProcessAttributes,
+    LPSECURITY_ATTRIBUTES lpThreadAttributes,
+    BOOL bInheritHandles,
+    DWORD dwCreationFlags,
+    LPVOID lpEnvironment,
+    LPCWSTR lpCurrentDirectory,
+    LPSTARTUPINFOW lpStartupInfo,
+    LPPROCESS_INFORMATION lpProcessInformation
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetProcessShutdownParameters(
+    DWORD dwLevel,
+    DWORD dwFlags
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetProcessShutdownParameters(
+    LPDWORD lpdwLevel,
+    LPDWORD lpdwFlags
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetProcessVersion(
+    DWORD ProcessId
+    );
+
+__declspec(dllimport)
+void
+__stdcall
+FatalAppExitA(
+    UINT uAction,
+    LPCSTR lpMessageText
+    );
+__declspec(dllimport)
+void
+__stdcall
+FatalAppExitW(
+    UINT uAction,
+    LPCWSTR lpMessageText
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+void
+__stdcall
+GetStartupInfoA(
+    LPSTARTUPINFOA lpStartupInfo
+    );
+__declspec(dllimport)
+void
+__stdcall
+GetStartupInfoW(
+    LPSTARTUPINFOW lpStartupInfo
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LPSTR
+__stdcall
+GetCommandLineA(
+    void
+    );
+__declspec(dllimport)
+LPWSTR
+__stdcall
+GetCommandLineW(
+    void
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetEnvironmentVariableA(
+    LPCSTR lpName,
+    LPSTR lpBuffer,
+    DWORD nSize
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+GetEnvironmentVariableW(
+    LPCWSTR lpName,
+    LPWSTR lpBuffer,
+    DWORD nSize
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetEnvironmentVariableA(
+    LPCSTR lpName,
+    LPCSTR lpValue
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+SetEnvironmentVariableW(
+    LPCWSTR lpName,
+    LPCWSTR lpValue
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+ExpandEnvironmentStringsA(
+    LPCSTR lpSrc,
+    LPSTR lpDst,
+    DWORD nSize
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+ExpandEnvironmentStringsW(
+    LPCWSTR lpSrc,
+    LPWSTR lpDst,
+    DWORD nSize
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+void
+__stdcall
+OutputDebugStringA(
+    LPCSTR lpOutputString
+    );
+__declspec(dllimport)
+void
+__stdcall
+OutputDebugStringW(
+    LPCWSTR lpOutputString
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+HRSRC
+__stdcall
+FindResourceA(
+    HMODULE hModule,
+    LPCSTR lpName,
+    LPCSTR lpType
+    );
+__declspec(dllimport)
+HRSRC
+__stdcall
+FindResourceW(
+    HMODULE hModule,
+    LPCWSTR lpName,
+    LPCWSTR lpType
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+HRSRC
+__stdcall
+FindResourceExA(
+    HMODULE hModule,
+    LPCSTR lpType,
+    LPCSTR lpName,
+    WORD    wLanguage
+    );
+__declspec(dllimport)
+HRSRC
+__stdcall
+FindResourceExW(
+    HMODULE hModule,
+    LPCWSTR lpType,
+    LPCWSTR lpName,
+    WORD    wLanguage
+    );
+
+
+
+
+
+
+
+typedef BOOL (__stdcall* ENUMRESTYPEPROC)(HMODULE hModule, LPTSTR lpType,
+        LONG lParam);
+typedef BOOL (__stdcall* ENUMRESNAMEPROC)(HMODULE hModule, LPCTSTR lpType,
+        LPTSTR lpName, LONG lParam);
+typedef BOOL (__stdcall* ENUMRESLANGPROC)(HMODULE hModule, LPCTSTR lpType,
+        LPCTSTR lpName, WORD  wLanguage, LONG lParam);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumResourceTypesA(
+    HMODULE hModule,
+    ENUMRESTYPEPROC lpEnumFunc,
+    LONG lParam
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumResourceTypesW(
+    HMODULE hModule,
+    ENUMRESTYPEPROC lpEnumFunc,
+    LONG lParam
+    );
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumResourceNamesA(
+    HMODULE hModule,
+    LPCSTR lpType,
+    ENUMRESNAMEPROC lpEnumFunc,
+    LONG lParam
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumResourceNamesW(
+    HMODULE hModule,
+    LPCWSTR lpType,
+    ENUMRESNAMEPROC lpEnumFunc,
+    LONG lParam
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumResourceLanguagesA(
+    HMODULE hModule,
+    LPCSTR lpType,
+    LPCSTR lpName,
+    ENUMRESLANGPROC lpEnumFunc,
+    LONG lParam
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumResourceLanguagesW(
+    HMODULE hModule,
+    LPCWSTR lpType,
+    LPCWSTR lpName,
+    ENUMRESLANGPROC lpEnumFunc,
+    LONG lParam
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+BeginUpdateResourceA(
+    LPCSTR pFileName,
+    BOOL bDeleteExistingResources
+    );
+__declspec(dllimport)
+HANDLE
+__stdcall
+BeginUpdateResourceW(
+    LPCWSTR pFileName,
+    BOOL bDeleteExistingResources
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+UpdateResourceA(
+    HANDLE      hUpdate,
+    LPCSTR     lpType,
+    LPCSTR     lpName,
+    WORD        wLanguage,
+    LPVOID      lpData,
+    DWORD       cbData
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+UpdateResourceW(
+    HANDLE      hUpdate,
+    LPCWSTR     lpType,
+    LPCWSTR     lpName,
+    WORD        wLanguage,
+    LPVOID      lpData,
+    DWORD       cbData
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EndUpdateResourceA(
+    HANDLE      hUpdate,
+    BOOL        fDiscard
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+EndUpdateResourceW(
+    HANDLE      hUpdate,
+    BOOL        fDiscard
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+ATOM
+__stdcall
+GlobalAddAtomA(
+    LPCSTR lpString
+    );
+__declspec(dllimport)
+ATOM
+__stdcall
+GlobalAddAtomW(
+    LPCWSTR lpString
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+ATOM
+__stdcall
+GlobalFindAtomA(
+    LPCSTR lpString
+    );
+__declspec(dllimport)
+ATOM
+__stdcall
+GlobalFindAtomW(
+    LPCWSTR lpString
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+UINT
+__stdcall
+GlobalGetAtomNameA(
+    ATOM nAtom,
+    LPSTR lpBuffer,
+    int nSize
+    );
+__declspec(dllimport)
+UINT
+__stdcall
+GlobalGetAtomNameW(
+    ATOM nAtom,
+    LPWSTR lpBuffer,
+    int nSize
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+ATOM
+__stdcall
+AddAtomA(
+    LPCSTR lpString
+    );
+__declspec(dllimport)
+ATOM
+__stdcall
+AddAtomW(
+    LPCWSTR lpString
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+ATOM
+__stdcall
+FindAtomA(
+    LPCSTR lpString
+    );
+__declspec(dllimport)
+ATOM
+__stdcall
+FindAtomW(
+    LPCWSTR lpString
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+UINT
+__stdcall
+GetAtomNameA(
+    ATOM nAtom,
+    LPSTR lpBuffer,
+    int nSize
+    );
+__declspec(dllimport)
+UINT
+__stdcall
+GetAtomNameW(
+    ATOM nAtom,
+    LPWSTR lpBuffer,
+    int nSize
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+UINT
+__stdcall
+GetProfileIntA(
+    LPCSTR lpAppName,
+    LPCSTR lpKeyName,
+    INT nDefault
+    );
+__declspec(dllimport)
+UINT
+__stdcall
+GetProfileIntW(
+    LPCWSTR lpAppName,
+    LPCWSTR lpKeyName,
+    INT nDefault
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetProfileStringA(
+    LPCSTR lpAppName,
+    LPCSTR lpKeyName,
+    LPCSTR lpDefault,
+    LPSTR lpReturnedString,
+    DWORD nSize
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+GetProfileStringW(
+    LPCWSTR lpAppName,
+    LPCWSTR lpKeyName,
+    LPCWSTR lpDefault,
+    LPWSTR lpReturnedString,
+    DWORD nSize
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+WriteProfileStringA(
+    LPCSTR lpAppName,
+    LPCSTR lpKeyName,
+    LPCSTR lpString
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+WriteProfileStringW(
+    LPCWSTR lpAppName,
+    LPCWSTR lpKeyName,
+    LPCWSTR lpString
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetProfileSectionA(
+    LPCSTR lpAppName,
+    LPSTR lpReturnedString,
+    DWORD nSize
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+GetProfileSectionW(
+    LPCWSTR lpAppName,
+    LPWSTR lpReturnedString,
+    DWORD nSize
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+WriteProfileSectionA(
+    LPCSTR lpAppName,
+    LPCSTR lpString
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+WriteProfileSectionW(
+    LPCWSTR lpAppName,
+    LPCWSTR lpString
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+UINT
+__stdcall
+GetPrivateProfileIntA(
+    LPCSTR lpAppName,
+    LPCSTR lpKeyName,
+    INT nDefault,
+    LPCSTR lpFileName
+    );
+__declspec(dllimport)
+UINT
+__stdcall
+GetPrivateProfileIntW(
+    LPCWSTR lpAppName,
+    LPCWSTR lpKeyName,
+    INT nDefault,
+    LPCWSTR lpFileName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetPrivateProfileStringA(
+    LPCSTR lpAppName,
+    LPCSTR lpKeyName,
+    LPCSTR lpDefault,
+    LPSTR lpReturnedString,
+    DWORD nSize,
+    LPCSTR lpFileName
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+GetPrivateProfileStringW(
+    LPCWSTR lpAppName,
+    LPCWSTR lpKeyName,
+    LPCWSTR lpDefault,
+    LPWSTR lpReturnedString,
+    DWORD nSize,
+    LPCWSTR lpFileName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+WritePrivateProfileStringA(
+    LPCSTR lpAppName,
+    LPCSTR lpKeyName,
+    LPCSTR lpString,
+    LPCSTR lpFileName
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+WritePrivateProfileStringW(
+    LPCWSTR lpAppName,
+    LPCWSTR lpKeyName,
+    LPCWSTR lpString,
+    LPCWSTR lpFileName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetPrivateProfileSectionA(
+    LPCSTR lpAppName,
+    LPSTR lpReturnedString,
+    DWORD nSize,
+    LPCSTR lpFileName
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+GetPrivateProfileSectionW(
+    LPCWSTR lpAppName,
+    LPWSTR lpReturnedString,
+    DWORD nSize,
+    LPCWSTR lpFileName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+WritePrivateProfileSectionA(
+    LPCSTR lpAppName,
+    LPCSTR lpString,
+    LPCSTR lpFileName
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+WritePrivateProfileSectionW(
+    LPCWSTR lpAppName,
+    LPCWSTR lpString,
+    LPCWSTR lpFileName
+    );
+
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetPrivateProfileSectionNamesA(
+    LPSTR lpszReturnBuffer,
+    DWORD nSize,
+    LPCSTR lpFileName
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+GetPrivateProfileSectionNamesW(
+    LPWSTR lpszReturnBuffer,
+    DWORD nSize,
+    LPCWSTR lpFileName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetPrivateProfileStructA(
+    LPCSTR lpszSection,
+    LPCSTR lpszKey,
+    LPVOID   lpStruct,
+    UINT     uSizeStruct,
+    LPCSTR szFile
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+GetPrivateProfileStructW(
+    LPCWSTR lpszSection,
+    LPCWSTR lpszKey,
+    LPVOID   lpStruct,
+    UINT     uSizeStruct,
+    LPCWSTR szFile
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+WritePrivateProfileStructA(
+    LPCSTR lpszSection,
+    LPCSTR lpszKey,
+    LPVOID   lpStruct,
+    UINT     uSizeStruct,
+    LPCSTR szFile
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+WritePrivateProfileStructW(
+    LPCWSTR lpszSection,
+    LPCWSTR lpszKey,
+    LPVOID   lpStruct,
+    UINT     uSizeStruct,
+    LPCWSTR szFile
+    );
+
+
+
+
+
+
+
+__declspec(dllimport)
+UINT
+__stdcall
+GetDriveTypeA(
+    LPCSTR lpRootPathName
+    );
+__declspec(dllimport)
+UINT
+__stdcall
+GetDriveTypeW(
+    LPCWSTR lpRootPathName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+UINT
+__stdcall
+GetSystemDirectoryA(
+    LPSTR lpBuffer,
+    UINT uSize
+    );
+__declspec(dllimport)
+UINT
+__stdcall
+GetSystemDirectoryW(
+    LPWSTR lpBuffer,
+    UINT uSize
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetTempPathA(
+    DWORD nBufferLength,
+    LPSTR lpBuffer
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+GetTempPathW(
+    DWORD nBufferLength,
+    LPWSTR lpBuffer
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+UINT
+__stdcall
+GetTempFileNameA(
+    LPCSTR lpPathName,
+    LPCSTR lpPrefixString,
+    UINT uUnique,
+    LPSTR lpTempFileName
+    );
+__declspec(dllimport)
+UINT
+__stdcall
+GetTempFileNameW(
+    LPCWSTR lpPathName,
+    LPCWSTR lpPrefixString,
+    UINT uUnique,
+    LPWSTR lpTempFileName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+UINT
+__stdcall
+GetWindowsDirectoryA(
+    LPSTR lpBuffer,
+    UINT uSize
+    );
+__declspec(dllimport)
+UINT
+__stdcall
+GetWindowsDirectoryW(
+    LPWSTR lpBuffer,
+    UINT uSize
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetCurrentDirectoryA(
+    LPCSTR lpPathName
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+SetCurrentDirectoryW(
+    LPCWSTR lpPathName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetCurrentDirectoryA(
+    DWORD nBufferLength,
+    LPSTR lpBuffer
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+GetCurrentDirectoryW(
+    DWORD nBufferLength,
+    LPWSTR lpBuffer
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetDiskFreeSpaceA(
+    LPCSTR lpRootPathName,
+    LPDWORD lpSectorsPerCluster,
+    LPDWORD lpBytesPerSector,
+    LPDWORD lpNumberOfFreeClusters,
+    LPDWORD lpTotalNumberOfClusters
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+GetDiskFreeSpaceW(
+    LPCWSTR lpRootPathName,
+    LPDWORD lpSectorsPerCluster,
+    LPDWORD lpBytesPerSector,
+    LPDWORD lpNumberOfFreeClusters,
+    LPDWORD lpTotalNumberOfClusters
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetDiskFreeSpaceExA(
+    LPCSTR lpDirectoryName,
+    PULARGE_INTEGER lpFreeBytesAvailableToCaller,
+    PULARGE_INTEGER lpTotalNumberOfBytes,
+    PULARGE_INTEGER lpTotalNumberOfFreeBytes
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+GetDiskFreeSpaceExW(
+    LPCWSTR lpDirectoryName,
+    PULARGE_INTEGER lpFreeBytesAvailableToCaller,
+    PULARGE_INTEGER lpTotalNumberOfBytes,
+    PULARGE_INTEGER lpTotalNumberOfFreeBytes
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CreateDirectoryA(
+    LPCSTR lpPathName,
+    LPSECURITY_ATTRIBUTES lpSecurityAttributes
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+CreateDirectoryW(
+    LPCWSTR lpPathName,
+    LPSECURITY_ATTRIBUTES lpSecurityAttributes
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CreateDirectoryExA(
+    LPCSTR lpTemplateDirectory,
+    LPCSTR lpNewDirectory,
+    LPSECURITY_ATTRIBUTES lpSecurityAttributes
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+CreateDirectoryExW(
+    LPCWSTR lpTemplateDirectory,
+    LPCWSTR lpNewDirectory,
+    LPSECURITY_ATTRIBUTES lpSecurityAttributes
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+RemoveDirectoryA(
+    LPCSTR lpPathName
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+RemoveDirectoryW(
+    LPCWSTR lpPathName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetFullPathNameA(
+    LPCSTR lpFileName,
+    DWORD nBufferLength,
+    LPSTR lpBuffer,
+    LPSTR *lpFilePart
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+GetFullPathNameW(
+    LPCWSTR lpFileName,
+    DWORD nBufferLength,
+    LPWSTR lpBuffer,
+    LPWSTR *lpFilePart
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DefineDosDeviceA(
+    DWORD dwFlags,
+    LPCSTR lpDeviceName,
+    LPCSTR lpTargetPath
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+DefineDosDeviceW(
+    DWORD dwFlags,
+    LPCWSTR lpDeviceName,
+    LPCWSTR lpTargetPath
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+QueryDosDeviceA(
+    LPCSTR lpDeviceName,
+    LPSTR lpTargetPath,
+    DWORD ucchMax
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+QueryDosDeviceW(
+    LPCWSTR lpDeviceName,
+    LPWSTR lpTargetPath,
+    DWORD ucchMax
+    );
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+CreateFileA(
+    LPCSTR lpFileName,
+    DWORD dwDesiredAccess,
+    DWORD dwShareMode,
+    LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+    DWORD dwCreationDisposition,
+    DWORD dwFlagsAndAttributes,
+    HANDLE hTemplateFile
+    );
+__declspec(dllimport)
+HANDLE
+__stdcall
+CreateFileW(
+    LPCWSTR lpFileName,
+    DWORD dwDesiredAccess,
+    DWORD dwShareMode,
+    LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+    DWORD dwCreationDisposition,
+    DWORD dwFlagsAndAttributes,
+    HANDLE hTemplateFile
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetFileAttributesA(
+    LPCSTR lpFileName,
+    DWORD dwFileAttributes
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+SetFileAttributesW(
+    LPCWSTR lpFileName,
+    DWORD dwFileAttributes
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetFileAttributesA(
+    LPCSTR lpFileName
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+GetFileAttributesW(
+    LPCWSTR lpFileName
+    );
+
+
+
+
+
+
+typedef enum _GET_FILEEX_INFO_LEVELS {
+    GetFileExInfoStandard,
+    GetFileExMaxInfoLevel
+} GET_FILEEX_INFO_LEVELS;
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetFileAttributesExA(
+    LPCSTR lpFileName,
+    GET_FILEEX_INFO_LEVELS fInfoLevelId,
+    LPVOID lpFileInformation
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+GetFileAttributesExW(
+    LPCWSTR lpFileName,
+    GET_FILEEX_INFO_LEVELS fInfoLevelId,
+    LPVOID lpFileInformation
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetCompressedFileSizeA(
+    LPCSTR lpFileName,
+    LPDWORD lpFileSizeHigh
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+GetCompressedFileSizeW(
+    LPCWSTR lpFileName,
+    LPDWORD lpFileSizeHigh
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DeleteFileA(
+    LPCSTR lpFileName
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+DeleteFileW(
+    LPCWSTR lpFileName
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+FindFirstFileA(
+    LPCSTR lpFileName,
+    LPWIN32_FIND_DATAA lpFindFileData
+    );
+__declspec(dllimport)
+HANDLE
+__stdcall
+FindFirstFileW(
+    LPCWSTR lpFileName,
+    LPWIN32_FIND_DATAW lpFindFileData
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+FindNextFileA(
+    HANDLE hFindFile,
+    LPWIN32_FIND_DATAA lpFindFileData
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+FindNextFileW(
+    HANDLE hFindFile,
+    LPWIN32_FIND_DATAW lpFindFileData
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+SearchPathA(
+    LPCSTR lpPath,
+    LPCSTR lpFileName,
+    LPCSTR lpExtension,
+    DWORD nBufferLength,
+    LPSTR lpBuffer,
+    LPSTR *lpFilePart
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+SearchPathW(
+    LPCWSTR lpPath,
+    LPCWSTR lpFileName,
+    LPCWSTR lpExtension,
+    DWORD nBufferLength,
+    LPWSTR lpBuffer,
+    LPWSTR *lpFilePart
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CopyFileA(
+    LPCSTR lpExistingFileName,
+    LPCSTR lpNewFileName,
+    BOOL bFailIfExists
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+CopyFileW(
+    LPCWSTR lpExistingFileName,
+    LPCWSTR lpNewFileName,
+    BOOL bFailIfExists
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+MoveFileA(
+    LPCSTR lpExistingFileName,
+    LPCSTR lpNewFileName
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+MoveFileW(
+    LPCWSTR lpExistingFileName,
+    LPCWSTR lpNewFileName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+MoveFileExA(
+    LPCSTR lpExistingFileName,
+    LPCSTR lpNewFileName,
+    DWORD dwFlags
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+MoveFileExW(
+    LPCWSTR lpExistingFileName,
+    LPCWSTR lpNewFileName,
+    DWORD dwFlags
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+CreateNamedPipeA(
+    LPCSTR lpName,
+    DWORD dwOpenMode,
+    DWORD dwPipeMode,
+    DWORD nMaxInstances,
+    DWORD nOutBufferSize,
+    DWORD nInBufferSize,
+    DWORD nDefaultTimeOut,
+    LPSECURITY_ATTRIBUTES lpSecurityAttributes
+    );
+__declspec(dllimport)
+HANDLE
+__stdcall
+CreateNamedPipeW(
+    LPCWSTR lpName,
+    DWORD dwOpenMode,
+    DWORD dwPipeMode,
+    DWORD nMaxInstances,
+    DWORD nOutBufferSize,
+    DWORD nInBufferSize,
+    DWORD nDefaultTimeOut,
+    LPSECURITY_ATTRIBUTES lpSecurityAttributes
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetNamedPipeHandleStateA(
+    HANDLE hNamedPipe,
+    LPDWORD lpState,
+    LPDWORD lpCurInstances,
+    LPDWORD lpMaxCollectionCount,
+    LPDWORD lpCollectDataTimeout,
+    LPSTR lpUserName,
+    DWORD nMaxUserNameSize
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+GetNamedPipeHandleStateW(
+    HANDLE hNamedPipe,
+    LPDWORD lpState,
+    LPDWORD lpCurInstances,
+    LPDWORD lpMaxCollectionCount,
+    LPDWORD lpCollectDataTimeout,
+    LPWSTR lpUserName,
+    DWORD nMaxUserNameSize
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CallNamedPipeA(
+    LPCSTR lpNamedPipeName,
+    LPVOID lpInBuffer,
+    DWORD nInBufferSize,
+    LPVOID lpOutBuffer,
+    DWORD nOutBufferSize,
+    LPDWORD lpBytesRead,
+    DWORD nTimeOut
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+CallNamedPipeW(
+    LPCWSTR lpNamedPipeName,
+    LPVOID lpInBuffer,
+    DWORD nInBufferSize,
+    LPVOID lpOutBuffer,
+    DWORD nOutBufferSize,
+    LPDWORD lpBytesRead,
+    DWORD nTimeOut
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+WaitNamedPipeA(
+    LPCSTR lpNamedPipeName,
+    DWORD nTimeOut
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+WaitNamedPipeW(
+    LPCWSTR lpNamedPipeName,
+    DWORD nTimeOut
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetVolumeLabelA(
+    LPCSTR lpRootPathName,
+    LPCSTR lpVolumeName
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+SetVolumeLabelW(
+    LPCWSTR lpRootPathName,
+    LPCWSTR lpVolumeName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+void
+__stdcall
+SetFileApisToOEM( void );
+
+__declspec(dllimport)
+void
+__stdcall
+SetFileApisToANSI( void );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AreFileApisANSI( void );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetVolumeInformationA(
+    LPCSTR lpRootPathName,
+    LPSTR lpVolumeNameBuffer,
+    DWORD nVolumeNameSize,
+    LPDWORD lpVolumeSerialNumber,
+    LPDWORD lpMaximumComponentLength,
+    LPDWORD lpFileSystemFlags,
+    LPSTR lpFileSystemNameBuffer,
+    DWORD nFileSystemNameSize
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+GetVolumeInformationW(
+    LPCWSTR lpRootPathName,
+    LPWSTR lpVolumeNameBuffer,
+    DWORD nVolumeNameSize,
+    LPDWORD lpVolumeSerialNumber,
+    LPDWORD lpMaximumComponentLength,
+    LPDWORD lpFileSystemFlags,
+    LPWSTR lpFileSystemNameBuffer,
+    DWORD nFileSystemNameSize
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CancelIo(
+    HANDLE hFile
+    );
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ClearEventLogA (
+    HANDLE hEventLog,
+    LPCSTR lpBackupFileName
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+ClearEventLogW (
+    HANDLE hEventLog,
+    LPCWSTR lpBackupFileName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+BackupEventLogA (
+    HANDLE hEventLog,
+    LPCSTR lpBackupFileName
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+BackupEventLogW (
+    HANDLE hEventLog,
+    LPCWSTR lpBackupFileName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CloseEventLog (
+    HANDLE hEventLog
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DeregisterEventSource (
+    HANDLE hEventLog
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+NotifyChangeEventLog(
+    HANDLE  hEventLog,
+    HANDLE  hEvent
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetNumberOfEventLogRecords (
+    HANDLE hEventLog,
+    PDWORD NumberOfRecords
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetOldestEventLogRecord (
+    HANDLE hEventLog,
+    PDWORD OldestRecord
+    );
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+OpenEventLogA (
+    LPCSTR lpUNCServerName,
+    LPCSTR lpSourceName
+    );
+__declspec(dllimport)
+HANDLE
+__stdcall
+OpenEventLogW (
+    LPCWSTR lpUNCServerName,
+    LPCWSTR lpSourceName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+RegisterEventSourceA (
+    LPCSTR lpUNCServerName,
+    LPCSTR lpSourceName
+    );
+__declspec(dllimport)
+HANDLE
+__stdcall
+RegisterEventSourceW (
+    LPCWSTR lpUNCServerName,
+    LPCWSTR lpSourceName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+OpenBackupEventLogA (
+    LPCSTR lpUNCServerName,
+    LPCSTR lpFileName
+    );
+__declspec(dllimport)
+HANDLE
+__stdcall
+OpenBackupEventLogW (
+    LPCWSTR lpUNCServerName,
+    LPCWSTR lpFileName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ReadEventLogA (
+     HANDLE     hEventLog,
+     DWORD      dwReadFlags,
+     DWORD      dwRecordOffset,
+     LPVOID     lpBuffer,
+     DWORD      nNumberOfBytesToRead,
+     DWORD      *pnBytesRead,
+     DWORD      *pnMinNumberOfBytesNeeded
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+ReadEventLogW (
+     HANDLE     hEventLog,
+     DWORD      dwReadFlags,
+     DWORD      dwRecordOffset,
+     LPVOID     lpBuffer,
+     DWORD      nNumberOfBytesToRead,
+     DWORD      *pnBytesRead,
+     DWORD      *pnMinNumberOfBytesNeeded
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ReportEventA (
+     HANDLE     hEventLog,
+     WORD       wType,
+     WORD       wCategory,
+     DWORD      dwEventID,
+     PSID       lpUserSid,
+     WORD       wNumStrings,
+     DWORD      dwDataSize,
+     LPCSTR   *lpStrings,
+     LPVOID     lpRawData
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+ReportEventW (
+     HANDLE     hEventLog,
+     WORD       wType,
+     WORD       wCategory,
+     DWORD      dwEventID,
+     PSID       lpUserSid,
+     WORD       wNumStrings,
+     DWORD      dwDataSize,
+     LPCWSTR   *lpStrings,
+     LPVOID     lpRawData
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DuplicateToken(
+    HANDLE ExistingTokenHandle,
+    SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
+    PHANDLE DuplicateTokenHandle
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetKernelObjectSecurity (
+    HANDLE Handle,
+    SECURITY_INFORMATION RequestedInformation,
+    PSECURITY_DESCRIPTOR pSecurityDescriptor,
+    DWORD nLength,
+    LPDWORD lpnLengthNeeded
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ImpersonateNamedPipeClient(
+    HANDLE hNamedPipe
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ImpersonateSelf(
+    SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+RevertToSelf (
+    void
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetThreadToken (
+    PHANDLE Thread,
+    HANDLE Token
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AccessCheck (
+    PSECURITY_DESCRIPTOR pSecurityDescriptor,
+    HANDLE ClientToken,
+    DWORD DesiredAccess,
+    PGENERIC_MAPPING GenericMapping,
+    PPRIVILEGE_SET PrivilegeSet,
+    LPDWORD PrivilegeSetLength,
+    LPDWORD GrantedAccess,
+    LPBOOL AccessStatus
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+OpenProcessToken (
+    HANDLE ProcessHandle,
+    DWORD DesiredAccess,
+    PHANDLE TokenHandle
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+OpenThreadToken (
+    HANDLE ThreadHandle,
+    DWORD DesiredAccess,
+    BOOL OpenAsSelf,
+    PHANDLE TokenHandle
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetTokenInformation (
+    HANDLE TokenHandle,
+    TOKEN_INFORMATION_CLASS TokenInformationClass,
+    LPVOID TokenInformation,
+    DWORD TokenInformationLength,
+    PDWORD ReturnLength
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetTokenInformation (
+    HANDLE TokenHandle,
+    TOKEN_INFORMATION_CLASS TokenInformationClass,
+    LPVOID TokenInformation,
+    DWORD TokenInformationLength
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AdjustTokenPrivileges (
+    HANDLE TokenHandle,
+    BOOL DisableAllPrivileges,
+    PTOKEN_PRIVILEGES NewState,
+    DWORD BufferLength,
+    PTOKEN_PRIVILEGES PreviousState,
+    PDWORD ReturnLength
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AdjustTokenGroups (
+    HANDLE TokenHandle,
+    BOOL ResetToDefault,
+    PTOKEN_GROUPS NewState,
+    DWORD BufferLength,
+    PTOKEN_GROUPS PreviousState,
+    PDWORD ReturnLength
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+PrivilegeCheck (
+    HANDLE ClientToken,
+    PPRIVILEGE_SET RequiredPrivileges,
+    LPBOOL pfResult
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AccessCheckAndAuditAlarmA (
+    LPCSTR SubsystemName,
+    LPVOID HandleId,
+    LPSTR ObjectTypeName,
+    LPSTR ObjectName,
+    PSECURITY_DESCRIPTOR SecurityDescriptor,
+    DWORD DesiredAccess,
+    PGENERIC_MAPPING GenericMapping,
+    BOOL ObjectCreation,
+    LPDWORD GrantedAccess,
+    LPBOOL AccessStatus,
+    LPBOOL pfGenerateOnClose
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+AccessCheckAndAuditAlarmW (
+    LPCWSTR SubsystemName,
+    LPVOID HandleId,
+    LPWSTR ObjectTypeName,
+    LPWSTR ObjectName,
+    PSECURITY_DESCRIPTOR SecurityDescriptor,
+    DWORD DesiredAccess,
+    PGENERIC_MAPPING GenericMapping,
+    BOOL ObjectCreation,
+    LPDWORD GrantedAccess,
+    LPBOOL AccessStatus,
+    LPBOOL pfGenerateOnClose
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ObjectOpenAuditAlarmA (
+    LPCSTR SubsystemName,
+    LPVOID HandleId,
+    LPSTR ObjectTypeName,
+    LPSTR ObjectName,
+    PSECURITY_DESCRIPTOR pSecurityDescriptor,
+    HANDLE ClientToken,
+    DWORD DesiredAccess,
+    DWORD GrantedAccess,
+    PPRIVILEGE_SET Privileges,
+    BOOL ObjectCreation,
+    BOOL AccessGranted,
+    LPBOOL GenerateOnClose
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+ObjectOpenAuditAlarmW (
+    LPCWSTR SubsystemName,
+    LPVOID HandleId,
+    LPWSTR ObjectTypeName,
+    LPWSTR ObjectName,
+    PSECURITY_DESCRIPTOR pSecurityDescriptor,
+    HANDLE ClientToken,
+    DWORD DesiredAccess,
+    DWORD GrantedAccess,
+    PPRIVILEGE_SET Privileges,
+    BOOL ObjectCreation,
+    BOOL AccessGranted,
+    LPBOOL GenerateOnClose
+    );
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ObjectPrivilegeAuditAlarmA (
+    LPCSTR SubsystemName,
+    LPVOID HandleId,
+    HANDLE ClientToken,
+    DWORD DesiredAccess,
+    PPRIVILEGE_SET Privileges,
+    BOOL AccessGranted
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+ObjectPrivilegeAuditAlarmW (
+    LPCWSTR SubsystemName,
+    LPVOID HandleId,
+    HANDLE ClientToken,
+    DWORD DesiredAccess,
+    PPRIVILEGE_SET Privileges,
+    BOOL AccessGranted
+    );
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ObjectCloseAuditAlarmA (
+    LPCSTR SubsystemName,
+    LPVOID HandleId,
+    BOOL GenerateOnClose
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+ObjectCloseAuditAlarmW (
+    LPCWSTR SubsystemName,
+    LPVOID HandleId,
+    BOOL GenerateOnClose
+    );
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ObjectDeleteAuditAlarmA (
+    LPCSTR SubsystemName,
+    LPVOID HandleId,
+    BOOL GenerateOnClose
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+ObjectDeleteAuditAlarmW (
+    LPCWSTR SubsystemName,
+    LPVOID HandleId,
+    BOOL GenerateOnClose
+    );
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+PrivilegedServiceAuditAlarmA (
+    LPCSTR SubsystemName,
+    LPCSTR ServiceName,
+    HANDLE ClientToken,
+    PPRIVILEGE_SET Privileges,
+    BOOL AccessGranted
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+PrivilegedServiceAuditAlarmW (
+    LPCWSTR SubsystemName,
+    LPCWSTR ServiceName,
+    HANDLE ClientToken,
+    PPRIVILEGE_SET Privileges,
+    BOOL AccessGranted
+    );
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsValidSid (
+    PSID pSid
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EqualSid (
+    PSID pSid1,
+    PSID pSid2
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EqualPrefixSid (
+    PSID pSid1,
+    PSID pSid2
+    );
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetSidLengthRequired (
+    UCHAR nSubAuthorityCount
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AllocateAndInitializeSid (
+    PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
+    BYTE nSubAuthorityCount,
+    DWORD nSubAuthority0,
+    DWORD nSubAuthority1,
+    DWORD nSubAuthority2,
+    DWORD nSubAuthority3,
+    DWORD nSubAuthority4,
+    DWORD nSubAuthority5,
+    DWORD nSubAuthority6,
+    DWORD nSubAuthority7,
+    PSID *pSid
+    );
+
+__declspec(dllimport)
+PVOID
+__stdcall
+FreeSid(
+    PSID pSid
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+InitializeSid (
+    PSID Sid,
+    PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
+    BYTE nSubAuthorityCount
+    );
+
+
+__declspec(dllimport)
+PSID_IDENTIFIER_AUTHORITY
+__stdcall
+GetSidIdentifierAuthority (
+    PSID pSid
+    );
+
+
+__declspec(dllimport)
+PDWORD
+__stdcall
+GetSidSubAuthority (
+    PSID pSid,
+    DWORD nSubAuthority
+    );
+
+
+__declspec(dllimport)
+PUCHAR
+__stdcall
+GetSidSubAuthorityCount (
+    PSID pSid
+    );
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetLengthSid (
+    PSID pSid
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CopySid (
+    DWORD nDestinationSidLength,
+    PSID pDestinationSid,
+    PSID pSourceSid
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AreAllAccessesGranted (
+    DWORD GrantedAccess,
+    DWORD DesiredAccess
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AreAnyAccessesGranted (
+    DWORD GrantedAccess,
+    DWORD DesiredAccess
+    );
+
+
+__declspec(dllimport)
+void
+__stdcall
+MapGenericMask (
+    PDWORD AccessMask,
+    PGENERIC_MAPPING GenericMapping
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsValidAcl (
+    PACL pAcl
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+InitializeAcl (
+    PACL pAcl,
+    DWORD nAclLength,
+    DWORD dwAclRevision
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetAclInformation (
+    PACL pAcl,
+    LPVOID pAclInformation,
+    DWORD nAclInformationLength,
+    ACL_INFORMATION_CLASS dwAclInformationClass
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetAclInformation (
+    PACL pAcl,
+    LPVOID pAclInformation,
+    DWORD nAclInformationLength,
+    ACL_INFORMATION_CLASS dwAclInformationClass
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AddAce (
+    PACL pAcl,
+    DWORD dwAceRevision,
+    DWORD dwStartingAceIndex,
+    LPVOID pAceList,
+    DWORD nAceListLength
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DeleteAce (
+    PACL pAcl,
+    DWORD dwAceIndex
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetAce (
+    PACL pAcl,
+    DWORD dwAceIndex,
+    LPVOID *pAce
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AddAccessAllowedAce (
+    PACL pAcl,
+    DWORD dwAceRevision,
+    DWORD AccessMask,
+    PSID pSid
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AddAccessDeniedAce (
+    PACL pAcl,
+    DWORD dwAceRevision,
+    DWORD AccessMask,
+    PSID pSid
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AddAuditAccessAce(
+    PACL pAcl,
+    DWORD dwAceRevision,
+    DWORD dwAccessMask,
+    PSID pSid,
+    BOOL bAuditSuccess,
+    BOOL bAuditFailure
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+FindFirstFreeAce (
+    PACL pAcl,
+    LPVOID *pAce
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+InitializeSecurityDescriptor (
+    PSECURITY_DESCRIPTOR pSecurityDescriptor,
+    DWORD dwRevision
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsValidSecurityDescriptor (
+    PSECURITY_DESCRIPTOR pSecurityDescriptor
+    );
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetSecurityDescriptorLength (
+    PSECURITY_DESCRIPTOR pSecurityDescriptor
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetSecurityDescriptorControl (
+    PSECURITY_DESCRIPTOR pSecurityDescriptor,
+    PSECURITY_DESCRIPTOR_CONTROL pControl,
+    LPDWORD lpdwRevision
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetSecurityDescriptorDacl (
+    PSECURITY_DESCRIPTOR pSecurityDescriptor,
+    BOOL bDaclPresent,
+    PACL pDacl,
+    BOOL bDaclDefaulted
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetSecurityDescriptorDacl (
+    PSECURITY_DESCRIPTOR pSecurityDescriptor,
+    LPBOOL lpbDaclPresent,
+    PACL *pDacl,
+    LPBOOL lpbDaclDefaulted
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetSecurityDescriptorSacl (
+    PSECURITY_DESCRIPTOR pSecurityDescriptor,
+    BOOL bSaclPresent,
+    PACL pSacl,
+    BOOL bSaclDefaulted
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetSecurityDescriptorSacl (
+    PSECURITY_DESCRIPTOR pSecurityDescriptor,
+    LPBOOL lpbSaclPresent,
+    PACL *pSacl,
+    LPBOOL lpbSaclDefaulted
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetSecurityDescriptorOwner (
+    PSECURITY_DESCRIPTOR pSecurityDescriptor,
+    PSID pOwner,
+    BOOL bOwnerDefaulted
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetSecurityDescriptorOwner (
+    PSECURITY_DESCRIPTOR pSecurityDescriptor,
+    PSID *pOwner,
+    LPBOOL lpbOwnerDefaulted
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetSecurityDescriptorGroup (
+    PSECURITY_DESCRIPTOR pSecurityDescriptor,
+    PSID pGroup,
+    BOOL bGroupDefaulted
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetSecurityDescriptorGroup (
+    PSECURITY_DESCRIPTOR pSecurityDescriptor,
+    PSID *pGroup,
+    LPBOOL lpbGroupDefaulted
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CreatePrivateObjectSecurity (
+    PSECURITY_DESCRIPTOR ParentDescriptor,
+    PSECURITY_DESCRIPTOR CreatorDescriptor,
+    PSECURITY_DESCRIPTOR * NewDescriptor,
+    BOOL IsDirectoryObject,
+    HANDLE Token,
+    PGENERIC_MAPPING GenericMapping
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetPrivateObjectSecurity (
+    SECURITY_INFORMATION SecurityInformation,
+    PSECURITY_DESCRIPTOR ModificationDescriptor,
+    PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
+    PGENERIC_MAPPING GenericMapping,
+    HANDLE Token
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetPrivateObjectSecurity (
+    PSECURITY_DESCRIPTOR ObjectDescriptor,
+    SECURITY_INFORMATION SecurityInformation,
+    PSECURITY_DESCRIPTOR ResultantDescriptor,
+    DWORD DescriptorLength,
+    PDWORD ReturnLength
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DestroyPrivateObjectSecurity (
+    PSECURITY_DESCRIPTOR * ObjectDescriptor
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+MakeSelfRelativeSD (
+    PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
+    PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
+    LPDWORD lpdwBufferLength
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+MakeAbsoluteSD (
+    PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
+    PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
+    LPDWORD lpdwAbsoluteSecurityDescriptorSize,
+    PACL pDacl,
+    LPDWORD lpdwDaclSize,
+    PACL pSacl,
+    LPDWORD lpdwSaclSize,
+    PSID pOwner,
+    LPDWORD lpdwOwnerSize,
+    PSID pPrimaryGroup,
+    LPDWORD lpdwPrimaryGroupSize
+    );
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetFileSecurityA (
+    LPCSTR lpFileName,
+    SECURITY_INFORMATION SecurityInformation,
+    PSECURITY_DESCRIPTOR pSecurityDescriptor
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+SetFileSecurityW (
+    LPCWSTR lpFileName,
+    SECURITY_INFORMATION SecurityInformation,
+    PSECURITY_DESCRIPTOR pSecurityDescriptor
+    );
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetFileSecurityA (
+    LPCSTR lpFileName,
+    SECURITY_INFORMATION RequestedInformation,
+    PSECURITY_DESCRIPTOR pSecurityDescriptor,
+    DWORD nLength,
+    LPDWORD lpnLengthNeeded
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+GetFileSecurityW (
+    LPCWSTR lpFileName,
+    SECURITY_INFORMATION RequestedInformation,
+    PSECURITY_DESCRIPTOR pSecurityDescriptor,
+    DWORD nLength,
+    LPDWORD lpnLengthNeeded
+    );
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetKernelObjectSecurity (
+    HANDLE Handle,
+    SECURITY_INFORMATION SecurityInformation,
+    PSECURITY_DESCRIPTOR SecurityDescriptor
+    );
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+FindFirstChangeNotificationA(
+    LPCSTR lpPathName,
+    BOOL bWatchSubtree,
+    DWORD dwNotifyFilter
+    );
+__declspec(dllimport)
+HANDLE
+__stdcall
+FindFirstChangeNotificationW(
+    LPCWSTR lpPathName,
+    BOOL bWatchSubtree,
+    DWORD dwNotifyFilter
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+FindNextChangeNotification(
+    HANDLE hChangeHandle
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+FindCloseChangeNotification(
+    HANDLE hChangeHandle
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+VirtualLock(
+    LPVOID lpAddress,
+    DWORD dwSize
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+VirtualUnlock(
+    LPVOID lpAddress,
+    DWORD dwSize
+    );
+
+__declspec(dllimport)
+LPVOID
+__stdcall
+MapViewOfFileEx(
+    HANDLE hFileMappingObject,
+    DWORD dwDesiredAccess,
+    DWORD dwFileOffsetHigh,
+    DWORD dwFileOffsetLow,
+    DWORD dwNumberOfBytesToMap,
+    LPVOID lpBaseAddress
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetPriorityClass(
+    HANDLE hProcess,
+    DWORD dwPriorityClass
+    );
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetPriorityClass(
+    HANDLE hProcess
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsBadReadPtr(
+    const void *lp,
+    UINT ucb
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsBadWritePtr(
+    LPVOID lp,
+    UINT ucb
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsBadHugeReadPtr(
+    const void *lp,
+    UINT ucb
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsBadHugeWritePtr(
+    LPVOID lp,
+    UINT ucb
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsBadCodePtr(
+    FARPROC lpfn
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsBadStringPtrA(
+    LPCSTR lpsz,
+    UINT ucchMax
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+IsBadStringPtrW(
+    LPCWSTR lpsz,
+    UINT ucchMax
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+LookupAccountSidA(
+    LPCSTR lpSystemName,
+    PSID Sid,
+    LPSTR Name,
+    LPDWORD cbName,
+    LPSTR ReferencedDomainName,
+    LPDWORD cbReferencedDomainName,
+    PSID_NAME_USE peUse
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+LookupAccountSidW(
+    LPCWSTR lpSystemName,
+    PSID Sid,
+    LPWSTR Name,
+    LPDWORD cbName,
+    LPWSTR ReferencedDomainName,
+    LPDWORD cbReferencedDomainName,
+    PSID_NAME_USE peUse
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+LookupAccountNameA(
+    LPCSTR lpSystemName,
+    LPCSTR lpAccountName,
+    PSID Sid,
+    LPDWORD cbSid,
+    LPSTR ReferencedDomainName,
+    LPDWORD cbReferencedDomainName,
+    PSID_NAME_USE peUse
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+LookupAccountNameW(
+    LPCWSTR lpSystemName,
+    LPCWSTR lpAccountName,
+    PSID Sid,
+    LPDWORD cbSid,
+    LPWSTR ReferencedDomainName,
+    LPDWORD cbReferencedDomainName,
+    PSID_NAME_USE peUse
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+LookupPrivilegeValueA(
+    LPCSTR lpSystemName,
+    LPCSTR lpName,
+    PLUID   lpLuid
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+LookupPrivilegeValueW(
+    LPCWSTR lpSystemName,
+    LPCWSTR lpName,
+    PLUID   lpLuid
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+LookupPrivilegeNameA(
+    LPCSTR lpSystemName,
+    PLUID   lpLuid,
+    LPSTR lpName,
+    LPDWORD cbName
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+LookupPrivilegeNameW(
+    LPCWSTR lpSystemName,
+    PLUID   lpLuid,
+    LPWSTR lpName,
+    LPDWORD cbName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+LookupPrivilegeDisplayNameA(
+    LPCSTR lpSystemName,
+    LPCSTR lpName,
+    LPSTR lpDisplayName,
+    LPDWORD cbDisplayName,
+    LPDWORD lpLanguageId
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+LookupPrivilegeDisplayNameW(
+    LPCWSTR lpSystemName,
+    LPCWSTR lpName,
+    LPWSTR lpDisplayName,
+    LPDWORD cbDisplayName,
+    LPDWORD lpLanguageId
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AllocateLocallyUniqueId(
+    PLUID Luid
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+BuildCommDCBA(
+    LPCSTR lpDef,
+    LPDCB lpDCB
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+BuildCommDCBW(
+    LPCWSTR lpDef,
+    LPDCB lpDCB
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+BuildCommDCBAndTimeoutsA(
+    LPCSTR lpDef,
+    LPDCB lpDCB,
+    LPCOMMTIMEOUTS lpCommTimeouts
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+BuildCommDCBAndTimeoutsW(
+    LPCWSTR lpDef,
+    LPDCB lpDCB,
+    LPCOMMTIMEOUTS lpCommTimeouts
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CommConfigDialogA(
+    LPCSTR lpszName,
+    HWND hWnd,
+    LPCOMMCONFIG lpCC
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+CommConfigDialogW(
+    LPCWSTR lpszName,
+    HWND hWnd,
+    LPCOMMCONFIG lpCC
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetDefaultCommConfigA(
+    LPCSTR lpszName,
+    LPCOMMCONFIG lpCC,
+    LPDWORD lpdwSize
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+GetDefaultCommConfigW(
+    LPCWSTR lpszName,
+    LPCOMMCONFIG lpCC,
+    LPDWORD lpdwSize
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetDefaultCommConfigA(
+    LPCSTR lpszName,
+    LPCOMMCONFIG lpCC,
+    DWORD dwSize
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+SetDefaultCommConfigW(
+    LPCWSTR lpszName,
+    LPCOMMCONFIG lpCC,
+    DWORD dwSize
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetComputerNameA (
+    LPSTR lpBuffer,
+    LPDWORD nSize
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+GetComputerNameW (
+    LPWSTR lpBuffer,
+    LPDWORD nSize
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetComputerNameA (
+    LPCSTR lpComputerName
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+SetComputerNameW (
+    LPCWSTR lpComputerName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetUserNameA (
+    LPSTR lpBuffer,
+    LPDWORD nSize
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+GetUserNameW (
+    LPWSTR lpBuffer,
+    LPDWORD nSize
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+LogonUserA (
+    LPSTR lpszUsername,
+    LPSTR lpszDomain,
+    LPSTR lpszPassword,
+    DWORD dwLogonType,
+    DWORD dwLogonProvider,
+    PHANDLE phToken
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+LogonUserW (
+    LPWSTR lpszUsername,
+    LPWSTR lpszDomain,
+    LPWSTR lpszPassword,
+    DWORD dwLogonType,
+    DWORD dwLogonProvider,
+    PHANDLE phToken
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ImpersonateLoggedOnUser(
+    HANDLE  hToken
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CreateProcessAsUserA (
+    HANDLE hToken,
+    LPCSTR lpApplicationName,
+    LPSTR lpCommandLine,
+    LPSECURITY_ATTRIBUTES lpProcessAttributes,
+    LPSECURITY_ATTRIBUTES lpThreadAttributes,
+    BOOL bInheritHandles,
+    DWORD dwCreationFlags,
+    LPVOID lpEnvironment,
+    LPCSTR lpCurrentDirectory,
+    LPSTARTUPINFOA lpStartupInfo,
+    LPPROCESS_INFORMATION lpProcessInformation
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+CreateProcessAsUserW (
+    HANDLE hToken,
+    LPCWSTR lpApplicationName,
+    LPWSTR lpCommandLine,
+    LPSECURITY_ATTRIBUTES lpProcessAttributes,
+    LPSECURITY_ATTRIBUTES lpThreadAttributes,
+    BOOL bInheritHandles,
+    DWORD dwCreationFlags,
+    LPVOID lpEnvironment,
+    LPCWSTR lpCurrentDirectory,
+    LPSTARTUPINFOW lpStartupInfo,
+    LPPROCESS_INFORMATION lpProcessInformation
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DuplicateTokenEx(
+    HANDLE hExistingToken,
+    DWORD dwDesiredAccess,
+    LPSECURITY_ATTRIBUTES lpTokenAttributes,
+    SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
+    TOKEN_TYPE TokenType,
+    PHANDLE phNewToken);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CreateRestrictedToken(
+     HANDLE ExistingTokenHandle,
+     DWORD Flags,
+     DWORD DisableSidCount,
+     PSID_AND_ATTRIBUTES SidsToDisable ,
+     DWORD DeletePrivilegeCount,
+     PLUID_AND_ATTRIBUTES PrivilegesToDelete ,
+     DWORD RestrictedSidCount,
+     PSID_AND_ATTRIBUTES SidsToRestrict ,
+     PHANDLE NewTokenHandle
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsTokenRestricted(
+     HANDLE TokenHandle
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+QueryPerformanceCounter(
+    LARGE_INTEGER *lpPerformanceCount
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+QueryPerformanceFrequency(
+    LARGE_INTEGER *lpFrequency
+    );
+
+typedef struct _OSVERSIONINFOA {
+    DWORD dwOSVersionInfoSize;
+    DWORD dwMajorVersion;
+    DWORD dwMinorVersion;
+    DWORD dwBuildNumber;
+    DWORD dwPlatformId;
+    CHAR   szCSDVersion[ 128 ];     
+} OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA;
+typedef struct _OSVERSIONINFOW {
+    DWORD dwOSVersionInfoSize;
+    DWORD dwMajorVersion;
+    DWORD dwMinorVersion;
+    DWORD dwBuildNumber;
+    DWORD dwPlatformId;
+    WCHAR  szCSDVersion[ 128 ];     
+} OSVERSIONINFOW, *POSVERSIONINFOW, *LPOSVERSIONINFOW;
+
+
+
+
+
+typedef OSVERSIONINFOA OSVERSIONINFO;
+typedef POSVERSIONINFOA POSVERSIONINFO;
+typedef LPOSVERSIONINFOA LPOSVERSIONINFO;
+
+
+typedef struct _OSVERSIONINFOEXA {
+    DWORD dwOSVersionInfoSize;
+    DWORD dwMajorVersion;
+    DWORD dwMinorVersion;
+    DWORD dwBuildNumber;
+    DWORD dwPlatformId;
+    CHAR   szCSDVersion[ 128 ];     
+    WORD wServicePackMajor;
+    WORD wServicePackMinor;
+    WORD wReserved[2];
+} OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA;
+typedef struct _OSVERSIONINFOEXW {
+    DWORD dwOSVersionInfoSize;
+    DWORD dwMajorVersion;
+    DWORD dwMinorVersion;
+    DWORD dwBuildNumber;
+    DWORD dwPlatformId;
+    WCHAR  szCSDVersion[ 128 ];     
+    WORD wServicePackMajor;
+    WORD wServicePackMinor;
+    WORD wReserved[2];
+} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW;
+
+
+
+
+
+typedef OSVERSIONINFOEXA OSVERSIONINFOEX;
+typedef POSVERSIONINFOEXA POSVERSIONINFOEX;
+typedef LPOSVERSIONINFOEXA LPOSVERSIONINFOEX;
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetVersionExA(
+    LPOSVERSIONINFOA lpVersionInformation
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+GetVersionExW(
+    LPOSVERSIONINFOW lpVersionInformation
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _SYSTEM_POWER_STATUS {
+    BYTE ACLineStatus;
+    BYTE BatteryFlag;
+    BYTE BatteryLifePercent;
+    BYTE Reserved1;
+    DWORD BatteryLifeTime;
+    DWORD BatteryFullLifeTime;
+}   SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS;
+
+BOOL
+__stdcall
+GetSystemPowerStatus(
+    LPSYSTEM_POWER_STATUS lpSystemPowerStatus
+    );
+
+BOOL
+__stdcall
+SetSystemPowerState(
+    BOOL fSuspend,
+    BOOL fForce
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _WIN_CERTIFICATE {
+    DWORD       dwLength;
+    WORD        wRevision;
+    WORD        wCertificateType;   
+    BYTE        bCertificate[1];
+} WIN_CERTIFICATE, *LPWIN_CERTIFICATE;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+BOOL
+__stdcall
+WinSubmitCertificate(
+    LPWIN_CERTIFICATE lpCertificate
+    );
+
+
+
+
+
+
+
+
+
+LONG
+__stdcall
+WinVerifyTrust(
+    HWND    hwnd,
+    GUID *  ActionID,
+    LPVOID  ActionData
+    );
+
+
+BOOL
+__stdcall
+WinLoadTrustProvider(
+    GUID * ActionID
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+typedef LPVOID WIN_TRUST_SUBJECT;
+
+
+
+
+
+typedef struct _WIN_TRUST_ACTDATA_CONTEXT_WITH_SUBJECT {
+
+    HANDLE            hClientToken;
+    GUID *            SubjectType;
+    WIN_TRUST_SUBJECT Subject;
+
+} WIN_TRUST_ACTDATA_CONTEXT_WITH_SUBJECT, *LPWIN_TRUST_ACTDATA_CONTEXT_WITH_SUBJECT ;
+
+
+typedef struct _WIN_TRUST_ACTDATA_SUBJECT_ONLY {
+
+    GUID *            SubjectType;
+    WIN_TRUST_SUBJECT Subject;
+
+} WIN_TRUST_ACTDATA_SUBJECT_ONLY, *LPWIN_TRUST_ACTDATA_SUBJECT_ONLY;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _WIN_TRUST_SUBJECT_FILE {
+
+    HANDLE  hFile;
+    LPCWSTR lpPath;
+
+} WIN_TRUST_SUBJECT_FILE, *LPWIN_TRUST_SUBJECT_FILE;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _WIN_TRUST_SUBJECT_FILE_AND_DISPLAY {
+
+    HANDLE  hFile;              
+    LPCWSTR lpPath;             
+    LPCWSTR lpDisplayName;      
+                                
+
+} WIN_TRUST_SUBJECT_FILE_AND_DISPLAY, *LPWIN_TRUST_SUBJECT_FILE_AND_DISPLAY;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _WIN_SPUB_TRUSTED_PUBLISHER_DATA {
+
+    HANDLE            hClientToken;
+    LPWIN_CERTIFICATE lpCertificate;
+
+} WIN_SPUB_TRUSTED_PUBLISHER_DATA, *LPWIN_SPUB_TRUSTED_PUBLISHER_DATA;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _DRAWPATRECT {
+        POINT ptPosition;
+        POINT ptSize;
+        WORD wStyle;
+        WORD wPattern;
+} DRAWPATRECT, *PDRAWPATRECT;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _PSINJECTDATA {
+
+    DWORD   DataBytes;          
+    DWORD   InjectionPoint;     
+    DWORD   Flags;              
+    DWORD   Reserved;           
+
+    
+
+} PSINJECTDATA, *PPSINJECTDATA;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct  tagXFORM
+  {
+    FLOAT   eM11;
+    FLOAT   eM12;
+    FLOAT   eM21;
+    FLOAT   eM22;
+    FLOAT   eDx;
+    FLOAT   eDy;
+  } XFORM, *PXFORM,  *LPXFORM;
+
+
+typedef struct tagBITMAP
+  {
+    LONG        bmType;
+    LONG        bmWidth;
+    LONG        bmHeight;
+    LONG        bmWidthBytes;
+    WORD        bmPlanes;
+    WORD        bmBitsPixel;
+    LPVOID      bmBits;
+  } BITMAP, *PBITMAP,  *NPBITMAP,  *LPBITMAP;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(push)
+
+#pragma pack(1)
+
+
+
+
+
+typedef struct tagRGBTRIPLE {
+        BYTE    rgbtBlue;
+        BYTE    rgbtGreen;
+        BYTE    rgbtRed;
+} RGBTRIPLE;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+typedef struct tagRGBQUAD {
+        BYTE    rgbBlue;
+        BYTE    rgbGreen;
+        BYTE    rgbRed;
+        BYTE    rgbReserved;
+} RGBQUAD;
+typedef RGBQUAD * LPRGBQUAD;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef LONG   LCSCSTYPE;
+
+
+
+
+typedef LONG    LCSGAMUTMATCH;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef long            FXPT16DOT16,  *LPFXPT16DOT16;
+typedef long            FXPT2DOT30,  *LPFXPT2DOT30;
+
+
+
+
+typedef struct tagCIEXYZ
+{
+        FXPT2DOT30 ciexyzX;
+        FXPT2DOT30 ciexyzY;
+        FXPT2DOT30 ciexyzZ;
+} CIEXYZ;
+typedef CIEXYZ   *LPCIEXYZ;
+
+typedef struct tagICEXYZTRIPLE
+{
+        CIEXYZ  ciexyzRed;
+        CIEXYZ  ciexyzGreen;
+        CIEXYZ  ciexyzBlue;
+} CIEXYZTRIPLE;
+typedef CIEXYZTRIPLE     *LPCIEXYZTRIPLE;
+
+
+
+
+
+
+typedef struct tagLOGCOLORSPACEA {
+    DWORD lcsSignature;
+    DWORD lcsVersion;
+    DWORD lcsSize;
+    LCSCSTYPE lcsCSType;
+    LCSGAMUTMATCH lcsIntent;
+    CIEXYZTRIPLE lcsEndpoints;
+    DWORD lcsGammaRed;
+    DWORD lcsGammaGreen;
+    DWORD lcsGammaBlue;
+    CHAR   lcsFilename[260];
+} LOGCOLORSPACEA, *LPLOGCOLORSPACEA;
+typedef struct tagLOGCOLORSPACEW {
+    DWORD lcsSignature;
+    DWORD lcsVersion;
+    DWORD lcsSize;
+    LCSCSTYPE lcsCSType;
+    LCSGAMUTMATCH lcsIntent;
+    CIEXYZTRIPLE lcsEndpoints;
+    DWORD lcsGammaRed;
+    DWORD lcsGammaGreen;
+    DWORD lcsGammaBlue;
+    WCHAR  lcsFilename[260];
+} LOGCOLORSPACEW, *LPLOGCOLORSPACEW;
+
+
+
+
+typedef LOGCOLORSPACEA LOGCOLORSPACE;
+typedef LPLOGCOLORSPACEA LPLOGCOLORSPACE;
+
+
+
+
+
+typedef struct tagBITMAPCOREHEADER {
+        DWORD   bcSize;                 
+        WORD    bcWidth;
+        WORD    bcHeight;
+        WORD    bcPlanes;
+        WORD    bcBitCount;
+} BITMAPCOREHEADER,  *LPBITMAPCOREHEADER, *PBITMAPCOREHEADER;
+
+typedef struct tagBITMAPINFOHEADER{
+        DWORD      biSize;
+        LONG       biWidth;
+        LONG       biHeight;
+        WORD       biPlanes;
+        WORD       biBitCount;
+        DWORD      biCompression;
+        DWORD      biSizeImage;
+        LONG       biXPelsPerMeter;
+        LONG       biYPelsPerMeter;
+        DWORD      biClrUsed;
+        DWORD      biClrImportant;
+} BITMAPINFOHEADER,  *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER;
+
+
+typedef struct {
+        DWORD        bV4Size;
+        LONG         bV4Width;
+        LONG         bV4Height;
+        WORD         bV4Planes;
+        WORD         bV4BitCount;
+        DWORD        bV4V4Compression;
+        DWORD        bV4SizeImage;
+        LONG         bV4XPelsPerMeter;
+        LONG         bV4YPelsPerMeter;
+        DWORD        bV4ClrUsed;
+        DWORD        bV4ClrImportant;
+        DWORD        bV4RedMask;
+        DWORD        bV4GreenMask;
+        DWORD        bV4BlueMask;
+        DWORD        bV4AlphaMask;
+        DWORD        bV4CSType;
+        CIEXYZTRIPLE bV4Endpoints;
+        DWORD        bV4GammaRed;
+        DWORD        bV4GammaGreen;
+        DWORD        bV4GammaBlue;
+} BITMAPV4HEADER,  *LPBITMAPV4HEADER, *PBITMAPV4HEADER;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagBITMAPINFO {
+    BITMAPINFOHEADER    bmiHeader;
+    RGBQUAD             bmiColors[1];
+} BITMAPINFO,  *LPBITMAPINFO, *PBITMAPINFO;
+
+typedef struct tagBITMAPCOREINFO {
+    BITMAPCOREHEADER    bmciHeader;
+    RGBTRIPLE           bmciColors[1];
+} BITMAPCOREINFO,  *LPBITMAPCOREINFO, *PBITMAPCOREINFO;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(push)
+
+#pragma pack(2)
+
+
+
+
+
+typedef struct tagBITMAPFILEHEADER {
+        WORD    bfType;
+        DWORD   bfSize;
+        WORD    bfReserved1;
+        WORD    bfReserved2;
+        DWORD   bfOffBits;
+} BITMAPFILEHEADER,  *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagFONTSIGNATURE
+{
+    DWORD fsUsb[4];
+    DWORD fsCsb[2];
+} FONTSIGNATURE, *PFONTSIGNATURE, *LPFONTSIGNATURE;
+
+typedef struct tagCHARSETINFO
+{
+    UINT ciCharset;
+    UINT ciACP;
+    FONTSIGNATURE fs;
+} CHARSETINFO, *PCHARSETINFO,  *NPCHARSETINFO,  *LPCHARSETINFO;
+
+
+
+
+
+typedef struct tagLOCALESIGNATURE
+{
+    DWORD lsUsb[4];
+    DWORD lsCsbDefault[2];
+    DWORD lsCsbSupported[2];
+} LOCALESIGNATURE, *PLOCALESIGNATURE, *LPLOCALESIGNATURE;
+
+
+
+
+
+
+
+
+typedef struct tagHANDLETABLE
+  {
+    HGDIOBJ     objectHandle[1];
+  } HANDLETABLE, *PHANDLETABLE,  *LPHANDLETABLE;
+
+typedef struct tagMETARECORD
+  {
+    DWORD       rdSize;
+    WORD        rdFunction;
+    WORD        rdParm[1];
+  } METARECORD;
+typedef struct tagMETARECORD  *PMETARECORD;
+typedef struct tagMETARECORD   *LPMETARECORD;
+
+typedef struct tagMETAFILEPICT
+  {
+    LONG        mm;
+    LONG        xExt;
+    LONG        yExt;
+    HMETAFILE   hMF;
+  } METAFILEPICT,  *LPMETAFILEPICT;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(push)
+
+#pragma pack(2)
+
+
+
+
+
+typedef struct tagMETAHEADER
+{
+    WORD        mtType;
+    WORD        mtHeaderSize;
+    WORD        mtVersion;
+    DWORD       mtSize;
+    WORD        mtNoObjects;
+    DWORD       mtMaxRecord;
+    WORD        mtNoParameters;
+} METAHEADER;
+typedef struct tagMETAHEADER  *PMETAHEADER;
+typedef struct tagMETAHEADER   *LPMETAHEADER;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+typedef struct tagENHMETARECORD
+{
+    DWORD   iType;              
+    DWORD   nSize;              
+    DWORD   dParm[1];           
+} ENHMETARECORD, *PENHMETARECORD, *LPENHMETARECORD;
+
+typedef struct tagENHMETAHEADER
+{
+    DWORD   iType;              
+    DWORD   nSize;              
+                                
+    RECTL   rclBounds;          
+    RECTL   rclFrame;           
+    DWORD   dSignature;         
+    DWORD   nVersion;           
+    DWORD   nBytes;             
+    DWORD   nRecords;           
+    WORD    nHandles;           
+                                
+    WORD    sReserved;          
+    DWORD   nDescription;       
+                                
+    DWORD   offDescription;     
+                                
+    DWORD   nPalEntries;        
+    SIZEL   szlDevice;          
+    SIZEL   szlMillimeters;     
+
+    DWORD   cbPixelFormat;      
+                                
+    DWORD   offPixelFormat;     
+                                
+    DWORD   bOpenGL;            
+                                
+
+} ENHMETAHEADER, *PENHMETAHEADER, *LPENHMETAHEADER;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    typedef BYTE BCHAR;
+
+
+typedef struct tagTEXTMETRICA
+{
+    LONG        tmHeight;
+    LONG        tmAscent;
+    LONG        tmDescent;
+    LONG        tmInternalLeading;
+    LONG        tmExternalLeading;
+    LONG        tmAveCharWidth;
+    LONG        tmMaxCharWidth;
+    LONG        tmWeight;
+    LONG        tmOverhang;
+    LONG        tmDigitizedAspectX;
+    LONG        tmDigitizedAspectY;
+    BYTE        tmFirstChar;
+    BYTE        tmLastChar;
+    BYTE        tmDefaultChar;
+    BYTE        tmBreakChar;
+    BYTE        tmItalic;
+    BYTE        tmUnderlined;
+    BYTE        tmStruckOut;
+    BYTE        tmPitchAndFamily;
+    BYTE        tmCharSet;
+} TEXTMETRICA, *PTEXTMETRICA,  *NPTEXTMETRICA,  *LPTEXTMETRICA;
+typedef struct tagTEXTMETRICW
+{
+    LONG        tmHeight;
+    LONG        tmAscent;
+    LONG        tmDescent;
+    LONG        tmInternalLeading;
+    LONG        tmExternalLeading;
+    LONG        tmAveCharWidth;
+    LONG        tmMaxCharWidth;
+    LONG        tmWeight;
+    LONG        tmOverhang;
+    LONG        tmDigitizedAspectX;
+    LONG        tmDigitizedAspectY;
+    WCHAR       tmFirstChar;
+    WCHAR       tmLastChar;
+    WCHAR       tmDefaultChar;
+    WCHAR       tmBreakChar;
+    BYTE        tmItalic;
+    BYTE        tmUnderlined;
+    BYTE        tmStruckOut;
+    BYTE        tmPitchAndFamily;
+    BYTE        tmCharSet;
+} TEXTMETRICW, *PTEXTMETRICW,  *NPTEXTMETRICW,  *LPTEXTMETRICW;
+
+
+
+
+
+
+typedef TEXTMETRICA TEXTMETRIC;
+typedef PTEXTMETRICA PTEXTMETRIC;
+typedef NPTEXTMETRICA NPTEXTMETRIC;
+typedef LPTEXTMETRICA LPTEXTMETRIC;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(push)
+
+#pragma pack(4)
+
+
+
+
+
+typedef struct tagNEWTEXTMETRICA
+{
+    LONG        tmHeight;
+    LONG        tmAscent;
+    LONG        tmDescent;
+    LONG        tmInternalLeading;
+    LONG        tmExternalLeading;
+    LONG        tmAveCharWidth;
+    LONG        tmMaxCharWidth;
+    LONG        tmWeight;
+    LONG        tmOverhang;
+    LONG        tmDigitizedAspectX;
+    LONG        tmDigitizedAspectY;
+    BYTE        tmFirstChar;
+    BYTE        tmLastChar;
+    BYTE        tmDefaultChar;
+    BYTE        tmBreakChar;
+    BYTE        tmItalic;
+    BYTE        tmUnderlined;
+    BYTE        tmStruckOut;
+    BYTE        tmPitchAndFamily;
+    BYTE        tmCharSet;
+    DWORD   ntmFlags;
+    UINT    ntmSizeEM;
+    UINT    ntmCellHeight;
+    UINT    ntmAvgWidth;
+} NEWTEXTMETRICA, *PNEWTEXTMETRICA,  *NPNEWTEXTMETRICA,  *LPNEWTEXTMETRICA;
+typedef struct tagNEWTEXTMETRICW
+{
+    LONG        tmHeight;
+    LONG        tmAscent;
+    LONG        tmDescent;
+    LONG        tmInternalLeading;
+    LONG        tmExternalLeading;
+    LONG        tmAveCharWidth;
+    LONG        tmMaxCharWidth;
+    LONG        tmWeight;
+    LONG        tmOverhang;
+    LONG        tmDigitizedAspectX;
+    LONG        tmDigitizedAspectY;
+    WCHAR       tmFirstChar;
+    WCHAR       tmLastChar;
+    WCHAR       tmDefaultChar;
+    WCHAR       tmBreakChar;
+    BYTE        tmItalic;
+    BYTE        tmUnderlined;
+    BYTE        tmStruckOut;
+    BYTE        tmPitchAndFamily;
+    BYTE        tmCharSet;
+    DWORD   ntmFlags;
+    UINT    ntmSizeEM;
+    UINT    ntmCellHeight;
+    UINT    ntmAvgWidth;
+} NEWTEXTMETRICW, *PNEWTEXTMETRICW,  *NPNEWTEXTMETRICW,  *LPNEWTEXTMETRICW;
+
+
+
+
+
+
+typedef NEWTEXTMETRICA NEWTEXTMETRIC;
+typedef PNEWTEXTMETRICA PNEWTEXTMETRIC;
+typedef NPNEWTEXTMETRICA NPNEWTEXTMETRIC;
+typedef LPNEWTEXTMETRICA LPNEWTEXTMETRIC;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+typedef struct tagNEWTEXTMETRICEXA
+{
+    NEWTEXTMETRICA  ntmTm;
+    FONTSIGNATURE   ntmFontSig;
+}NEWTEXTMETRICEXA;
+typedef struct tagNEWTEXTMETRICEXW
+{
+    NEWTEXTMETRICW  ntmTm;
+    FONTSIGNATURE   ntmFontSig;
+}NEWTEXTMETRICEXW;
+
+
+
+typedef NEWTEXTMETRICEXA NEWTEXTMETRICEX;
+
+
+
+
+
+
+
+typedef struct tagPELARRAY
+  {
+    LONG        paXCount;
+    LONG        paYCount;
+    LONG        paXExt;
+    LONG        paYExt;
+    BYTE        paRGBs;
+  } PELARRAY, *PPELARRAY,  *NPPELARRAY,  *LPPELARRAY;
+
+
+typedef struct tagLOGBRUSH
+  {
+    UINT        lbStyle;
+    COLORREF    lbColor;
+    LONG        lbHatch;
+  } LOGBRUSH, *PLOGBRUSH,  *NPLOGBRUSH,  *LPLOGBRUSH;
+
+typedef LOGBRUSH            PATTERN;
+typedef PATTERN             *PPATTERN;
+typedef PATTERN         *NPPATTERN;
+typedef PATTERN          *LPPATTERN;
+
+
+typedef struct tagLOGPEN
+  {
+    UINT        lopnStyle;
+    POINT       lopnWidth;
+    COLORREF    lopnColor;
+  } LOGPEN, *PLOGPEN,  *NPLOGPEN,  *LPLOGPEN;
+
+typedef struct tagEXTLOGPEN {
+    DWORD       elpPenStyle;
+    DWORD       elpWidth;
+    UINT        elpBrushStyle;
+    COLORREF    elpColor;
+    LONG        elpHatch;
+    DWORD       elpNumEntries;
+    DWORD       elpStyleEntry[1];
+} EXTLOGPEN, *PEXTLOGPEN,  *NPEXTLOGPEN,  *LPEXTLOGPEN;
+
+typedef struct tagPALETTEENTRY {
+    BYTE        peRed;
+    BYTE        peGreen;
+    BYTE        peBlue;
+    BYTE        peFlags;
+} PALETTEENTRY, *PPALETTEENTRY,  *LPPALETTEENTRY;
+
+
+typedef struct tagLOGPALETTE {
+    WORD        palVersion;
+    WORD        palNumEntries;
+    PALETTEENTRY        palPalEntry[1];
+} LOGPALETTE, *PLOGPALETTE,  *NPLOGPALETTE,  *LPLOGPALETTE;
+
+
+
+
+
+typedef struct tagLOGFONTA
+{
+    LONG      lfHeight;
+    LONG      lfWidth;
+    LONG      lfEscapement;
+    LONG      lfOrientation;
+    LONG      lfWeight;
+    BYTE      lfItalic;
+    BYTE      lfUnderline;
+    BYTE      lfStrikeOut;
+    BYTE      lfCharSet;
+    BYTE      lfOutPrecision;
+    BYTE      lfClipPrecision;
+    BYTE      lfQuality;
+    BYTE      lfPitchAndFamily;
+    CHAR      lfFaceName[32];
+} LOGFONTA, *PLOGFONTA,  *NPLOGFONTA,  *LPLOGFONTA;
+typedef struct tagLOGFONTW
+{
+    LONG      lfHeight;
+    LONG      lfWidth;
+    LONG      lfEscapement;
+    LONG      lfOrientation;
+    LONG      lfWeight;
+    BYTE      lfItalic;
+    BYTE      lfUnderline;
+    BYTE      lfStrikeOut;
+    BYTE      lfCharSet;
+    BYTE      lfOutPrecision;
+    BYTE      lfClipPrecision;
+    BYTE      lfQuality;
+    BYTE      lfPitchAndFamily;
+    WCHAR     lfFaceName[32];
+} LOGFONTW, *PLOGFONTW,  *NPLOGFONTW,  *LPLOGFONTW;
+
+
+
+
+
+
+typedef LOGFONTA LOGFONT;
+typedef PLOGFONTA PLOGFONT;
+typedef NPLOGFONTA NPLOGFONT;
+typedef LPLOGFONTA LPLOGFONT;
+
+
+
+
+
+typedef struct tagENUMLOGFONTA
+{
+    LOGFONTA elfLogFont;
+    BYTE     elfFullName[64];
+    BYTE     elfStyle[32];
+} ENUMLOGFONTA, * LPENUMLOGFONTA;
+
+typedef struct tagENUMLOGFONTW
+{
+    LOGFONTW elfLogFont;
+    WCHAR    elfFullName[64];
+    WCHAR    elfStyle[32];
+} ENUMLOGFONTW, * LPENUMLOGFONTW;
+
+
+
+
+typedef ENUMLOGFONTA ENUMLOGFONT;
+typedef LPENUMLOGFONTA LPENUMLOGFONT;
+
+
+
+typedef struct tagENUMLOGFONTEXA
+{
+    LOGFONTA    elfLogFont;
+    BYTE        elfFullName[64];
+    BYTE        elfStyle[32];
+    BYTE        elfScript[32];
+} ENUMLOGFONTEXA,  *LPENUMLOGFONTEXA;
+typedef struct tagENUMLOGFONTEXW
+{
+    LOGFONTW    elfLogFont;
+    WCHAR       elfFullName[64];
+    WCHAR       elfStyle[32];
+    WCHAR       elfScript[32];
+} ENUMLOGFONTEXW,  *LPENUMLOGFONTEXW;
+
+
+
+
+typedef ENUMLOGFONTEXA ENUMLOGFONTEX;
+typedef LPENUMLOGFONTEXA LPENUMLOGFONTEX;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                                    
+
+                                    
+
+                                    
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagPANOSE
+{
+    BYTE    bFamilyType;
+    BYTE    bSerifStyle;
+    BYTE    bWeight;
+    BYTE    bProportion;
+    BYTE    bContrast;
+    BYTE    bStrokeVariation;
+    BYTE    bArmStyle;
+    BYTE    bLetterform;
+    BYTE    bMidline;
+    BYTE    bXHeight;
+} PANOSE, * LPPANOSE;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagEXTLOGFONTA {
+    LOGFONTA    elfLogFont;
+    BYTE        elfFullName[64];
+    BYTE        elfStyle[32];
+    DWORD       elfVersion;     
+    DWORD       elfStyleSize;
+    DWORD       elfMatch;
+    DWORD       elfReserved;
+    BYTE        elfVendorId[4];
+    DWORD       elfCulture;     
+    PANOSE      elfPanose;
+} EXTLOGFONTA, *PEXTLOGFONTA,  *NPEXTLOGFONTA,  *LPEXTLOGFONTA;
+typedef struct tagEXTLOGFONTW {
+    LOGFONTW    elfLogFont;
+    WCHAR       elfFullName[64];
+    WCHAR       elfStyle[32];
+    DWORD       elfVersion;     
+    DWORD       elfStyleSize;
+    DWORD       elfMatch;
+    DWORD       elfReserved;
+    BYTE        elfVendorId[4];
+    DWORD       elfCulture;     
+    PANOSE      elfPanose;
+} EXTLOGFONTW, *PEXTLOGFONTW,  *NPEXTLOGFONTW,  *LPEXTLOGFONTW;
+
+
+
+
+
+
+typedef EXTLOGFONTA EXTLOGFONT;
+typedef PEXTLOGFONTA PEXTLOGFONT;
+typedef NPEXTLOGFONTA NPEXTLOGFONT;
+typedef LPEXTLOGFONTA LPEXTLOGFONT;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                             
+
+                             
+
+                             
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _devicemodeA {
+    BYTE   dmDeviceName[32];
+    WORD dmSpecVersion;
+    WORD dmDriverVersion;
+    WORD dmSize;
+    WORD dmDriverExtra;
+    DWORD dmFields;
+    union {
+      struct {
+        short dmOrientation;
+        short dmPaperSize;
+        short dmPaperLength;
+        short dmPaperWidth;
+      };
+      POINTL dmPosition;
+    };
+    short dmScale;
+    short dmCopies;
+    short dmDefaultSource;
+    short dmPrintQuality;
+    short dmColor;
+    short dmDuplex;
+    short dmYResolution;
+    short dmTTOption;
+    short dmCollate;
+    BYTE   dmFormName[32];
+    WORD   dmLogPixels;
+    DWORD  dmBitsPerPel;
+    DWORD  dmPelsWidth;
+    DWORD  dmPelsHeight;
+    DWORD  dmDisplayFlags;
+    DWORD  dmDisplayFrequency;
+
+    DWORD  dmICMMethod;
+    DWORD  dmICMIntent;
+    DWORD  dmMediaType;
+    DWORD  dmDitherType;
+    DWORD  dmReserved1;
+    DWORD  dmReserved2;
+
+
+
+
+
+} DEVMODEA, *PDEVMODEA, *NPDEVMODEA, *LPDEVMODEA;
+typedef struct _devicemodeW {
+    WCHAR  dmDeviceName[32];
+    WORD dmSpecVersion;
+    WORD dmDriverVersion;
+    WORD dmSize;
+    WORD dmDriverExtra;
+    DWORD dmFields;
+    union {
+      struct {
+        short dmOrientation;
+        short dmPaperSize;
+        short dmPaperLength;
+        short dmPaperWidth;
+      };
+      POINTL dmPosition;
+    };
+    short dmScale;
+    short dmCopies;
+    short dmDefaultSource;
+    short dmPrintQuality;
+    short dmColor;
+    short dmDuplex;
+    short dmYResolution;
+    short dmTTOption;
+    short dmCollate;
+    WCHAR  dmFormName[32];
+    WORD   dmLogPixels;
+    DWORD  dmBitsPerPel;
+    DWORD  dmPelsWidth;
+    DWORD  dmPelsHeight;
+    DWORD  dmDisplayFlags;
+    DWORD  dmDisplayFrequency;
+
+    DWORD  dmICMMethod;
+    DWORD  dmICMIntent;
+    DWORD  dmMediaType;
+    DWORD  dmDitherType;
+    DWORD  dmReserved1;
+    DWORD  dmReserved2;
+
+
+
+
+
+} DEVMODEW, *PDEVMODEW, *NPDEVMODEW, *LPDEVMODEW;
+
+
+
+
+
+
+typedef DEVMODEA DEVMODE;
+typedef PDEVMODEA PDEVMODE;
+typedef NPDEVMODEA NPDEVMODE;
+typedef LPDEVMODEA LPDEVMODE;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _DISPLAY_DEVICEA {
+    DWORD  cb;
+    BYTE   DeviceName[32];
+    BYTE   DeviceString[128];
+    DWORD  StateFlags;
+} DISPLAY_DEVICEA, *PDISPLAY_DEVICEA, *LPDISPLAY_DEVICEA;
+typedef struct _DISPLAY_DEVICEW {
+    DWORD  cb;
+    WCHAR  DeviceName[32];
+    WCHAR  DeviceString[128];
+    DWORD  StateFlags;
+} DISPLAY_DEVICEW, *PDISPLAY_DEVICEW, *LPDISPLAY_DEVICEW;
+
+
+
+
+
+typedef DISPLAY_DEVICEA DISPLAY_DEVICE;
+typedef PDISPLAY_DEVICEA PDISPLAY_DEVICE;
+typedef LPDISPLAY_DEVICEA LPDISPLAY_DEVICE;
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _RGNDATAHEADER {
+    DWORD   dwSize;
+    DWORD   iType;
+    DWORD   nCount;
+    DWORD   nRgnSize;
+    RECT    rcBound;
+} RGNDATAHEADER, *PRGNDATAHEADER;
+
+typedef struct _RGNDATA {
+    RGNDATAHEADER   rdh;
+    char            Buffer[1];
+} RGNDATA, *PRGNDATA,  *NPRGNDATA,  *LPRGNDATA;
+
+
+typedef struct _ABC {
+    int     abcA;
+    UINT    abcB;
+    int     abcC;
+} ABC, *PABC,  *NPABC,  *LPABC;
+
+typedef struct _ABCFLOAT {
+    FLOAT   abcfA;
+    FLOAT   abcfB;
+    FLOAT   abcfC;
+} ABCFLOAT, *PABCFLOAT,  *NPABCFLOAT,  *LPABCFLOAT;
+
+
+
+
+
+
+typedef struct _OUTLINETEXTMETRICA {
+    UINT    otmSize;
+    TEXTMETRICA otmTextMetrics;
+    BYTE    otmFiller;
+    PANOSE  otmPanoseNumber;
+    UINT    otmfsSelection;
+    UINT    otmfsType;
+     int    otmsCharSlopeRise;
+     int    otmsCharSlopeRun;
+     int    otmItalicAngle;
+    UINT    otmEMSquare;
+     int    otmAscent;
+     int    otmDescent;
+    UINT    otmLineGap;
+    UINT    otmsCapEmHeight;
+    UINT    otmsXHeight;
+    RECT    otmrcFontBox;
+     int    otmMacAscent;
+     int    otmMacDescent;
+    UINT    otmMacLineGap;
+    UINT    otmusMinimumPPEM;
+    POINT   otmptSubscriptSize;
+    POINT   otmptSubscriptOffset;
+    POINT   otmptSuperscriptSize;
+    POINT   otmptSuperscriptOffset;
+    UINT    otmsStrikeoutSize;
+     int    otmsStrikeoutPosition;
+     int    otmsUnderscoreSize;
+     int    otmsUnderscorePosition;
+    PSTR    otmpFamilyName;
+    PSTR    otmpFaceName;
+    PSTR    otmpStyleName;
+    PSTR    otmpFullName;
+} OUTLINETEXTMETRICA, *POUTLINETEXTMETRICA,  *NPOUTLINETEXTMETRICA,  *LPOUTLINETEXTMETRICA;
+typedef struct _OUTLINETEXTMETRICW {
+    UINT    otmSize;
+    TEXTMETRICW otmTextMetrics;
+    BYTE    otmFiller;
+    PANOSE  otmPanoseNumber;
+    UINT    otmfsSelection;
+    UINT    otmfsType;
+     int    otmsCharSlopeRise;
+     int    otmsCharSlopeRun;
+     int    otmItalicAngle;
+    UINT    otmEMSquare;
+     int    otmAscent;
+     int    otmDescent;
+    UINT    otmLineGap;
+    UINT    otmsCapEmHeight;
+    UINT    otmsXHeight;
+    RECT    otmrcFontBox;
+     int    otmMacAscent;
+     int    otmMacDescent;
+    UINT    otmMacLineGap;
+    UINT    otmusMinimumPPEM;
+    POINT   otmptSubscriptSize;
+    POINT   otmptSubscriptOffset;
+    POINT   otmptSuperscriptSize;
+    POINT   otmptSuperscriptOffset;
+    UINT    otmsStrikeoutSize;
+     int    otmsStrikeoutPosition;
+     int    otmsUnderscoreSize;
+     int    otmsUnderscorePosition;
+    PSTR    otmpFamilyName;
+    PSTR    otmpFaceName;
+    PSTR    otmpStyleName;
+    PSTR    otmpFullName;
+} OUTLINETEXTMETRICW, *POUTLINETEXTMETRICW,  *NPOUTLINETEXTMETRICW,  *LPOUTLINETEXTMETRICW;
+
+
+
+
+
+
+typedef OUTLINETEXTMETRICA OUTLINETEXTMETRIC;
+typedef POUTLINETEXTMETRICA POUTLINETEXTMETRIC;
+typedef NPOUTLINETEXTMETRICA NPOUTLINETEXTMETRIC;
+typedef LPOUTLINETEXTMETRICA LPOUTLINETEXTMETRIC;
+
+
+
+
+
+
+
+
+
+typedef struct tagPOLYTEXTA
+{
+    int       x;
+    int       y;
+    UINT      n;
+    LPCSTR    lpstr;
+    UINT      uiFlags;
+    RECT      rcl;
+    int      *pdx;
+} POLYTEXTA, *PPOLYTEXTA,  *NPPOLYTEXTA,  *LPPOLYTEXTA;
+typedef struct tagPOLYTEXTW
+{
+    int       x;
+    int       y;
+    UINT      n;
+    LPCWSTR   lpstr;
+    UINT      uiFlags;
+    RECT      rcl;
+    int      *pdx;
+} POLYTEXTW, *PPOLYTEXTW,  *NPPOLYTEXTW,  *LPPOLYTEXTW;
+
+
+
+
+
+
+typedef POLYTEXTA POLYTEXT;
+typedef PPOLYTEXTA PPOLYTEXT;
+typedef NPPOLYTEXTA NPPOLYTEXT;
+typedef LPPOLYTEXTA LPPOLYTEXT;
+
+
+typedef struct _FIXED {
+
+    WORD    fract;
+    short   value;
+
+
+
+
+} FIXED;
+
+
+typedef struct _MAT2 {
+     FIXED  eM11;
+     FIXED  eM12;
+     FIXED  eM21;
+     FIXED  eM22;
+} MAT2,  *LPMAT2;
+
+
+
+typedef struct _GLYPHMETRICS {
+    UINT    gmBlackBoxX;
+    UINT    gmBlackBoxY;
+    POINT   gmptGlyphOrigin;
+    short   gmCellIncX;
+    short   gmCellIncY;
+} GLYPHMETRICS,  *LPGLYPHMETRICS;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagPOINTFX
+{
+    FIXED x;
+    FIXED y;
+} POINTFX, * LPPOINTFX;
+
+typedef struct tagTTPOLYCURVE
+{
+    WORD    wType;
+    WORD    cpfx;
+    POINTFX apfx[1];
+} TTPOLYCURVE, * LPTTPOLYCURVE;
+
+typedef struct tagTTPOLYGONHEADER
+{
+    DWORD   cb;
+    DWORD   dwType;
+    POINTFX pfxStart;
+} TTPOLYGONHEADER, * LPTTPOLYGONHEADER;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagGCP_RESULTSA
+    {
+    DWORD   lStructSize;
+    LPSTR     lpOutString;
+    UINT  *lpOrder;
+    int   *lpDx;
+    int   *lpCaretPos;
+    LPSTR   lpClass;
+    LPWSTR  lpGlyphs;
+    UINT    nGlyphs;
+    int     nMaxFit;
+    } GCP_RESULTSA, * LPGCP_RESULTSA;
+typedef struct tagGCP_RESULTSW
+    {
+    DWORD   lStructSize;
+    LPWSTR    lpOutString;
+    UINT  *lpOrder;
+    int   *lpDx;
+    int   *lpCaretPos;
+    LPSTR   lpClass;
+    LPWSTR  lpGlyphs;
+    UINT    nGlyphs;
+    int     nMaxFit;
+    } GCP_RESULTSW, * LPGCP_RESULTSW;
+
+
+
+
+typedef GCP_RESULTSA GCP_RESULTS;
+typedef LPGCP_RESULTSA LPGCP_RESULTS;
+
+
+
+typedef struct _RASTERIZER_STATUS {
+    short   nSize;
+    short   wFlags;
+    short   nLanguageID;
+} RASTERIZER_STATUS,  *LPRASTERIZER_STATUS;
+
+
+
+
+
+
+typedef struct tagPIXELFORMATDESCRIPTOR
+{
+    WORD  nSize;
+    WORD  nVersion;
+    DWORD dwFlags;
+    BYTE  iPixelType;
+    BYTE  cColorBits;
+    BYTE  cRedBits;
+    BYTE  cRedShift;
+    BYTE  cGreenBits;
+    BYTE  cGreenShift;
+    BYTE  cBlueBits;
+    BYTE  cBlueShift;
+    BYTE  cAlphaBits;
+    BYTE  cAlphaShift;
+    BYTE  cAccumBits;
+    BYTE  cAccumRedBits;
+    BYTE  cAccumGreenBits;
+    BYTE  cAccumBlueBits;
+    BYTE  cAccumAlphaBits;
+    BYTE  cDepthBits;
+    BYTE  cStencilBits;
+    BYTE  cAuxBuffers;
+    BYTE  iLayerType;
+    BYTE  bReserved;
+    DWORD dwLayerMask;
+    DWORD dwVisibleMask;
+    DWORD dwDamageMask;
+} PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR,  *LPPIXELFORMATDESCRIPTOR;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef int (__stdcall* OLDFONTENUMPROCA)(const LOGFONTA *, const TEXTMETRICA *, DWORD, LPARAM);
+typedef int (__stdcall* OLDFONTENUMPROCW)(const LOGFONTW *, const TEXTMETRICW *, DWORD, LPARAM);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef OLDFONTENUMPROCA    FONTENUMPROCA;
+typedef OLDFONTENUMPROCW    FONTENUMPROCW;
+
+
+
+typedef FONTENUMPROCA FONTENUMPROC;
+
+
+typedef int (__stdcall* GOBJENUMPROC)(LPVOID, LPARAM);
+typedef void (__stdcall* LINEDDAPROC)(int, int, LPARAM);
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport) int __stdcall AddFontResourceA(LPCSTR);
+__declspec(dllimport) int __stdcall AddFontResourceW(LPCWSTR);
+
+
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall AnimatePalette(HPALETTE, UINT, UINT, const PALETTEENTRY *);
+__declspec(dllimport) BOOL  __stdcall Arc(HDC, int, int, int, int, int, int, int, int);
+__declspec(dllimport) BOOL  __stdcall BitBlt(HDC, int, int, int, int, HDC, int, int, DWORD);
+__declspec(dllimport) BOOL  __stdcall CancelDC(HDC);
+__declspec(dllimport) BOOL  __stdcall Chord(HDC, int, int, int, int, int, int, int, int);
+__declspec(dllimport) int   __stdcall ChoosePixelFormat(HDC, const PIXELFORMATDESCRIPTOR *);
+__declspec(dllimport) HMETAFILE  __stdcall CloseMetaFile(HDC);
+__declspec(dllimport) int     __stdcall CombineRgn(HRGN, HRGN, HRGN, int);
+__declspec(dllimport) HMETAFILE __stdcall CopyMetaFileA(HMETAFILE, LPCSTR);
+__declspec(dllimport) HMETAFILE __stdcall CopyMetaFileW(HMETAFILE, LPCWSTR);
+
+
+
+
+
+__declspec(dllimport) HBITMAP __stdcall CreateBitmap(int, int, UINT, UINT, const void *);
+__declspec(dllimport) HBITMAP __stdcall CreateBitmapIndirect(const BITMAP *);
+__declspec(dllimport) HBRUSH  __stdcall CreateBrushIndirect(const LOGBRUSH *);
+__declspec(dllimport) HBITMAP __stdcall CreateCompatibleBitmap(HDC, int, int);
+__declspec(dllimport) HBITMAP __stdcall CreateDiscardableBitmap(HDC, int, int);
+__declspec(dllimport) HDC     __stdcall CreateCompatibleDC(HDC);
+__declspec(dllimport) HDC     __stdcall CreateDCA(LPCSTR, LPCSTR , LPCSTR , const DEVMODEA *);
+__declspec(dllimport) HDC     __stdcall CreateDCW(LPCWSTR, LPCWSTR , LPCWSTR , const DEVMODEW *);
+
+
+
+
+
+__declspec(dllimport) HBITMAP __stdcall CreateDIBitmap(HDC, const BITMAPINFOHEADER *, DWORD, const void *, const BITMAPINFO *, UINT);
+__declspec(dllimport) HBRUSH  __stdcall CreateDIBPatternBrush(HGLOBAL, UINT);
+__declspec(dllimport) HBRUSH  __stdcall CreateDIBPatternBrushPt(const void *, UINT);
+__declspec(dllimport) HRGN    __stdcall CreateEllipticRgn(int, int, int, int);
+__declspec(dllimport) HRGN    __stdcall CreateEllipticRgnIndirect(const RECT *);
+__declspec(dllimport) HFONT   __stdcall CreateFontIndirectA(const LOGFONTA *);
+__declspec(dllimport) HFONT   __stdcall CreateFontIndirectW(const LOGFONTW *);
+
+
+
+
+
+__declspec(dllimport) HFONT   __stdcall CreateFontA(int, int, int, int, int, DWORD,
+                             DWORD, DWORD, DWORD, DWORD, DWORD,
+                             DWORD, DWORD, LPCSTR);
+__declspec(dllimport) HFONT   __stdcall CreateFontW(int, int, int, int, int, DWORD,
+                             DWORD, DWORD, DWORD, DWORD, DWORD,
+                             DWORD, DWORD, LPCWSTR);
+
+
+
+
+
+
+__declspec(dllimport) HBRUSH  __stdcall CreateHatchBrush(int, COLORREF);
+__declspec(dllimport) HDC     __stdcall CreateICA(LPCSTR, LPCSTR , LPCSTR , const DEVMODEA *);
+__declspec(dllimport) HDC     __stdcall CreateICW(LPCWSTR, LPCWSTR , LPCWSTR , const DEVMODEW *);
+
+
+
+
+
+__declspec(dllimport) HDC     __stdcall CreateMetaFileA(LPCSTR);
+__declspec(dllimport) HDC     __stdcall CreateMetaFileW(LPCWSTR);
+
+
+
+
+
+__declspec(dllimport) HPALETTE __stdcall CreatePalette(const LOGPALETTE *);
+__declspec(dllimport) HPEN    __stdcall CreatePen(int, int, COLORREF);
+__declspec(dllimport) HPEN    __stdcall CreatePenIndirect(const LOGPEN *);
+__declspec(dllimport) HRGN    __stdcall CreatePolyPolygonRgn(const POINT *, const INT *, int, int);
+__declspec(dllimport) HBRUSH  __stdcall CreatePatternBrush(HBITMAP);
+__declspec(dllimport) HRGN    __stdcall CreateRectRgn(int, int, int, int);
+__declspec(dllimport) HRGN    __stdcall CreateRectRgnIndirect(const RECT *);
+__declspec(dllimport) HRGN    __stdcall CreateRoundRectRgn(int, int, int, int, int, int);
+__declspec(dllimport) BOOL    __stdcall CreateScalableFontResourceA(DWORD, LPCSTR, LPCSTR, LPCSTR);
+__declspec(dllimport) BOOL    __stdcall CreateScalableFontResourceW(DWORD, LPCWSTR, LPCWSTR, LPCWSTR);
+
+
+
+
+
+__declspec(dllimport) HBRUSH  __stdcall CreateSolidBrush(COLORREF);
+
+__declspec(dllimport) BOOL __stdcall DeleteDC(HDC);
+__declspec(dllimport) BOOL __stdcall DeleteMetaFile(HMETAFILE);
+__declspec(dllimport) BOOL __stdcall DeleteObject(HGDIOBJ);
+__declspec(dllimport) int  __stdcall DescribePixelFormat(HDC, int, UINT, LPPIXELFORMATDESCRIPTOR);
+
+
+
+
+
+typedef UINT   (__stdcall* LPFNDEVMODE)(HWND, HMODULE, LPDEVMODE, LPSTR, LPSTR, LPDEVMODE, LPSTR, UINT);
+
+typedef DWORD  (__stdcall* LPFNDEVCAPS)(LPSTR, LPSTR, UINT, LPSTR, LPDEVMODE);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport) int  __stdcall DeviceCapabilitiesA(LPCSTR, LPCSTR, WORD,
+                                LPSTR, const DEVMODEA *);
+__declspec(dllimport) int  __stdcall DeviceCapabilitiesW(LPCWSTR, LPCWSTR, WORD,
+                                LPWSTR, const DEVMODEW *);
+
+
+
+
+
+
+__declspec(dllimport) int  __stdcall DrawEscape(HDC, int, int, LPCSTR);
+__declspec(dllimport) BOOL __stdcall Ellipse(HDC, int, int, int, int);
+
+
+__declspec(dllimport) int  __stdcall EnumFontFamiliesExA(HDC, LPLOGFONTA,FONTENUMPROCA, LPARAM,DWORD);
+__declspec(dllimport) int  __stdcall EnumFontFamiliesExW(HDC, LPLOGFONTW,FONTENUMPROCW, LPARAM,DWORD);
+
+
+
+
+
+
+
+__declspec(dllimport) int  __stdcall EnumFontFamiliesA(HDC, LPCSTR, FONTENUMPROCA, LPARAM);
+__declspec(dllimport) int  __stdcall EnumFontFamiliesW(HDC, LPCWSTR, FONTENUMPROCW, LPARAM);
+
+
+
+
+
+__declspec(dllimport) int  __stdcall EnumFontsA(HDC, LPCSTR,  FONTENUMPROCA, LPARAM);
+__declspec(dllimport) int  __stdcall EnumFontsW(HDC, LPCWSTR,  FONTENUMPROCW, LPARAM);
+
+
+
+
+
+
+
+__declspec(dllimport) int  __stdcall EnumObjects(HDC, int, GOBJENUMPROC, LPARAM);
+
+
+
+
+
+__declspec(dllimport) BOOL __stdcall EqualRgn(HRGN, HRGN);
+__declspec(dllimport) int  __stdcall Escape(HDC, int, int, LPCSTR, LPVOID);
+__declspec(dllimport) int  __stdcall ExtEscape(HDC, int, int, LPCSTR, int, LPSTR);
+__declspec(dllimport) int  __stdcall ExcludeClipRect(HDC, int, int, int, int);
+__declspec(dllimport) HRGN __stdcall ExtCreateRegion(const XFORM *, DWORD, const RGNDATA *);
+__declspec(dllimport) BOOL  __stdcall ExtFloodFill(HDC, int, int, COLORREF, UINT);
+__declspec(dllimport) BOOL   __stdcall FillRgn(HDC, HRGN, HBRUSH);
+__declspec(dllimport) BOOL   __stdcall FloodFill(HDC, int, int, COLORREF);
+__declspec(dllimport) BOOL   __stdcall FrameRgn(HDC, HRGN, HBRUSH, int, int);
+__declspec(dllimport) int   __stdcall GetROP2(HDC);
+__declspec(dllimport) BOOL  __stdcall GetAspectRatioFilterEx(HDC, LPSIZE);
+__declspec(dllimport) COLORREF __stdcall GetBkColor(HDC);
+
+
+
+
+
+
+__declspec(dllimport) int   __stdcall GetBkMode(HDC);
+__declspec(dllimport) LONG  __stdcall GetBitmapBits(HBITMAP, LONG, LPVOID);
+__declspec(dllimport) BOOL  __stdcall GetBitmapDimensionEx(HBITMAP, LPSIZE);
+__declspec(dllimport) UINT  __stdcall GetBoundsRect(HDC, LPRECT, UINT);
+
+__declspec(dllimport) BOOL  __stdcall GetBrushOrgEx(HDC, LPPOINT);
+
+__declspec(dllimport) BOOL  __stdcall GetCharWidthA(HDC, UINT, UINT, LPINT);
+__declspec(dllimport) BOOL  __stdcall GetCharWidthW(HDC, UINT, UINT, LPINT);
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall GetCharWidth32A(HDC, UINT, UINT, LPINT);
+__declspec(dllimport) BOOL  __stdcall GetCharWidth32W(HDC, UINT, UINT, LPINT);
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall GetCharWidthFloatA(HDC, UINT, UINT, PFLOAT);
+__declspec(dllimport) BOOL  __stdcall GetCharWidthFloatW(HDC, UINT, UINT, PFLOAT);
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall GetCharABCWidthsA(HDC, UINT, UINT, LPABC);
+__declspec(dllimport) BOOL  __stdcall GetCharABCWidthsW(HDC, UINT, UINT, LPABC);
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall GetCharABCWidthsFloatA(HDC, UINT, UINT, LPABCFLOAT);
+__declspec(dllimport) BOOL  __stdcall GetCharABCWidthsFloatW(HDC, UINT, UINT, LPABCFLOAT);
+
+
+
+
+
+__declspec(dllimport) int   __stdcall GetClipBox(HDC, LPRECT);
+__declspec(dllimport) int   __stdcall GetClipRgn(HDC, HRGN);
+__declspec(dllimport) int   __stdcall GetMetaRgn(HDC, HRGN);
+__declspec(dllimport) HGDIOBJ __stdcall GetCurrentObject(HDC, UINT);
+__declspec(dllimport) BOOL  __stdcall GetCurrentPositionEx(HDC, LPPOINT);
+__declspec(dllimport) int   __stdcall GetDeviceCaps(HDC, int);
+__declspec(dllimport) int   __stdcall GetDIBits(HDC, HBITMAP, UINT, UINT, LPVOID, LPBITMAPINFO, UINT);
+__declspec(dllimport) DWORD __stdcall GetFontData(HDC, DWORD, DWORD, LPVOID, DWORD);
+__declspec(dllimport) DWORD __stdcall GetGlyphOutlineA(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, LPVOID, const MAT2 *);
+__declspec(dllimport) DWORD __stdcall GetGlyphOutlineW(HDC, UINT, UINT, LPGLYPHMETRICS, DWORD, LPVOID, const MAT2 *);
+
+
+
+
+
+__declspec(dllimport) int   __stdcall GetGraphicsMode(HDC);
+__declspec(dllimport) int   __stdcall GetMapMode(HDC);
+__declspec(dllimport) UINT  __stdcall GetMetaFileBitsEx(HMETAFILE, UINT, LPVOID);
+__declspec(dllimport) HMETAFILE   __stdcall GetMetaFileA(LPCSTR);
+__declspec(dllimport) HMETAFILE   __stdcall GetMetaFileW(LPCWSTR);
+
+
+
+
+
+__declspec(dllimport) COLORREF __stdcall GetNearestColor(HDC, COLORREF);
+__declspec(dllimport) UINT  __stdcall GetNearestPaletteIndex(HPALETTE, COLORREF);
+__declspec(dllimport) DWORD __stdcall GetObjectType(HGDIOBJ h);
+
+
+
+__declspec(dllimport) UINT __stdcall GetOutlineTextMetricsA(HDC, UINT, LPOUTLINETEXTMETRICA);
+__declspec(dllimport) UINT __stdcall GetOutlineTextMetricsW(HDC, UINT, LPOUTLINETEXTMETRICW);
+
+
+
+
+
+
+
+
+__declspec(dllimport) UINT  __stdcall GetPaletteEntries(HPALETTE, UINT, UINT, LPPALETTEENTRY);
+__declspec(dllimport) COLORREF __stdcall GetPixel(HDC, int, int);
+__declspec(dllimport) int   __stdcall GetPixelFormat(HDC);
+__declspec(dllimport) int   __stdcall GetPolyFillMode(HDC);
+__declspec(dllimport) BOOL  __stdcall GetRasterizerCaps(LPRASTERIZER_STATUS, UINT);
+__declspec(dllimport) DWORD __stdcall GetRegionData(HRGN, DWORD, LPRGNDATA);
+__declspec(dllimport) int   __stdcall GetRgnBox(HRGN, LPRECT);
+__declspec(dllimport) HGDIOBJ __stdcall GetStockObject(int);
+__declspec(dllimport) int   __stdcall GetStretchBltMode(HDC);
+__declspec(dllimport) UINT  __stdcall GetSystemPaletteEntries(HDC, UINT, UINT, LPPALETTEENTRY);
+__declspec(dllimport) UINT  __stdcall GetSystemPaletteUse(HDC);
+__declspec(dllimport) int   __stdcall GetTextCharacterExtra(HDC);
+__declspec(dllimport) UINT  __stdcall GetTextAlign(HDC);
+__declspec(dllimport) COLORREF __stdcall GetTextColor(HDC);
+
+__declspec(dllimport) BOOL  __stdcall GetTextExtentPointA(
+                    HDC,
+                    LPCSTR,
+                    int,
+                    LPSIZE
+                    );
+__declspec(dllimport) BOOL  __stdcall GetTextExtentPointW(
+                    HDC,
+                    LPCWSTR,
+                    int,
+                    LPSIZE
+                    );
+
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall GetTextExtentPoint32A(
+                    HDC,
+                    LPCSTR,
+                    int,
+                    LPSIZE
+                    );
+__declspec(dllimport) BOOL  __stdcall GetTextExtentPoint32W(
+                    HDC,
+                    LPCWSTR,
+                    int,
+                    LPSIZE
+                    );
+
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall GetTextExtentExPointA(
+                    HDC,
+                    LPCSTR,
+                    int,
+                    int,
+                    LPINT,
+                    LPINT,
+                    LPSIZE
+                    );
+__declspec(dllimport) BOOL  __stdcall GetTextExtentExPointW(
+                    HDC,
+                    LPCWSTR,
+                    int,
+                    int,
+                    LPINT,
+                    LPINT,
+                    LPSIZE
+                    );
+
+
+
+
+
+
+__declspec(dllimport) int __stdcall GetTextCharset(HDC hdc);
+__declspec(dllimport) int __stdcall GetTextCharsetInfo(HDC hdc, LPFONTSIGNATURE lpSig, DWORD dwFlags);
+__declspec(dllimport) BOOL __stdcall TranslateCharsetInfo( DWORD  *lpSrc, LPCHARSETINFO lpCs, DWORD dwFlags);
+__declspec(dllimport) DWORD __stdcall GetFontLanguageInfo( HDC );
+__declspec(dllimport) DWORD __stdcall GetCharacterPlacementA(HDC, LPCSTR, int, int, LPGCP_RESULTSA, DWORD);
+__declspec(dllimport) DWORD __stdcall GetCharacterPlacementW(HDC, LPCWSTR, int, int, LPGCP_RESULTSW, DWORD);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall GetViewportExtEx(HDC, LPSIZE);
+__declspec(dllimport) BOOL  __stdcall GetViewportOrgEx(HDC, LPPOINT);
+__declspec(dllimport) BOOL  __stdcall GetWindowExtEx(HDC, LPSIZE);
+__declspec(dllimport) BOOL  __stdcall GetWindowOrgEx(HDC, LPPOINT);
+
+__declspec(dllimport) int  __stdcall IntersectClipRect(HDC, int, int, int, int);
+__declspec(dllimport) BOOL __stdcall InvertRgn(HDC, HRGN);
+__declspec(dllimport) BOOL __stdcall LineDDA(int, int, int, int, LINEDDAPROC, LPARAM);
+__declspec(dllimport) BOOL __stdcall LineTo(HDC, int, int);
+__declspec(dllimport) BOOL __stdcall MaskBlt(HDC, int, int, int, int,
+              HDC, int, int, HBITMAP, int, int, DWORD);
+__declspec(dllimport) BOOL __stdcall PlgBlt(HDC, const POINT *, HDC, int, int, int,
+                     int, HBITMAP, int, int);
+
+__declspec(dllimport) int  __stdcall OffsetClipRgn(HDC, int, int);
+__declspec(dllimport) int  __stdcall OffsetRgn(HRGN, int, int);
+__declspec(dllimport) BOOL __stdcall PatBlt(HDC, int, int, int, int, DWORD);
+__declspec(dllimport) BOOL __stdcall Pie(HDC, int, int, int, int, int, int, int, int);
+__declspec(dllimport) BOOL __stdcall PlayMetaFile(HDC, HMETAFILE);
+__declspec(dllimport) BOOL __stdcall PaintRgn(HDC, HRGN);
+__declspec(dllimport) BOOL __stdcall PolyPolygon(HDC, const POINT *, const INT *, int);
+__declspec(dllimport) BOOL __stdcall PtInRegion(HRGN, int, int);
+__declspec(dllimport) BOOL __stdcall PtVisible(HDC, int, int);
+__declspec(dllimport) BOOL __stdcall RectInRegion(HRGN, const RECT *);
+__declspec(dllimport) BOOL __stdcall RectVisible(HDC, const RECT *);
+__declspec(dllimport) BOOL __stdcall Rectangle(HDC, int, int, int, int);
+__declspec(dllimport) BOOL __stdcall RestoreDC(HDC, int);
+__declspec(dllimport) HDC  __stdcall ResetDCA(HDC, const DEVMODEA *);
+__declspec(dllimport) HDC  __stdcall ResetDCW(HDC, const DEVMODEW *);
+
+
+
+
+
+__declspec(dllimport) UINT __stdcall RealizePalette(HDC);
+__declspec(dllimport) BOOL __stdcall RemoveFontResourceA(LPCSTR);
+__declspec(dllimport) BOOL __stdcall RemoveFontResourceW(LPCWSTR);
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall RoundRect(HDC, int, int, int, int, int, int);
+__declspec(dllimport) BOOL __stdcall ResizePalette(HPALETTE, UINT);
+
+__declspec(dllimport) int  __stdcall SaveDC(HDC);
+__declspec(dllimport) int  __stdcall SelectClipRgn(HDC, HRGN);
+__declspec(dllimport) int  __stdcall ExtSelectClipRgn(HDC, HRGN, int);
+__declspec(dllimport) int  __stdcall SetMetaRgn(HDC);
+__declspec(dllimport) HGDIOBJ __stdcall SelectObject(HDC, HGDIOBJ);
+__declspec(dllimport) HPALETTE __stdcall SelectPalette(HDC, HPALETTE, BOOL);
+__declspec(dllimport) COLORREF __stdcall SetBkColor(HDC, COLORREF);
+
+
+
+
+
+
+__declspec(dllimport) int   __stdcall SetBkMode(HDC, int);
+__declspec(dllimport) LONG  __stdcall SetBitmapBits(HBITMAP, DWORD, const void *);
+
+__declspec(dllimport) UINT  __stdcall SetBoundsRect(HDC, const RECT *, UINT);
+__declspec(dllimport) int   __stdcall SetDIBits(HDC, HBITMAP, UINT, UINT, const void *, const BITMAPINFO *, UINT);
+__declspec(dllimport) int   __stdcall SetDIBitsToDevice(HDC, int, int, DWORD, DWORD, int,
+        int, UINT, UINT, const void *, const BITMAPINFO *, UINT);
+__declspec(dllimport) DWORD __stdcall SetMapperFlags(HDC, DWORD);
+__declspec(dllimport) int   __stdcall SetGraphicsMode(HDC hdc, int iMode);
+__declspec(dllimport) int   __stdcall SetMapMode(HDC, int);
+__declspec(dllimport) HMETAFILE   __stdcall SetMetaFileBitsEx(UINT, const BYTE *);
+__declspec(dllimport) UINT  __stdcall SetPaletteEntries(HPALETTE, UINT, UINT, const PALETTEENTRY *);
+__declspec(dllimport) COLORREF __stdcall SetPixel(HDC, int, int, COLORREF);
+__declspec(dllimport) BOOL   __stdcall SetPixelV(HDC, int, int, COLORREF);
+__declspec(dllimport) BOOL  __stdcall SetPixelFormat(HDC, int, const PIXELFORMATDESCRIPTOR *);
+__declspec(dllimport) int   __stdcall SetPolyFillMode(HDC, int);
+__declspec(dllimport) BOOL   __stdcall StretchBlt(HDC, int, int, int, int, HDC, int, int, int, int, DWORD);
+__declspec(dllimport) BOOL   __stdcall SetRectRgn(HRGN, int, int, int, int);
+__declspec(dllimport) int   __stdcall StretchDIBits(HDC, int, int, int, int, int, int, int, int, const
+        void *, const BITMAPINFO *, UINT, DWORD);
+__declspec(dllimport) int   __stdcall SetROP2(HDC, int);
+__declspec(dllimport) int   __stdcall SetStretchBltMode(HDC, int);
+__declspec(dllimport) UINT  __stdcall SetSystemPaletteUse(HDC, UINT);
+__declspec(dllimport) int   __stdcall SetTextCharacterExtra(HDC, int);
+__declspec(dllimport) COLORREF __stdcall SetTextColor(HDC, COLORREF);
+__declspec(dllimport) UINT  __stdcall SetTextAlign(HDC, UINT);
+__declspec(dllimport) BOOL  __stdcall SetTextJustification(HDC, int, int);
+__declspec(dllimport) BOOL  __stdcall UpdateColors(HDC);
+
+
+
+
+
+
+
+
+typedef USHORT COLOR16;
+
+typedef struct _TRIVERTEX
+{
+    LONG    x;
+    LONG    y;
+    COLOR16 Red;
+    COLOR16 Green;
+    COLOR16 Blue;
+    COLOR16 Alpha;
+}TRIVERTEX,*PTRIVERTEX,*LPTRIVERTEX;
+
+typedef struct _GRADIENT_TRIANGLE
+{
+    ULONG Vertex1;
+    ULONG Vertex2;
+    ULONG Vertex3;
+} GRADIENT_TRIANGLE,*PGRADIENT_TRIANGLE,*LPGRADIENT_TRIANGLE;
+
+typedef struct _GRADIENT_RECT
+{
+    ULONG UpperLeft;
+    ULONG LowerRight;
+}GRADIENT_RECT,*PGRADIENT_RECT,*LPGRADIENT_RECT;
+
+typedef struct _BLENDFUNCTION
+{
+    BYTE   BlendOp;
+    BYTE   BlendFlags;
+    BYTE   SourceConstantAlpha;
+    BYTE   AlphaFormat;
+}BLENDFUNCTION,*PBLENDFUNCTION;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall AlphaBlend(HDC,int,int,int,int,HDC,int,int,int,int,BLENDFUNCTION);
+
+__declspec(dllimport) BOOL  __stdcall AlphaDIBBlend(HDC,int,int,int,int,const void *,
+        const BITMAPINFO *,UINT,int,int,int,int,BLENDFUNCTION);
+
+__declspec(dllimport) BOOL  __stdcall TransparentBlt(HDC,int,int,int,int,HDC,int,int,int,int,UINT);
+
+__declspec(dllimport) BOOL  __stdcall TransparentDIBits(HDC,int,int,int,int,const void *,
+        const BITMAPINFO *,UINT,int,int,int,int,UINT);
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall GradientFill(HDC,PTRIVERTEX,ULONG,PVOID,ULONG,ULONG);
+
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall PlayMetaFileRecord(HDC, LPHANDLETABLE, LPMETARECORD, UINT);
+typedef int (__stdcall* MFENUMPROC)(HDC, HANDLETABLE *, METARECORD *, int, LPARAM);
+__declspec(dllimport) BOOL  __stdcall EnumMetaFile(HDC, HMETAFILE, MFENUMPROC, LPARAM);
+
+typedef int (__stdcall* ENHMFENUMPROC)(HDC, HANDLETABLE *, const ENHMETARECORD *, int, LPARAM);
+
+
+
+__declspec(dllimport) HENHMETAFILE __stdcall CloseEnhMetaFile(HDC);
+__declspec(dllimport) HENHMETAFILE __stdcall CopyEnhMetaFileA(HENHMETAFILE, LPCSTR);
+__declspec(dllimport) HENHMETAFILE __stdcall CopyEnhMetaFileW(HENHMETAFILE, LPCWSTR);
+
+
+
+
+
+__declspec(dllimport) HDC   __stdcall CreateEnhMetaFileA(HDC, LPCSTR, const RECT *, LPCSTR);
+__declspec(dllimport) HDC   __stdcall CreateEnhMetaFileW(HDC, LPCWSTR, const RECT *, LPCWSTR);
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall DeleteEnhMetaFile(HENHMETAFILE);
+__declspec(dllimport) BOOL  __stdcall EnumEnhMetaFile(HDC, HENHMETAFILE, ENHMFENUMPROC,
+        LPVOID, const RECT *);
+__declspec(dllimport) HENHMETAFILE  __stdcall GetEnhMetaFileA(LPCSTR);
+__declspec(dllimport) HENHMETAFILE  __stdcall GetEnhMetaFileW(LPCWSTR);
+
+
+
+
+
+__declspec(dllimport) UINT  __stdcall GetEnhMetaFileBits(HENHMETAFILE, UINT, LPBYTE);
+__declspec(dllimport) UINT  __stdcall GetEnhMetaFileDescriptionA(HENHMETAFILE, UINT, LPSTR );
+__declspec(dllimport) UINT  __stdcall GetEnhMetaFileDescriptionW(HENHMETAFILE, UINT, LPWSTR );
+
+
+
+
+
+__declspec(dllimport) UINT  __stdcall GetEnhMetaFileHeader(HENHMETAFILE, UINT, LPENHMETAHEADER );
+__declspec(dllimport) UINT  __stdcall GetEnhMetaFilePaletteEntries(HENHMETAFILE, UINT, LPPALETTEENTRY );
+__declspec(dllimport) UINT  __stdcall GetEnhMetaFilePixelFormat(HENHMETAFILE, UINT,
+                                                 PIXELFORMATDESCRIPTOR *);
+__declspec(dllimport) UINT  __stdcall GetWinMetaFileBits(HENHMETAFILE, UINT, LPBYTE, INT, HDC);
+__declspec(dllimport) BOOL  __stdcall PlayEnhMetaFile(HDC, HENHMETAFILE, const RECT *);
+__declspec(dllimport) BOOL  __stdcall PlayEnhMetaFileRecord(HDC, LPHANDLETABLE, const ENHMETARECORD *, UINT);
+__declspec(dllimport) HENHMETAFILE  __stdcall SetEnhMetaFileBits(UINT, const BYTE *);
+__declspec(dllimport) HENHMETAFILE  __stdcall SetWinMetaFileBits(UINT, const BYTE *, HDC, const METAFILEPICT *);
+__declspec(dllimport) BOOL  __stdcall GdiComment(HDC, UINT, const BYTE *);
+
+
+
+
+
+__declspec(dllimport) BOOL __stdcall GetTextMetricsA(HDC, LPTEXTMETRICA);
+__declspec(dllimport) BOOL __stdcall GetTextMetricsW(HDC, LPTEXTMETRICW);
+
+
+
+
+
+
+
+
+
+
+typedef struct tagDIBSECTION {
+    BITMAP              dsBm;
+    BITMAPINFOHEADER    dsBmih;
+    DWORD               dsBitfields[3];
+    HANDLE              dshSection;
+    DWORD               dsOffset;
+} DIBSECTION,  *LPDIBSECTION, *PDIBSECTION;
+
+__declspec(dllimport) BOOL __stdcall AngleArc(HDC, int, int, DWORD, FLOAT, FLOAT);
+__declspec(dllimport) BOOL __stdcall PolyPolyline(HDC, const POINT *, const DWORD *, DWORD);
+__declspec(dllimport) BOOL __stdcall GetWorldTransform(HDC, LPXFORM);
+__declspec(dllimport) BOOL __stdcall SetWorldTransform(HDC, const XFORM *);
+__declspec(dllimport) BOOL __stdcall ModifyWorldTransform(HDC, const XFORM *, DWORD);
+__declspec(dllimport) BOOL __stdcall CombineTransform(LPXFORM, const XFORM *, const XFORM *);
+__declspec(dllimport) HBITMAP __stdcall CreateDIBSection(HDC, const BITMAPINFO *, UINT, void **, HANDLE, DWORD);
+__declspec(dllimport) UINT __stdcall GetDIBColorTable(HDC, UINT, UINT, RGBQUAD *);
+__declspec(dllimport) UINT __stdcall SetDIBColorTable(HDC, UINT, UINT, const RGBQUAD *);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct  tagCOLORADJUSTMENT {
+    WORD   caSize;
+    WORD   caFlags;
+    WORD   caIlluminantIndex;
+    WORD   caRedGamma;
+    WORD   caGreenGamma;
+    WORD   caBlueGamma;
+    WORD   caReferenceBlack;
+    WORD   caReferenceWhite;
+    SHORT  caContrast;
+    SHORT  caBrightness;
+    SHORT  caColorfulness;
+    SHORT  caRedGreenTint;
+} COLORADJUSTMENT, *PCOLORADJUSTMENT,  *LPCOLORADJUSTMENT;
+
+__declspec(dllimport) BOOL __stdcall SetColorAdjustment(HDC, const COLORADJUSTMENT *);
+__declspec(dllimport) BOOL __stdcall GetColorAdjustment(HDC, LPCOLORADJUSTMENT);
+__declspec(dllimport) HPALETTE __stdcall CreateHalftonePalette(HDC);
+
+
+typedef BOOL (__stdcall* ABORTPROC)(HDC, int);
+
+
+
+
+typedef struct _DOCINFOA {
+    int     cbSize;
+    LPCSTR   lpszDocName;
+    LPCSTR   lpszOutput;
+
+    LPCSTR   lpszDatatype;
+    DWORD    fwType;
+
+} DOCINFOA, *LPDOCINFOA;
+typedef struct _DOCINFOW {
+    int     cbSize;
+    LPCWSTR  lpszDocName;
+    LPCWSTR  lpszOutput;
+
+    LPCWSTR  lpszDatatype;
+    DWORD    fwType;
+
+} DOCINFOW, *LPDOCINFOW;
+
+
+
+
+typedef DOCINFOA DOCINFO;
+typedef LPDOCINFOA LPDOCINFO;
+
+
+
+
+
+
+
+__declspec(dllimport) int __stdcall StartDocA(HDC, const DOCINFOA *);
+__declspec(dllimport) int __stdcall StartDocW(HDC, const DOCINFOW *);
+
+
+
+
+
+__declspec(dllimport) int __stdcall EndDoc(HDC);
+__declspec(dllimport) int __stdcall StartPage(HDC);
+__declspec(dllimport) int __stdcall EndPage(HDC);
+__declspec(dllimport) int __stdcall AbortDoc(HDC);
+__declspec(dllimport) int __stdcall SetAbortProc(HDC, ABORTPROC);
+
+__declspec(dllimport) BOOL __stdcall AbortPath(HDC);
+__declspec(dllimport) BOOL __stdcall ArcTo(HDC, int, int, int, int, int, int,int, int);
+__declspec(dllimport) BOOL __stdcall BeginPath(HDC);
+__declspec(dllimport) BOOL __stdcall CloseFigure(HDC);
+__declspec(dllimport) BOOL __stdcall EndPath(HDC);
+__declspec(dllimport) BOOL __stdcall FillPath(HDC);
+__declspec(dllimport) BOOL __stdcall FlattenPath(HDC);
+__declspec(dllimport) int  __stdcall GetPath(HDC, LPPOINT, LPBYTE, int);
+__declspec(dllimport) HRGN __stdcall PathToRegion(HDC);
+__declspec(dllimport) BOOL __stdcall PolyDraw(HDC, const POINT *, const BYTE *, int);
+__declspec(dllimport) BOOL __stdcall SelectClipPath(HDC, int);
+__declspec(dllimport) int  __stdcall SetArcDirection(HDC, int);
+__declspec(dllimport) BOOL __stdcall SetMiterLimit(HDC, FLOAT, PFLOAT);
+__declspec(dllimport) BOOL __stdcall StrokeAndFillPath(HDC);
+__declspec(dllimport) BOOL __stdcall StrokePath(HDC);
+__declspec(dllimport) BOOL __stdcall WidenPath(HDC);
+__declspec(dllimport) HPEN __stdcall ExtCreatePen(DWORD, DWORD, const LOGBRUSH *, DWORD, const DWORD *);
+__declspec(dllimport) BOOL __stdcall GetMiterLimit(HDC, PFLOAT);
+__declspec(dllimport) int  __stdcall GetArcDirection(HDC);
+
+__declspec(dllimport) int   __stdcall GetObjectA(HGDIOBJ, int, LPVOID);
+__declspec(dllimport) int   __stdcall GetObjectW(HGDIOBJ, int, LPVOID);
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall MoveToEx(HDC, int, int, LPPOINT);
+__declspec(dllimport) BOOL  __stdcall TextOutA(HDC, int, int, LPCSTR, int);
+__declspec(dllimport) BOOL  __stdcall TextOutW(HDC, int, int, LPCWSTR, int);
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall ExtTextOutA(HDC, int, int, UINT, const RECT *,LPCSTR, UINT, const INT *);
+__declspec(dllimport) BOOL  __stdcall ExtTextOutW(HDC, int, int, UINT, const RECT *,LPCWSTR, UINT, const INT *);
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall PolyTextOutA(HDC, const POLYTEXTA *, int);
+__declspec(dllimport) BOOL  __stdcall PolyTextOutW(HDC, const POLYTEXTW *, int);
+
+
+
+
+
+
+__declspec(dllimport) HRGN  __stdcall CreatePolygonRgn(const POINT *, int, int);
+__declspec(dllimport) BOOL  __stdcall DPtoLP(HDC, LPPOINT, int);
+__declspec(dllimport) BOOL  __stdcall LPtoDP(HDC, LPPOINT, int);
+__declspec(dllimport) BOOL  __stdcall Polygon(HDC, const POINT *, int);
+__declspec(dllimport) BOOL  __stdcall Polyline(HDC, const POINT *, int);
+
+__declspec(dllimport) BOOL  __stdcall PolyBezier(HDC, const POINT *, DWORD);
+__declspec(dllimport) BOOL  __stdcall PolyBezierTo(HDC, const POINT *, DWORD);
+__declspec(dllimport) BOOL  __stdcall PolylineTo(HDC, const POINT *, DWORD);
+
+__declspec(dllimport) BOOL  __stdcall SetViewportExtEx(HDC, int, int, LPSIZE);
+__declspec(dllimport) BOOL  __stdcall SetViewportOrgEx(HDC, int, int, LPPOINT);
+__declspec(dllimport) BOOL  __stdcall SetWindowExtEx(HDC, int, int, LPSIZE);
+__declspec(dllimport) BOOL  __stdcall SetWindowOrgEx(HDC, int, int, LPPOINT);
+
+__declspec(dllimport) BOOL  __stdcall OffsetViewportOrgEx(HDC, int, int, LPPOINT);
+__declspec(dllimport) BOOL  __stdcall OffsetWindowOrgEx(HDC, int, int, LPPOINT);
+__declspec(dllimport) BOOL  __stdcall ScaleViewportExtEx(HDC, int, int, int, int, LPSIZE);
+__declspec(dllimport) BOOL  __stdcall ScaleWindowExtEx(HDC, int, int, int, int, LPSIZE);
+__declspec(dllimport) BOOL  __stdcall SetBitmapDimensionEx(HBITMAP, int, int, LPSIZE);
+__declspec(dllimport) BOOL  __stdcall SetBrushOrgEx(HDC, int, int, LPPOINT);
+
+__declspec(dllimport) int   __stdcall GetTextFaceA(HDC, int, LPSTR);
+__declspec(dllimport) int   __stdcall GetTextFaceW(HDC, int, LPWSTR);
+
+
+
+
+
+
+
+
+typedef struct tagKERNINGPAIR {
+   WORD wFirst;
+   WORD wSecond;
+   int  iKernAmount;
+} KERNINGPAIR, *LPKERNINGPAIR;
+
+__declspec(dllimport) DWORD __stdcall GetKerningPairsA(HDC, DWORD, LPKERNINGPAIR);
+__declspec(dllimport) DWORD __stdcall GetKerningPairsW(HDC, DWORD, LPKERNINGPAIR);
+
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall GetDCOrgEx(HDC,LPPOINT);
+__declspec(dllimport) BOOL  __stdcall FixBrushOrgEx(HDC,int,int,LPPOINT);
+__declspec(dllimport) BOOL  __stdcall UnrealizeObject(HGDIOBJ);
+
+__declspec(dllimport) BOOL  __stdcall GdiFlush();
+__declspec(dllimport) DWORD __stdcall GdiSetBatchLimit(DWORD);
+__declspec(dllimport) DWORD __stdcall GdiGetBatchLimit();
+
+
+
+
+
+
+
+
+
+typedef int (__stdcall* ICMENUMPROCA)(LPSTR, LPARAM);
+typedef int (__stdcall* ICMENUMPROCW)(LPWSTR, LPARAM);
+
+
+
+
+
+
+__declspec(dllimport) int         __stdcall SetICMMode(HDC, int);
+__declspec(dllimport) BOOL        __stdcall CheckColorsInGamut(HDC,LPVOID,LPVOID,DWORD);
+__declspec(dllimport) HCOLORSPACE __stdcall GetColorSpace(HDC);
+__declspec(dllimport) BOOL        __stdcall GetLogColorSpaceA(HCOLORSPACE,LPLOGCOLORSPACEA,DWORD);
+__declspec(dllimport) BOOL        __stdcall GetLogColorSpaceW(HCOLORSPACE,LPLOGCOLORSPACEW,DWORD);
+
+
+
+
+
+__declspec(dllimport) HCOLORSPACE __stdcall CreateColorSpaceA(LPLOGCOLORSPACEA);
+__declspec(dllimport) HCOLORSPACE __stdcall CreateColorSpaceW(LPLOGCOLORSPACEW);
+
+
+
+
+
+__declspec(dllimport) HCOLORSPACE __stdcall SetColorSpace(HDC,HCOLORSPACE);
+__declspec(dllimport) BOOL        __stdcall DeleteColorSpace(HCOLORSPACE);
+__declspec(dllimport) BOOL        __stdcall GetICMProfileA(HDC,LPDWORD,LPSTR);
+__declspec(dllimport) BOOL        __stdcall GetICMProfileW(HDC,LPDWORD,LPWSTR);
+
+
+
+
+
+__declspec(dllimport) BOOL        __stdcall SetICMProfileA(HDC,LPSTR);
+__declspec(dllimport) BOOL        __stdcall SetICMProfileW(HDC,LPWSTR);
+
+
+
+
+
+__declspec(dllimport) BOOL        __stdcall GetDeviceGammaRamp(HDC,LPVOID);
+__declspec(dllimport) BOOL        __stdcall SetDeviceGammaRamp(HDC,LPVOID);
+__declspec(dllimport) BOOL        __stdcall ColorMatchToTarget(HDC,HDC,DWORD);
+__declspec(dllimport) int         __stdcall EnumICMProfilesA(HDC,ICMENUMPROCA,LPARAM);
+__declspec(dllimport) int         __stdcall EnumICMProfilesW(HDC,ICMENUMPROCW,LPARAM);
+
+
+
+
+
+__declspec(dllimport) BOOL        __stdcall UpdateICMRegKeyA(DWORD,LPSTR,LPSTR,UINT);
+__declspec(dllimport) BOOL        __stdcall UpdateICMRegKeyW(DWORD,LPWSTR,LPWSTR,UINT);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagEMR
+{
+    DWORD   iType;              
+    DWORD   nSize;              
+                                
+} EMR, *PEMR;
+
+
+
+typedef struct tagEMRTEXT
+{
+    POINTL  ptlReference;
+    DWORD   nChars;
+    DWORD   offString;          
+    DWORD   fOptions;
+    RECTL   rcl;
+    DWORD   offDx;              
+                                
+} EMRTEXT, *PEMRTEXT;
+
+
+
+typedef struct tagABORTPATH
+{
+    EMR     emr;
+} EMRABORTPATH,      *PEMRABORTPATH,
+  EMRBEGINPATH,      *PEMRBEGINPATH,
+  EMRENDPATH,        *PEMRENDPATH,
+  EMRCLOSEFIGURE,    *PEMRCLOSEFIGURE,
+  EMRFLATTENPATH,    *PEMRFLATTENPATH,
+  EMRWIDENPATH,      *PEMRWIDENPATH,
+  EMRSETMETARGN,     *PEMRSETMETARGN,
+  EMRSAVEDC,         *PEMRSAVEDC,
+  EMRREALIZEPALETTE, *PEMRREALIZEPALETTE;
+
+typedef struct tagEMRSELECTCLIPPATH
+{
+    EMR     emr;
+    DWORD   iMode;
+} EMRSELECTCLIPPATH,    *PEMRSELECTCLIPPATH,
+  EMRSETBKMODE,         *PEMRSETBKMODE,
+  EMRSETMAPMODE,        *PEMRSETMAPMODE,
+  EMRSETPOLYFILLMODE,   *PEMRSETPOLYFILLMODE,
+  EMRSETROP2,           *PEMRSETROP2,
+  EMRSETSTRETCHBLTMODE, *PEMRSETSTRETCHBLTMODE,
+  EMRSETICMMODE,        *PEMRSETICMMODE,
+  EMRSETTEXTALIGN,      *PEMRSETTEXTALIGN;
+
+typedef struct tagEMRSETMITERLIMIT
+{
+    EMR     emr;
+    FLOAT   eMiterLimit;
+} EMRSETMITERLIMIT, *PEMRSETMITERLIMIT;
+
+typedef struct tagEMRRESTOREDC
+{
+    EMR     emr;
+    LONG    iRelative;          
+} EMRRESTOREDC, *PEMRRESTOREDC;
+
+typedef struct tagEMRSETARCDIRECTION
+{
+    EMR     emr;
+    DWORD   iArcDirection;      
+                                
+} EMRSETARCDIRECTION, *PEMRSETARCDIRECTION;
+
+typedef struct tagEMRSETMAPPERFLAGS
+{
+    EMR     emr;
+    DWORD   dwFlags;
+} EMRSETMAPPERFLAGS, *PEMRSETMAPPERFLAGS;
+
+typedef struct tagEMRSETTEXTCOLOR
+{
+    EMR     emr;
+    COLORREF crColor;
+} EMRSETBKCOLOR,   *PEMRSETBKCOLOR,
+  EMRSETTEXTCOLOR, *PEMRSETTEXTCOLOR;
+
+typedef struct tagEMRSELECTOBJECT
+{
+    EMR     emr;
+    DWORD   ihObject;           
+} EMRSELECTOBJECT, *PEMRSELECTOBJECT,
+  EMRDELETEOBJECT, *PEMRDELETEOBJECT;
+
+
+typedef struct tagEMRSELECTCOLORSPACE
+{
+    EMR     emr;
+    DWORD   ihCS;               
+} EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE,
+  EMRDELETECOLORSPACE, *PEMRDELETECOLORSPACE;
+
+
+typedef struct tagEMRSELECTPALETTE
+{
+    EMR     emr;
+    DWORD   ihPal;              
+} EMRSELECTPALETTE, *PEMRSELECTPALETTE;
+
+typedef struct tagEMRRESIZEPALETTE
+{
+    EMR     emr;
+    DWORD   ihPal;              
+    DWORD   cEntries;
+} EMRRESIZEPALETTE, *PEMRRESIZEPALETTE;
+
+typedef struct tagEMRSETPALETTEENTRIES
+{
+    EMR     emr;
+    DWORD   ihPal;              
+    DWORD   iStart;
+    DWORD   cEntries;
+    PALETTEENTRY aPalEntries[1];
+} EMRSETPALETTEENTRIES, *PEMRSETPALETTEENTRIES;
+
+typedef struct tagEMRSETCOLORADJUSTMENT
+{
+    EMR     emr;
+    COLORADJUSTMENT ColorAdjustment;
+} EMRSETCOLORADJUSTMENT, *PEMRSETCOLORADJUSTMENT;
+
+typedef struct tagEMRGDICOMMENT
+{
+    EMR     emr;
+    DWORD   cbData;             
+    BYTE    Data[1];
+} EMRGDICOMMENT, *PEMRGDICOMMENT;
+
+typedef struct tagEMREOF
+{
+    EMR     emr;
+    DWORD   nPalEntries;        
+    DWORD   offPalEntries;      
+    DWORD   nSizeLast;          
+                                
+                                
+} EMREOF, *PEMREOF;
+
+typedef struct tagEMRLINETO
+{
+    EMR     emr;
+    POINTL  ptl;
+} EMRLINETO,   *PEMRLINETO,
+  EMRMOVETOEX, *PEMRMOVETOEX;
+
+typedef struct tagEMROFFSETCLIPRGN
+{
+    EMR     emr;
+    POINTL  ptlOffset;
+} EMROFFSETCLIPRGN, *PEMROFFSETCLIPRGN;
+
+typedef struct tagEMRFILLPATH
+{
+    EMR     emr;
+    RECTL   rclBounds;          
+} EMRFILLPATH,          *PEMRFILLPATH,
+  EMRSTROKEANDFILLPATH, *PEMRSTROKEANDFILLPATH,
+  EMRSTROKEPATH,        *PEMRSTROKEPATH;
+
+typedef struct tagEMREXCLUDECLIPRECT
+{
+    EMR     emr;
+    RECTL   rclClip;
+} EMREXCLUDECLIPRECT,   *PEMREXCLUDECLIPRECT,
+  EMRINTERSECTCLIPRECT, *PEMRINTERSECTCLIPRECT;
+
+typedef struct tagEMRSETVIEWPORTORGEX
+{
+    EMR     emr;
+    POINTL  ptlOrigin;
+} EMRSETVIEWPORTORGEX, *PEMRSETVIEWPORTORGEX,
+  EMRSETWINDOWORGEX,   *PEMRSETWINDOWORGEX,
+  EMRSETBRUSHORGEX,    *PEMRSETBRUSHORGEX;
+
+typedef struct tagEMRSETVIEWPORTEXTEX
+{
+    EMR     emr;
+    SIZEL   szlExtent;
+} EMRSETVIEWPORTEXTEX, *PEMRSETVIEWPORTEXTEX,
+  EMRSETWINDOWEXTEX,   *PEMRSETWINDOWEXTEX;
+
+typedef struct tagEMRSCALEVIEWPORTEXTEX
+{
+    EMR     emr;
+    LONG    xNum;
+    LONG    xDenom;
+    LONG    yNum;
+    LONG    yDenom;
+} EMRSCALEVIEWPORTEXTEX, *PEMRSCALEVIEWPORTEXTEX,
+  EMRSCALEWINDOWEXTEX,   *PEMRSCALEWINDOWEXTEX;
+
+typedef struct tagEMRSETWORLDTRANSFORM
+{
+    EMR     emr;
+    XFORM   xform;
+} EMRSETWORLDTRANSFORM, *PEMRSETWORLDTRANSFORM;
+
+typedef struct tagEMRMODIFYWORLDTRANSFORM
+{
+    EMR     emr;
+    XFORM   xform;
+    DWORD   iMode;
+} EMRMODIFYWORLDTRANSFORM, *PEMRMODIFYWORLDTRANSFORM;
+
+typedef struct tagEMRSETPIXELV
+{
+    EMR     emr;
+    POINTL  ptlPixel;
+    COLORREF crColor;
+} EMRSETPIXELV, *PEMRSETPIXELV;
+
+typedef struct tagEMREXTFLOODFILL
+{
+    EMR     emr;
+    POINTL  ptlStart;
+    COLORREF crColor;
+    DWORD   iMode;
+} EMREXTFLOODFILL, *PEMREXTFLOODFILL;
+
+typedef struct tagEMRELLIPSE
+{
+    EMR     emr;
+    RECTL   rclBox;             
+} EMRELLIPSE,  *PEMRELLIPSE,
+  EMRRECTANGLE, *PEMRRECTANGLE;
+
+typedef struct tagEMRROUNDRECT
+{
+    EMR     emr;
+    RECTL   rclBox;             
+    SIZEL   szlCorner;
+} EMRROUNDRECT, *PEMRROUNDRECT;
+
+typedef struct tagEMRARC
+{
+    EMR     emr;
+    RECTL   rclBox;             
+    POINTL  ptlStart;
+    POINTL  ptlEnd;
+} EMRARC,   *PEMRARC,
+  EMRARCTO, *PEMRARCTO,
+  EMRCHORD, *PEMRCHORD,
+  EMRPIE,   *PEMRPIE;
+
+typedef struct tagEMRANGLEARC
+{
+    EMR     emr;
+    POINTL  ptlCenter;
+    DWORD   nRadius;
+    FLOAT   eStartAngle;
+    FLOAT   eSweepAngle;
+} EMRANGLEARC, *PEMRANGLEARC;
+
+typedef struct tagEMRPOLYLINE
+{
+    EMR     emr;
+    RECTL   rclBounds;          
+    DWORD   cptl;
+    POINTL  aptl[1];
+} EMRPOLYLINE,     *PEMRPOLYLINE,
+  EMRPOLYBEZIER,   *PEMRPOLYBEZIER,
+  EMRPOLYGON,      *PEMRPOLYGON,
+  EMRPOLYBEZIERTO, *PEMRPOLYBEZIERTO,
+  EMRPOLYLINETO,   *PEMRPOLYLINETO;
+
+typedef struct tagEMRPOLYLINE16
+{
+    EMR     emr;
+    RECTL   rclBounds;          
+    DWORD   cpts;
+    POINTS  apts[1];
+} EMRPOLYLINE16,     *PEMRPOLYLINE16,
+  EMRPOLYBEZIER16,   *PEMRPOLYBEZIER16,
+  EMRPOLYGON16,      *PEMRPOLYGON16,
+  EMRPOLYBEZIERTO16, *PEMRPOLYBEZIERTO16,
+  EMRPOLYLINETO16,   *PEMRPOLYLINETO16;
+
+typedef struct tagEMRPOLYDRAW
+{
+    EMR     emr;
+    RECTL   rclBounds;          
+    DWORD   cptl;               
+    POINTL  aptl[1];            
+    BYTE    abTypes[1];         
+} EMRPOLYDRAW, *PEMRPOLYDRAW;
+
+typedef struct tagEMRPOLYDRAW16
+{
+    EMR     emr;
+    RECTL   rclBounds;          
+    DWORD   cpts;               
+    POINTS  apts[1];            
+    BYTE    abTypes[1];         
+} EMRPOLYDRAW16, *PEMRPOLYDRAW16;
+
+typedef struct tagEMRPOLYPOLYLINE
+{
+    EMR     emr;
+    RECTL   rclBounds;          
+    DWORD   nPolys;             
+    DWORD   cptl;               
+    DWORD   aPolyCounts[1];     
+    POINTL  aptl[1];            
+} EMRPOLYPOLYLINE, *PEMRPOLYPOLYLINE,
+  EMRPOLYPOLYGON,  *PEMRPOLYPOLYGON;
+
+typedef struct tagEMRPOLYPOLYLINE16
+{
+    EMR     emr;
+    RECTL   rclBounds;          
+    DWORD   nPolys;             
+    DWORD   cpts;               
+    DWORD   aPolyCounts[1];     
+    POINTS  apts[1];            
+} EMRPOLYPOLYLINE16, *PEMRPOLYPOLYLINE16,
+  EMRPOLYPOLYGON16,  *PEMRPOLYPOLYGON16;
+
+typedef struct tagEMRINVERTRGN
+{
+    EMR     emr;
+    RECTL   rclBounds;          
+    DWORD   cbRgnData;          
+    BYTE    RgnData[1];
+} EMRINVERTRGN, *PEMRINVERTRGN,
+  EMRPAINTRGN,  *PEMRPAINTRGN;
+
+typedef struct tagEMRFILLRGN
+{
+    EMR     emr;
+    RECTL   rclBounds;          
+    DWORD   cbRgnData;          
+    DWORD   ihBrush;            
+    BYTE    RgnData[1];
+} EMRFILLRGN, *PEMRFILLRGN;
+
+typedef struct tagEMRFRAMERGN
+{
+    EMR     emr;
+    RECTL   rclBounds;          
+    DWORD   cbRgnData;          
+    DWORD   ihBrush;            
+    SIZEL   szlStroke;
+    BYTE    RgnData[1];
+} EMRFRAMERGN, *PEMRFRAMERGN;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagEMREXTSELECTCLIPRGN
+{
+    EMR     emr;
+    DWORD   cbRgnData;          
+    DWORD   iMode;
+    BYTE    RgnData[1];
+} EMREXTSELECTCLIPRGN, *PEMREXTSELECTCLIPRGN;
+
+typedef struct tagEMREXTTEXTOUTA
+{
+    EMR     emr;
+    RECTL   rclBounds;          
+    DWORD   iGraphicsMode;      
+    FLOAT   exScale;            
+    FLOAT   eyScale;            
+    EMRTEXT emrtext;            
+                                
+} EMREXTTEXTOUTA, *PEMREXTTEXTOUTA,
+  EMREXTTEXTOUTW, *PEMREXTTEXTOUTW;
+
+typedef struct tagEMRPOLYTEXTOUTA
+{
+    EMR     emr;
+    RECTL   rclBounds;          
+    DWORD   iGraphicsMode;      
+    FLOAT   exScale;            
+    FLOAT   eyScale;            
+    LONG    cStrings;
+    EMRTEXT aemrtext[1];        
+                                
+} EMRPOLYTEXTOUTA, *PEMRPOLYTEXTOUTA,
+  EMRPOLYTEXTOUTW, *PEMRPOLYTEXTOUTW;
+
+typedef struct tagEMRBITBLT
+{
+    EMR     emr;
+    RECTL   rclBounds;          
+    LONG    xDest;
+    LONG    yDest;
+    LONG    cxDest;
+    LONG    cyDest;
+    DWORD   dwRop;
+    LONG    xSrc;
+    LONG    ySrc;
+    XFORM   xformSrc;           
+    COLORREF crBkColorSrc;      
+    DWORD   iUsageSrc;          
+                                
+    DWORD   offBmiSrc;          
+    DWORD   cbBmiSrc;           
+    DWORD   offBitsSrc;         
+    DWORD   cbBitsSrc;          
+} EMRBITBLT, *PEMRBITBLT;
+
+typedef struct tagEMRSTRETCHBLT
+{
+    EMR     emr;
+    RECTL   rclBounds;          
+    LONG    xDest;
+    LONG    yDest;
+    LONG    cxDest;
+    LONG    cyDest;
+    DWORD   dwRop;
+    LONG    xSrc;
+    LONG    ySrc;
+    XFORM   xformSrc;           
+    COLORREF crBkColorSrc;      
+    DWORD   iUsageSrc;          
+                                
+    DWORD   offBmiSrc;          
+    DWORD   cbBmiSrc;           
+    DWORD   offBitsSrc;         
+    DWORD   cbBitsSrc;          
+    LONG    cxSrc;
+    LONG    cySrc;
+} EMRSTRETCHBLT, *PEMRSTRETCHBLT;
+
+typedef struct tagEMRMASKBLT
+{
+    EMR     emr;
+    RECTL   rclBounds;          
+    LONG    xDest;
+    LONG    yDest;
+    LONG    cxDest;
+    LONG    cyDest;
+    DWORD   dwRop;
+    LONG    xSrc;
+    LONG    ySrc;
+    XFORM   xformSrc;           
+    COLORREF crBkColorSrc;      
+    DWORD   iUsageSrc;          
+                                
+    DWORD   offBmiSrc;          
+    DWORD   cbBmiSrc;           
+    DWORD   offBitsSrc;         
+    DWORD   cbBitsSrc;          
+    LONG    xMask;
+    LONG    yMask;
+    DWORD   iUsageMask;         
+    DWORD   offBmiMask;         
+    DWORD   cbBmiMask;          
+    DWORD   offBitsMask;        
+    DWORD   cbBitsMask;         
+} EMRMASKBLT, *PEMRMASKBLT;
+
+typedef struct tagEMRPLGBLT
+{
+    EMR     emr;
+    RECTL   rclBounds;          
+    POINTL  aptlDest[3];
+    LONG    xSrc;
+    LONG    ySrc;
+    LONG    cxSrc;
+    LONG    cySrc;
+    XFORM   xformSrc;           
+    COLORREF crBkColorSrc;      
+    DWORD   iUsageSrc;          
+                                
+    DWORD   offBmiSrc;          
+    DWORD   cbBmiSrc;           
+    DWORD   offBitsSrc;         
+    DWORD   cbBitsSrc;          
+    LONG    xMask;
+    LONG    yMask;
+    DWORD   iUsageMask;         
+    DWORD   offBmiMask;         
+    DWORD   cbBmiMask;          
+    DWORD   offBitsMask;        
+    DWORD   cbBitsMask;         
+} EMRPLGBLT, *PEMRPLGBLT;
+
+typedef struct tagEMRSETDIBITSTODEVICE
+{
+    EMR     emr;
+    RECTL   rclBounds;          
+    LONG    xDest;
+    LONG    yDest;
+    LONG    xSrc;
+    LONG    ySrc;
+    LONG    cxSrc;
+    LONG    cySrc;
+    DWORD   offBmiSrc;          
+    DWORD   cbBmiSrc;           
+    DWORD   offBitsSrc;         
+    DWORD   cbBitsSrc;          
+    DWORD   iUsageSrc;          
+    DWORD   iStartScan;
+    DWORD   cScans;
+} EMRSETDIBITSTODEVICE, *PEMRSETDIBITSTODEVICE;
+
+typedef struct tagEMRSTRETCHDIBITS
+{
+    EMR     emr;
+    RECTL   rclBounds;          
+    LONG    xDest;
+    LONG    yDest;
+    LONG    xSrc;
+    LONG    ySrc;
+    LONG    cxSrc;
+    LONG    cySrc;
+    DWORD   offBmiSrc;          
+    DWORD   cbBmiSrc;           
+    DWORD   offBitsSrc;         
+    DWORD   cbBitsSrc;          
+    DWORD   iUsageSrc;          
+    DWORD   dwRop;
+    LONG    cxDest;
+    LONG    cyDest;
+} EMRSTRETCHDIBITS, *PEMRSTRETCHDIBITS;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagEMREXTCREATEFONTINDIRECTW
+{
+    EMR     emr;
+    DWORD   ihFont;             
+    EXTLOGFONTW elfw;
+} EMREXTCREATEFONTINDIRECTW, *PEMREXTCREATEFONTINDIRECTW;
+
+
+typedef struct tagEMRCREATEPALETTE
+{
+    EMR     emr;
+    DWORD   ihPal;              
+    LOGPALETTE lgpl;            
+                                
+} EMRCREATEPALETTE, *PEMRCREATEPALETTE;
+
+
+
+typedef struct tagEMRCREATECOLORSPACE
+{
+    EMR             emr;
+    DWORD           ihCS;       
+    LOGCOLORSPACEW  lcs;
+} EMRCREATECOLORSPACE, *PEMRCREATECOLORSPACE;
+
+
+
+typedef struct tagEMRCREATEPEN
+{
+    EMR     emr;
+    DWORD   ihPen;              
+    LOGPEN  lopn;
+} EMRCREATEPEN, *PEMRCREATEPEN;
+
+typedef struct tagEMREXTCREATEPEN
+{
+    EMR     emr;
+    DWORD   ihPen;              
+    DWORD   offBmi;             
+    DWORD   cbBmi;              
+                                
+                                
+    DWORD   offBits;            
+    DWORD   cbBits;             
+    EXTLOGPEN elp;              
+} EMREXTCREATEPEN, *PEMREXTCREATEPEN;
+
+typedef struct tagEMRCREATEBRUSHINDIRECT
+{
+    EMR     emr;
+    DWORD   ihBrush;            
+    LOGBRUSH lb;                
+                                
+} EMRCREATEBRUSHINDIRECT, *PEMRCREATEBRUSHINDIRECT;
+
+typedef struct tagEMRCREATEMONOBRUSH
+{
+    EMR     emr;
+    DWORD   ihBrush;            
+    DWORD   iUsage;             
+    DWORD   offBmi;             
+    DWORD   cbBmi;              
+    DWORD   offBits;            
+    DWORD   cbBits;             
+} EMRCREATEMONOBRUSH, *PEMRCREATEMONOBRUSH;
+
+typedef struct tagEMRCREATEDIBPATTERNBRUSHPT
+{
+    EMR     emr;
+    DWORD   ihBrush;            
+    DWORD   iUsage;             
+    DWORD   offBmi;             
+    DWORD   cbBmi;              
+                                
+                                
+    DWORD   offBits;            
+    DWORD   cbBits;             
+} EMRCREATEDIBPATTERNBRUSHPT, *PEMRCREATEDIBPATTERNBRUSHPT;
+
+typedef struct tagEMRFORMAT
+{
+    DWORD   dSignature;         
+    DWORD   nVersion;           
+    DWORD   cbData;             
+    DWORD   offData;            
+                                
+} EMRFORMAT, *PEMRFORMAT;
+
+typedef struct tagEMRGLSRECORD
+{
+    EMR     emr;
+    DWORD   cbData;             
+    BYTE    Data[1];
+} EMRGLSRECORD, *PEMRGLSRECORD;
+
+typedef struct tagEMRGLSBOUNDEDRECORD
+{
+    EMR     emr;
+    RECTL   rclBounds;          
+    DWORD   cbData;             
+    BYTE    Data[1];
+} EMRGLSBOUNDEDRECORD, *PEMRGLSBOUNDEDRECORD;
+
+typedef struct tagEMRPIXELFORMAT
+{
+    EMR     emr;
+    PIXELFORMATDESCRIPTOR pfd;
+} EMRPIXELFORMAT, *PEMRPIXELFORMAT;
+
+
+
+typedef struct tagEMRSETICMPROFILE
+{
+    EMR     emr;
+    DWORD   dwFlags;            
+    DWORD   cbName;             
+    DWORD   cbData;             
+    BYTE    Data[1];            
+} EMRSETICMPROFILE, *PEMRSETICMPROFILE;
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall wglCopyContext(HGLRC, HGLRC, UINT);
+__declspec(dllimport) HGLRC __stdcall wglCreateContext(HDC);
+__declspec(dllimport) HGLRC __stdcall wglCreateLayerContext(HDC, int);
+__declspec(dllimport) BOOL  __stdcall wglDeleteContext(HGLRC);
+__declspec(dllimport) HGLRC __stdcall wglGetCurrentContext(void);
+__declspec(dllimport) HDC   __stdcall wglGetCurrentDC(void);
+__declspec(dllimport) PROC  __stdcall wglGetProcAddress(LPCSTR);
+__declspec(dllimport) BOOL  __stdcall wglMakeCurrent(HDC, HGLRC);
+__declspec(dllimport) BOOL  __stdcall wglShareLists(HGLRC, HGLRC);
+__declspec(dllimport) BOOL  __stdcall wglUseFontBitmapsA(HDC, DWORD, DWORD, DWORD);
+__declspec(dllimport) BOOL  __stdcall wglUseFontBitmapsW(HDC, DWORD, DWORD, DWORD);
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall SwapBuffers(HDC);
+
+typedef struct _POINTFLOAT {
+    FLOAT   x;
+    FLOAT   y;
+} POINTFLOAT, *PPOINTFLOAT;
+
+typedef struct _GLYPHMETRICSFLOAT {
+    FLOAT       gmfBlackBoxX;
+    FLOAT       gmfBlackBoxY;
+    POINTFLOAT  gmfptGlyphOrigin;
+    FLOAT       gmfCellIncX;
+    FLOAT       gmfCellIncY;
+} GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT,  *LPGLYPHMETRICSFLOAT;
+
+
+
+__declspec(dllimport) BOOL  __stdcall wglUseFontOutlinesA(HDC, DWORD, DWORD, DWORD, FLOAT,
+                                           FLOAT, int, LPGLYPHMETRICSFLOAT);
+__declspec(dllimport) BOOL  __stdcall wglUseFontOutlinesW(HDC, DWORD, DWORD, DWORD, FLOAT,
+                                           FLOAT, int, LPGLYPHMETRICSFLOAT);
+
+
+
+
+
+
+
+typedef struct tagLAYERPLANEDESCRIPTOR { 
+    WORD  nSize;
+    WORD  nVersion;
+    DWORD dwFlags;
+    BYTE  iPixelType;
+    BYTE  cColorBits;
+    BYTE  cRedBits;
+    BYTE  cRedShift;
+    BYTE  cGreenBits;
+    BYTE  cGreenShift;
+    BYTE  cBlueBits;
+    BYTE  cBlueShift;
+    BYTE  cAlphaBits;
+    BYTE  cAlphaShift;
+    BYTE  cAccumBits;
+    BYTE  cAccumRedBits;
+    BYTE  cAccumGreenBits;
+    BYTE  cAccumBlueBits;
+    BYTE  cAccumAlphaBits;
+    BYTE  cDepthBits;
+    BYTE  cStencilBits;
+    BYTE  cAuxBuffers;
+    BYTE  iLayerPlane;
+    BYTE  bReserved;
+    COLORREF crTransparent;
+} LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR,  *LPLAYERPLANEDESCRIPTOR;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport) BOOL  __stdcall wglDescribeLayerPlane(HDC, int, int, UINT,
+                                             LPLAYERPLANEDESCRIPTOR);
+__declspec(dllimport) int   __stdcall wglSetLayerPaletteEntries(HDC, int, int, int,
+                                                 const COLORREF *);
+__declspec(dllimport) int   __stdcall wglGetLayerPaletteEntries(HDC, int, int, int,
+                                                 COLORREF *);
+__declspec(dllimport) BOOL  __stdcall wglRealizeLayerPalette(HDC, int, BOOL);
+__declspec(dllimport) BOOL  __stdcall wglSwapLayerBuffers(HDC, UINT);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+typedef HANDLE HDWP;
+typedef void MENUTEMPLATEA;
+typedef void MENUTEMPLATEW;
+
+
+
+typedef MENUTEMPLATEA MENUTEMPLATE;
+
+typedef PVOID LPMENUTEMPLATEA;
+typedef PVOID LPMENUTEMPLATEW;
+
+
+
+typedef LPMENUTEMPLATEA LPMENUTEMPLATE;
+
+
+typedef LRESULT (__stdcall* WNDPROC)(HWND, UINT, WPARAM, LPARAM);
+
+
+
+typedef BOOL (__stdcall* DLGPROC)(HWND, UINT, WPARAM, LPARAM);
+typedef void (__stdcall* TIMERPROC)(HWND, UINT, UINT, DWORD);
+typedef BOOL (__stdcall* GRAYSTRINGPROC)(HDC, LPARAM, int);
+typedef BOOL (__stdcall* WNDENUMPROC)(HWND, LPARAM);
+typedef LRESULT (__stdcall* HOOKPROC)(int code, WPARAM wParam, LPARAM lParam);
+typedef void (__stdcall* SENDASYNCPROC)(HWND, UINT, DWORD, LRESULT);
+
+typedef BOOL (__stdcall* PROPENUMPROCA)(HWND, LPCSTR, HANDLE);
+typedef BOOL (__stdcall* PROPENUMPROCW)(HWND, LPCWSTR, HANDLE);
+
+typedef BOOL (__stdcall* PROPENUMPROCEXA)(HWND, LPSTR, HANDLE, DWORD);
+typedef BOOL (__stdcall* PROPENUMPROCEXW)(HWND, LPWSTR, HANDLE, DWORD);
+
+typedef int (__stdcall* EDITWORDBREAKPROCA)(LPSTR lpch, int ichCurrent, int cch, int code);
+typedef int (__stdcall* EDITWORDBREAKPROCW)(LPWSTR lpch, int ichCurrent, int cch, int code);
+
+
+typedef BOOL (__stdcall* DRAWSTATEPROC)(HDC hdc, LPARAM lData, WPARAM wData, int cx, int cy);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef PROPENUMPROCA        PROPENUMPROC;
+typedef PROPENUMPROCEXA      PROPENUMPROCEX;
+typedef EDITWORDBREAKPROCA   EDITWORDBREAKPROC;
+
+
+
+
+typedef BOOL (__stdcall* NAMEENUMPROCA)(LPSTR, LPARAM);
+typedef BOOL (__stdcall* NAMEENUMPROCW)(LPWSTR, LPARAM);
+
+typedef NAMEENUMPROCA   WINSTAENUMPROCA;
+typedef NAMEENUMPROCA   DESKTOPENUMPROCA;
+typedef NAMEENUMPROCW   WINSTAENUMPROCW;
+typedef NAMEENUMPROCW   DESKTOPENUMPROCW;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef WINSTAENUMPROCA     WINSTAENUMPROC;
+typedef DESKTOPENUMPROCA    DESKTOPENUMPROC;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+wvsprintfA(
+    LPSTR,
+    LPCSTR,
+    va_list arglist);
+__declspec(dllimport)
+int
+__stdcall
+wvsprintfW(
+    LPWSTR,
+    LPCWSTR,
+    va_list arglist);
+
+
+
+
+
+
+__declspec(dllimport) int __cdecl wsprintfA(LPSTR, LPCSTR, ...);
+__declspec(dllimport) int __cdecl wsprintfW(LPWSTR, LPCWSTR, ...);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagCBT_CREATEWNDA
+{
+    struct tagCREATESTRUCTA *lpcs;
+    HWND           hwndInsertAfter;
+} CBT_CREATEWNDA, *LPCBT_CREATEWNDA;
+
+
+
+typedef struct tagCBT_CREATEWNDW
+{
+    struct tagCREATESTRUCTW *lpcs;
+    HWND           hwndInsertAfter;
+} CBT_CREATEWNDW, *LPCBT_CREATEWNDW;
+
+
+
+
+typedef CBT_CREATEWNDA CBT_CREATEWND;
+typedef LPCBT_CREATEWNDA LPCBT_CREATEWND;
+
+
+
+
+
+typedef struct tagCBTACTIVATESTRUCT
+{
+    BOOL    fMouse;
+    HWND    hWndActive;
+} CBTACTIVATESTRUCT, *LPCBTACTIVATESTRUCT;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagEVENTMSG {
+    UINT    message;
+    UINT    paramL;
+    UINT    paramH;
+    DWORD    time;
+    HWND     hwnd;
+} EVENTMSG, *PEVENTMSGMSG,  *NPEVENTMSGMSG,  *LPEVENTMSGMSG;
+
+typedef struct tagEVENTMSG *PEVENTMSG,  *NPEVENTMSG,  *LPEVENTMSG;
+
+
+
+
+typedef struct tagCWPSTRUCT {
+    LPARAM  lParam;
+    WPARAM  wParam;
+    UINT    message;
+    HWND    hwnd;
+} CWPSTRUCT, *PCWPSTRUCT,  *NPCWPSTRUCT,  *LPCWPSTRUCT;
+
+
+
+
+
+typedef struct tagCWPRETSTRUCT {
+    LRESULT lResult;
+    LPARAM  lParam;
+    WPARAM  wParam;
+    UINT    message;
+    HWND    hwnd;
+} CWPRETSTRUCT, *PCWPRETSTRUCT,  *NPCWPRETSTRUCT,  *LPCWPRETSTRUCT;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagDEBUGHOOKINFO
+{
+    DWORD   idThread;
+    DWORD   idThreadInstaller;
+    LPARAM  lParam;
+    WPARAM  wParam;
+    int     code;
+} DEBUGHOOKINFO, *PDEBUGHOOKINFO,  *NPDEBUGHOOKINFO, * LPDEBUGHOOKINFO;
+
+
+
+
+typedef struct tagMOUSEHOOKSTRUCT {
+    POINT   pt;
+    HWND    hwnd;
+    UINT    wHitTestCode;
+    DWORD   dwExtraInfo;
+} MOUSEHOOKSTRUCT,  *LPMOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT;
+
+
+
+
+typedef struct tagHARDWAREHOOKSTRUCT {
+    HWND    hwnd;
+    UINT    message;
+    WPARAM  wParam;
+    LPARAM  lParam;
+} HARDWAREHOOKSTRUCT,  *LPHARDWAREHOOKSTRUCT, *PHARDWAREHOOKSTRUCT;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HKL
+__stdcall
+LoadKeyboardLayoutA(
+    LPCSTR pwszKLID,
+    UINT Flags);
+__declspec(dllimport)
+HKL
+__stdcall
+LoadKeyboardLayoutW(
+    LPCWSTR pwszKLID,
+    UINT Flags);
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HKL
+__stdcall
+ActivateKeyboardLayout(
+    HKL hkl,
+    UINT Flags);
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+ToUnicodeEx(
+    UINT wVirtKey,
+    UINT wScanCode,
+    PBYTE lpKeyState,
+    LPWSTR pwszBuff,
+    int cchBuff,
+    UINT wFlags,
+    HKL dwhkl);
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+UnloadKeyboardLayout(
+    HKL hkl);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetKeyboardLayoutNameA(
+    LPSTR pwszKLID);
+__declspec(dllimport)
+BOOL
+__stdcall
+GetKeyboardLayoutNameW(
+    LPWSTR pwszKLID);
+
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+GetKeyboardLayoutList(
+        int nBuff,
+        HKL  *lpList);
+
+__declspec(dllimport)
+HKL
+__stdcall
+GetKeyboardLayout(
+    DWORD dwLayout
+);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HDESK
+__stdcall
+CreateDesktopA(
+    LPSTR lpszDesktop,
+    LPSTR lpszDevice,
+    LPDEVMODEA pDevmode,
+    DWORD dwFlags,
+    ACCESS_MASK dwDesiredAccess,
+    LPSECURITY_ATTRIBUTES lpsa);
+__declspec(dllimport)
+HDESK
+__stdcall
+CreateDesktopW(
+    LPWSTR lpszDesktop,
+    LPWSTR lpszDevice,
+    LPDEVMODEW pDevmode,
+    DWORD dwFlags,
+    ACCESS_MASK dwDesiredAccess,
+    LPSECURITY_ATTRIBUTES lpsa);
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HDESK
+__stdcall
+OpenDesktopA(
+    LPSTR lpszDesktop,
+    DWORD dwFlags,
+    BOOL fInherit,
+    ACCESS_MASK dwDesiredAccess);
+__declspec(dllimport)
+HDESK
+__stdcall
+OpenDesktopW(
+    LPWSTR lpszDesktop,
+    DWORD dwFlags,
+    BOOL fInherit,
+    ACCESS_MASK dwDesiredAccess);
+
+
+
+
+
+
+__declspec(dllimport)
+HDESK
+__stdcall
+OpenInputDesktop(
+    DWORD dwFlags,
+    BOOL fInherit,
+    ACCESS_MASK dwDesiredAccess);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumDesktopsA(
+    HWINSTA hwinsta,
+    DESKTOPENUMPROCA lpEnumFunc,
+    LPARAM lParam);
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumDesktopsW(
+    HWINSTA hwinsta,
+    DESKTOPENUMPROCW lpEnumFunc,
+    LPARAM lParam);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumDesktopWindows(
+    HDESK hDesktop,
+    WNDENUMPROC lpfn,
+    LPARAM lParam);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SwitchDesktop(
+    HDESK hDesktop);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetThreadDesktop(
+    HDESK hDesktop);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CloseDesktop(
+    HDESK hDesktop);
+
+__declspec(dllimport)
+HDESK
+__stdcall
+GetThreadDesktop(
+    DWORD dwThreadId);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HWINSTA
+__stdcall
+CreateWindowStationA(
+    LPSTR               lpwinsta,
+    DWORD                 dwReserved,
+    ACCESS_MASK           dwDesiredAccess,
+    LPSECURITY_ATTRIBUTES lpsa);
+__declspec(dllimport)
+HWINSTA
+__stdcall
+CreateWindowStationW(
+    LPWSTR               lpwinsta,
+    DWORD                 dwReserved,
+    ACCESS_MASK           dwDesiredAccess,
+    LPSECURITY_ATTRIBUTES lpsa);
+
+
+
+
+
+
+__declspec(dllimport)
+HWINSTA
+__stdcall
+OpenWindowStationA(
+    LPSTR lpszWinSta,
+    BOOL fInherit,
+    ACCESS_MASK dwDesiredAccess);
+__declspec(dllimport)
+HWINSTA
+__stdcall
+OpenWindowStationW(
+    LPWSTR lpszWinSta,
+    BOOL fInherit,
+    ACCESS_MASK dwDesiredAccess);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumWindowStationsA(
+    WINSTAENUMPROCA lpEnumFunc,
+    LPARAM lParam);
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumWindowStationsW(
+    WINSTAENUMPROCW lpEnumFunc,
+    LPARAM lParam);
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CloseWindowStation(
+    HWINSTA hWinSta);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetProcessWindowStation(
+    HWINSTA hWinSta);
+
+__declspec(dllimport)
+HWINSTA
+__stdcall
+GetProcessWindowStation(
+    void);
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetUserObjectSecurity(
+    HANDLE hObj,
+    PSECURITY_INFORMATION pSIRequested,
+    PSECURITY_DESCRIPTOR pSID);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetUserObjectSecurity(
+    HANDLE hObj,
+    PSECURITY_INFORMATION pSIRequested,
+    PSECURITY_DESCRIPTOR pSID,
+    DWORD nLength,
+    LPDWORD lpnLengthNeeded);
+
+
+
+
+
+
+typedef struct tagUSEROBJECTFLAGS {
+    BOOL fInherit;
+    BOOL fReserved;
+    DWORD dwFlags;
+} USEROBJECTFLAGS, *PUSEROBJECTFLAGS;
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetUserObjectInformationA(
+    HANDLE hObj,
+    int nIndex,
+    PVOID pvInfo,
+    DWORD nLength,
+    LPDWORD lpnLengthNeeded);
+__declspec(dllimport)
+BOOL
+__stdcall
+GetUserObjectInformationW(
+    HANDLE hObj,
+    int nIndex,
+    PVOID pvInfo,
+    DWORD nLength,
+    LPDWORD lpnLengthNeeded);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetUserObjectInformationA(
+    HANDLE hObj,
+    int nIndex,
+    PVOID pvInfo,
+    DWORD nLength);
+__declspec(dllimport)
+BOOL
+__stdcall
+SetUserObjectInformationW(
+    HANDLE hObj,
+    int nIndex,
+    PVOID pvInfo,
+    DWORD nLength);
+
+
+
+
+
+
+
+
+
+typedef struct tagWNDCLASSEXA {
+    UINT        cbSize;
+    
+    UINT        style;
+    WNDPROC     lpfnWndProc;
+    int         cbClsExtra;
+    int         cbWndExtra;
+    HINSTANCE   hInstance;
+    HICON       hIcon;
+    HCURSOR     hCursor;
+    HBRUSH      hbrBackground;
+    LPCSTR      lpszMenuName;
+    LPCSTR      lpszClassName;
+    
+    HICON       hIconSm;
+} WNDCLASSEXA, *PWNDCLASSEXA,  *NPWNDCLASSEXA,  *LPWNDCLASSEXA;
+typedef struct tagWNDCLASSEXW {
+    UINT        cbSize;
+    
+    UINT        style;
+    WNDPROC     lpfnWndProc;
+    int         cbClsExtra;
+    int         cbWndExtra;
+    HINSTANCE   hInstance;
+    HICON       hIcon;
+    HCURSOR     hCursor;
+    HBRUSH      hbrBackground;
+    LPCWSTR     lpszMenuName;
+    LPCWSTR     lpszClassName;
+    
+    HICON       hIconSm;
+} WNDCLASSEXW, *PWNDCLASSEXW,  *NPWNDCLASSEXW,  *LPWNDCLASSEXW;
+
+
+
+
+
+
+typedef WNDCLASSEXA WNDCLASSEX;
+typedef PWNDCLASSEXA PWNDCLASSEX;
+typedef NPWNDCLASSEXA NPWNDCLASSEX;
+typedef LPWNDCLASSEXA LPWNDCLASSEX;
+
+
+
+typedef struct tagWNDCLASSA {
+    UINT        style;
+    WNDPROC     lpfnWndProc;
+    int         cbClsExtra;
+    int         cbWndExtra;
+    HINSTANCE   hInstance;
+    HICON       hIcon;
+    HCURSOR     hCursor;
+    HBRUSH      hbrBackground;
+    LPCSTR      lpszMenuName;
+    LPCSTR      lpszClassName;
+} WNDCLASSA, *PWNDCLASSA,  *NPWNDCLASSA,  *LPWNDCLASSA;
+typedef struct tagWNDCLASSW {
+    UINT        style;
+    WNDPROC     lpfnWndProc;
+    int         cbClsExtra;
+    int         cbWndExtra;
+    HINSTANCE   hInstance;
+    HICON       hIcon;
+    HCURSOR     hCursor;
+    HBRUSH      hbrBackground;
+    LPCWSTR     lpszMenuName;
+    LPCWSTR     lpszClassName;
+} WNDCLASSW, *PWNDCLASSW,  *NPWNDCLASSW,  *LPWNDCLASSW;
+
+
+
+
+
+
+typedef WNDCLASSA WNDCLASS;
+typedef PWNDCLASSA PWNDCLASS;
+typedef NPWNDCLASSA NPWNDCLASS;
+typedef LPWNDCLASSA LPWNDCLASS;
+
+
+
+
+
+
+
+
+typedef struct tagMSG {
+    HWND        hwnd;
+    UINT        message;
+    WPARAM      wParam;
+    LPARAM      lParam;
+    DWORD       time;
+    POINT       pt;
+
+
+
+} MSG, *PMSG,  *NPMSG,  *LPMSG;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagMINMAXINFO {
+    POINT ptReserved;
+    POINT ptMaxSize;
+    POINT ptMaxPosition;
+    POINT ptMinTrackSize;
+    POINT ptMaxTrackSize;
+} MINMAXINFO, *PMINMAXINFO, *LPMINMAXINFO;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagCOPYDATASTRUCT {
+    DWORD dwData;
+    DWORD cbData;
+    PVOID lpData;
+} COPYDATASTRUCT, *PCOPYDATASTRUCT;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagMDINEXTMENU
+{
+    HMENU   hmenuIn;
+    HMENU   hmenuNext;
+    HWND    hwndNext;
+} MDINEXTMENU, * PMDINEXTMENU,  * LPMDINEXTMENU;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+UINT
+__stdcall
+RegisterWindowMessageA(
+    LPCSTR lpString);
+__declspec(dllimport)
+UINT
+__stdcall
+RegisterWindowMessageW(
+    LPCWSTR lpString);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagWINDOWPOS {
+    HWND    hwnd;
+    HWND    hwndInsertAfter;
+    int     x;
+    int     y;
+    int     cx;
+    int     cy;
+    UINT    flags;
+} WINDOWPOS, *LPWINDOWPOS, *PWINDOWPOS;
+
+
+
+
+typedef struct tagNCCALCSIZE_PARAMS {
+    RECT       rgrc[3];
+    PWINDOWPOS lppos;
+} NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DrawEdge(HDC hdc, LPRECT qrc, UINT edge, UINT grfFlags);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DrawFrameControl(HDC, LPRECT, UINT, UINT);
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DrawCaption(HWND, HDC, const RECT *, UINT);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DrawAnimatedRects(HWND hwnd, int idAni, const RECT * lprcFrom, const RECT * lprcTo);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagACCEL {
+
+    BYTE   fVirt;               
+    WORD   key;
+    WORD   cmd;
+
+
+
+
+
+} ACCEL, *LPACCEL;
+
+typedef struct tagPAINTSTRUCT {
+    HDC         hdc;
+    BOOL        fErase;
+    RECT        rcPaint;
+    BOOL        fRestore;
+    BOOL        fIncUpdate;
+    BYTE        rgbReserved[32];
+} PAINTSTRUCT, *PPAINTSTRUCT, *NPPAINTSTRUCT, *LPPAINTSTRUCT;
+
+typedef struct tagCREATESTRUCTA {
+    LPVOID      lpCreateParams;
+    HINSTANCE   hInstance;
+    HMENU       hMenu;
+    HWND        hwndParent;
+    int         cy;
+    int         cx;
+    int         y;
+    int         x;
+    LONG        style;
+    LPCSTR      lpszName;
+    LPCSTR      lpszClass;
+    DWORD       dwExStyle;
+} CREATESTRUCTA, *LPCREATESTRUCTA;
+typedef struct tagCREATESTRUCTW {
+    LPVOID      lpCreateParams;
+    HINSTANCE   hInstance;
+    HMENU       hMenu;
+    HWND        hwndParent;
+    int         cy;
+    int         cx;
+    int         y;
+    int         x;
+    LONG        style;
+    LPCWSTR     lpszName;
+    LPCWSTR     lpszClass;
+    DWORD       dwExStyle;
+} CREATESTRUCTW, *LPCREATESTRUCTW;
+
+
+
+
+typedef CREATESTRUCTA CREATESTRUCT;
+typedef LPCREATESTRUCTA LPCREATESTRUCT;
+
+
+typedef struct tagWINDOWPLACEMENT {
+    UINT  length;
+    UINT  flags;
+    UINT  showCmd;
+    POINT ptMinPosition;
+    POINT ptMaxPosition;
+    RECT  rcNormalPosition;
+
+
+
+} WINDOWPLACEMENT;
+typedef WINDOWPLACEMENT *PWINDOWPLACEMENT, *LPWINDOWPLACEMENT;
+
+
+
+
+typedef struct tagNMHDR
+{
+    HWND  hwndFrom;
+    UINT  idFrom;
+    UINT  code;         
+}   NMHDR;
+typedef NMHDR  * LPNMHDR;
+
+typedef struct tagSTYLESTRUCT
+{
+    DWORD   styleOld;
+    DWORD   styleNew;
+} STYLESTRUCT, * LPSTYLESTRUCT;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagMEASUREITEMSTRUCT {
+    UINT       CtlType;
+    UINT       CtlID;
+    UINT       itemID;
+    UINT       itemWidth;
+    UINT       itemHeight;
+    DWORD      itemData;
+} MEASUREITEMSTRUCT,  *PMEASUREITEMSTRUCT,  *LPMEASUREITEMSTRUCT;
+
+
+
+
+
+typedef struct tagDRAWITEMSTRUCT {
+    UINT        CtlType;
+    UINT        CtlID;
+    UINT        itemID;
+    UINT        itemAction;
+    UINT        itemState;
+    HWND        hwndItem;
+    HDC         hDC;
+    RECT        rcItem;
+    DWORD       itemData;
+} DRAWITEMSTRUCT,  *PDRAWITEMSTRUCT,  *LPDRAWITEMSTRUCT;
+
+
+
+
+typedef struct tagDELETEITEMSTRUCT {
+    UINT       CtlType;
+    UINT       CtlID;
+    UINT       itemID;
+    HWND       hwndItem;
+    UINT       itemData;
+} DELETEITEMSTRUCT,  *PDELETEITEMSTRUCT,  *LPDELETEITEMSTRUCT;
+
+
+
+
+typedef struct tagCOMPAREITEMSTRUCT {
+    UINT        CtlType;
+    UINT        CtlID;
+    HWND        hwndItem;
+    UINT        itemID1;
+    DWORD       itemData1;
+    UINT        itemID2;
+    DWORD       itemData2;
+    DWORD       dwLocaleId;
+} COMPAREITEMSTRUCT,  *PCOMPAREITEMSTRUCT,  *LPCOMPAREITEMSTRUCT;
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetMessageA(
+    LPMSG lpMsg,
+    HWND hWnd ,
+    UINT wMsgFilterMin,
+    UINT wMsgFilterMax);
+__declspec(dllimport)
+BOOL
+__stdcall
+GetMessageW(
+    LPMSG lpMsg,
+    HWND hWnd ,
+    UINT wMsgFilterMin,
+    UINT wMsgFilterMax);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+TranslateMessage(
+    const MSG *lpMsg);
+
+__declspec(dllimport)
+LONG
+__stdcall
+DispatchMessageA(
+    const MSG *lpMsg);
+__declspec(dllimport)
+LONG
+__stdcall
+DispatchMessageW(
+    const MSG *lpMsg);
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetMessageQueue(
+    int cMessagesMax);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+PeekMessageA(
+    LPMSG lpMsg,
+    HWND hWnd ,
+    UINT wMsgFilterMin,
+    UINT wMsgFilterMax,
+    UINT wRemoveMsg);
+__declspec(dllimport)
+BOOL
+__stdcall
+PeekMessageW(
+    LPMSG lpMsg,
+    HWND hWnd ,
+    UINT wMsgFilterMin,
+    UINT wMsgFilterMax,
+    UINT wRemoveMsg);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+RegisterHotKey(
+    HWND hWnd ,
+    int id,
+    UINT fsModifiers,
+    UINT vk);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+UnregisterHotKey(
+    HWND hWnd,
+    int id);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ExitWindowsEx(
+    UINT uFlags,
+    DWORD dwReserved);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SwapMouseButton(
+    BOOL fSwap);
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetMessagePos(
+    void);
+
+__declspec(dllimport)
+LONG
+__stdcall
+GetMessageTime(
+    void);
+
+__declspec(dllimport)
+LONG
+__stdcall
+GetMessageExtraInfo(
+    void);
+
+
+__declspec(dllimport)
+LPARAM
+__stdcall
+SetMessageExtraInfo(
+    LPARAM lParam);
+
+
+__declspec(dllimport)
+LRESULT
+__stdcall
+SendMessageA(
+    HWND hWnd,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam);
+__declspec(dllimport)
+LRESULT
+__stdcall
+SendMessageW(
+    HWND hWnd,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam);
+
+
+
+
+
+
+__declspec(dllimport)
+LRESULT
+__stdcall
+SendMessageTimeoutA(
+    HWND hWnd,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam,
+    UINT fuFlags,
+    UINT uTimeout,
+    LPDWORD lpdwResult);
+__declspec(dllimport)
+LRESULT
+__stdcall
+SendMessageTimeoutW(
+    HWND hWnd,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam,
+    UINT fuFlags,
+    UINT uTimeout,
+    LPDWORD lpdwResult);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SendNotifyMessageA(
+    HWND hWnd,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam);
+__declspec(dllimport)
+BOOL
+__stdcall
+SendNotifyMessageW(
+    HWND hWnd,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SendMessageCallbackA(
+    HWND hWnd,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam,
+    SENDASYNCPROC lpResultCallBack,
+    DWORD dwData);
+__declspec(dllimport)
+BOOL
+__stdcall
+SendMessageCallbackW(
+    HWND hWnd,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam,
+    SENDASYNCPROC lpResultCallBack,
+    DWORD dwData);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+PostMessageA(
+    HWND hWnd,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam);
+__declspec(dllimport)
+BOOL
+__stdcall
+PostMessageW(
+    HWND hWnd,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+PostThreadMessageA(
+    DWORD idThread,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam);
+__declspec(dllimport)
+BOOL
+__stdcall
+PostThreadMessageW(
+    DWORD idThread,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AttachThreadInput(
+    DWORD idAttach,
+    DWORD idAttachTo,
+    BOOL fAttach);
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ReplyMessage(
+    LRESULT lResult);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+WaitMessage(
+    void);
+
+__declspec(dllimport)
+DWORD
+__stdcall
+WaitForInputIdle(
+    HANDLE hProcess,
+    DWORD dwMilliseconds);
+
+__declspec(dllimport)
+
+LRESULT
+__stdcall
+
+
+
+
+DefWindowProcA(
+    HWND hWnd,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam);
+__declspec(dllimport)
+
+LRESULT
+__stdcall
+
+
+
+
+DefWindowProcW(
+    HWND hWnd,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam);
+
+
+
+
+
+
+__declspec(dllimport)
+void
+__stdcall
+PostQuitMessage(
+    int nExitCode);
+
+
+
+__declspec(dllimport)
+LRESULT
+__stdcall
+CallWindowProcA(
+    WNDPROC lpPrevWndFunc,
+    HWND hWnd,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam);
+__declspec(dllimport)
+LRESULT
+__stdcall
+CallWindowProcW(
+    WNDPROC lpPrevWndFunc,
+    HWND hWnd,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+InSendMessage(
+    void);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+UINT
+__stdcall
+GetDoubleClickTime(
+    void);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetDoubleClickTime(
+    UINT);
+
+__declspec(dllimport)
+ATOM
+__stdcall
+RegisterClassA(
+    const WNDCLASSA *lpWndClass);
+__declspec(dllimport)
+ATOM
+__stdcall
+RegisterClassW(
+    const WNDCLASSW *lpWndClass);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+UnregisterClassA(
+    LPCSTR lpClassName,
+    HINSTANCE hInstance);
+__declspec(dllimport)
+BOOL
+__stdcall
+UnregisterClassW(
+    LPCWSTR lpClassName,
+    HINSTANCE hInstance);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetClassInfoA(
+    HINSTANCE hInstance ,
+    LPCSTR lpClassName,
+    LPWNDCLASSA lpWndClass);
+__declspec(dllimport)
+BOOL
+__stdcall
+GetClassInfoW(
+    HINSTANCE hInstance ,
+    LPCWSTR lpClassName,
+    LPWNDCLASSW lpWndClass);
+
+
+
+
+
+
+
+__declspec(dllimport)
+ATOM
+__stdcall
+RegisterClassExA(const WNDCLASSEXA *);
+__declspec(dllimport)
+ATOM
+__stdcall
+RegisterClassExW(const WNDCLASSEXW *);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetClassInfoExA(HINSTANCE, LPCSTR, LPWNDCLASSEXA);
+__declspec(dllimport)
+BOOL
+__stdcall
+GetClassInfoExW(HINSTANCE, LPCWSTR, LPWNDCLASSEXW);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HWND
+__stdcall
+CreateWindowExA(
+    DWORD dwExStyle,
+    LPCSTR lpClassName,
+    LPCSTR lpWindowName,
+    DWORD dwStyle,
+    int X,
+    int Y,
+    int nWidth,
+    int nHeight,
+    HWND hWndParent ,
+    HMENU hMenu,
+    HINSTANCE hInstance,
+    LPVOID lpParam);
+__declspec(dllimport)
+HWND
+__stdcall
+CreateWindowExW(
+    DWORD dwExStyle,
+    LPCWSTR lpClassName,
+    LPCWSTR lpWindowName,
+    DWORD dwStyle,
+    int X,
+    int Y,
+    int nWidth,
+    int nHeight,
+    HWND hWndParent ,
+    HMENU hMenu,
+    HINSTANCE hInstance,
+    LPVOID lpParam);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsWindow(
+    HWND hWnd);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsMenu(
+    HMENU hMenu);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsChild(
+    HWND hWndParent,
+    HWND hWnd);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DestroyWindow(
+    HWND hWnd);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ShowWindow(
+    HWND hWnd,
+    int nCmdShow);
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ShowWindowAsync(
+    HWND hWnd,
+    int nCmdShow);
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+FlashWindow(
+    HWND hWnd,
+
+
+
+    BOOL bInvert);
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ShowOwnedPopups(
+    HWND hWnd,
+    BOOL fShow);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+OpenIcon(
+    HWND hWnd);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CloseWindow(
+    HWND hWnd);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+MoveWindow(
+    HWND hWnd,
+    int X,
+    int Y,
+    int nWidth,
+    int nHeight,
+    BOOL bRepaint);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetWindowPos(
+    HWND hWnd,
+    HWND hWndInsertAfter ,
+    int X,
+    int Y,
+    int cx,
+    int cy,
+    UINT uFlags);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetWindowPlacement(
+    HWND hWnd,
+    WINDOWPLACEMENT *lpwndpl);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetWindowPlacement(
+    HWND hWnd,
+    const WINDOWPLACEMENT *lpwndpl);
+
+
+
+
+__declspec(dllimport)
+HDWP
+__stdcall
+BeginDeferWindowPos(
+    int nNumWindows);
+
+__declspec(dllimport)
+HDWP
+__stdcall
+DeferWindowPos(
+    HDWP hWinPosInfo,
+    HWND hWnd,
+    HWND hWndInsertAfter ,
+    int x,
+    int y,
+    int cx,
+    int cy,
+    UINT uFlags);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EndDeferWindowPos(
+    HDWP hWinPosInfo);
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsWindowVisible(
+    HWND hWnd);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsIconic(
+    HWND hWnd);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AnyPopup(
+    void);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+BringWindowToTop(
+    HWND hWnd);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsZoomed(
+    HWND hWnd);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(push)
+
+#pragma pack(2)
+
+
+
+
+
+
+
+
+
+typedef struct {
+    DWORD style;
+    DWORD dwExtendedStyle;
+    WORD cdit;
+    short x;
+    short y;
+    short cx;
+    short cy;
+} DLGTEMPLATE;
+typedef DLGTEMPLATE *LPDLGTEMPLATEA;
+typedef DLGTEMPLATE *LPDLGTEMPLATEW;
+
+
+
+typedef LPDLGTEMPLATEA LPDLGTEMPLATE;
+
+typedef const DLGTEMPLATE *LPCDLGTEMPLATEA;
+typedef const DLGTEMPLATE *LPCDLGTEMPLATEW;
+
+
+
+typedef LPCDLGTEMPLATEA LPCDLGTEMPLATE;
+
+
+
+
+
+typedef struct {
+    DWORD style;
+    DWORD dwExtendedStyle;
+    short x;
+    short y;
+    short cx;
+    short cy;
+    WORD id;
+} DLGITEMTEMPLATE;
+typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEA;
+typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEW;
+
+
+
+typedef PDLGITEMTEMPLATEA PDLGITEMTEMPLATE;
+
+typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA;
+typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW;
+
+
+
+typedef LPDLGITEMTEMPLATEA LPDLGITEMTEMPLATE;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(disable:4103)
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HWND
+__stdcall
+CreateDialogParamA(
+    HINSTANCE hInstance,
+    LPCSTR lpTemplateName,
+    HWND hWndParent ,
+    DLGPROC lpDialogFunc,
+    LPARAM dwInitParam);
+__declspec(dllimport)
+HWND
+__stdcall
+CreateDialogParamW(
+    HINSTANCE hInstance,
+    LPCWSTR lpTemplateName,
+    HWND hWndParent ,
+    DLGPROC lpDialogFunc,
+    LPARAM dwInitParam);
+
+
+
+
+
+
+__declspec(dllimport)
+HWND
+__stdcall
+CreateDialogIndirectParamA(
+    HINSTANCE hInstance,
+    LPCDLGTEMPLATEA lpTemplate,
+    HWND hWndParent,
+    DLGPROC lpDialogFunc,
+    LPARAM dwInitParam);
+__declspec(dllimport)
+HWND
+__stdcall
+CreateDialogIndirectParamW(
+    HINSTANCE hInstance,
+    LPCDLGTEMPLATEW lpTemplate,
+    HWND hWndParent,
+    DLGPROC lpDialogFunc,
+    LPARAM dwInitParam);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+DialogBoxParamA(
+    HINSTANCE hInstance,
+    LPCSTR lpTemplateName,
+    HWND hWndParent ,
+    DLGPROC lpDialogFunc,
+    LPARAM dwInitParam);
+__declspec(dllimport)
+int
+__stdcall
+DialogBoxParamW(
+    HINSTANCE hInstance,
+    LPCWSTR lpTemplateName,
+    HWND hWndParent ,
+    DLGPROC lpDialogFunc,
+    LPARAM dwInitParam);
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+DialogBoxIndirectParamA(
+    HINSTANCE hInstance,
+    LPCDLGTEMPLATEA hDialogTemplate,
+    HWND hWndParent ,
+    DLGPROC lpDialogFunc,
+    LPARAM dwInitParam);
+__declspec(dllimport)
+int
+__stdcall
+DialogBoxIndirectParamW(
+    HINSTANCE hInstance,
+    LPCDLGTEMPLATEW hDialogTemplate,
+    HWND hWndParent ,
+    DLGPROC lpDialogFunc,
+    LPARAM dwInitParam);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EndDialog(
+    HWND hDlg,
+    int nResult);
+
+__declspec(dllimport)
+HWND
+__stdcall
+GetDlgItem(
+    HWND hDlg,
+    int nIDDlgItem);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetDlgItemInt(
+    HWND hDlg,
+    int nIDDlgItem,
+    UINT uValue,
+    BOOL bSigned);
+
+__declspec(dllimport)
+UINT
+__stdcall
+GetDlgItemInt(
+    HWND hDlg,
+    int nIDDlgItem,
+    BOOL *lpTranslated,
+    BOOL bSigned);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetDlgItemTextA(
+    HWND hDlg,
+    int nIDDlgItem,
+    LPCSTR lpString);
+__declspec(dllimport)
+BOOL
+__stdcall
+SetDlgItemTextW(
+    HWND hDlg,
+    int nIDDlgItem,
+    LPCWSTR lpString);
+
+
+
+
+
+
+__declspec(dllimport)
+UINT
+__stdcall
+GetDlgItemTextA(
+    HWND hDlg,
+    int nIDDlgItem,
+    LPSTR lpString,
+    int nMaxCount);
+__declspec(dllimport)
+UINT
+__stdcall
+GetDlgItemTextW(
+    HWND hDlg,
+    int nIDDlgItem,
+    LPWSTR lpString,
+    int nMaxCount);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CheckDlgButton(
+    HWND hDlg,
+    int nIDButton,
+    UINT uCheck);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CheckRadioButton(
+    HWND hDlg,
+    int nIDFirstButton,
+    int nIDLastButton,
+    int nIDCheckButton);
+
+__declspec(dllimport)
+UINT
+__stdcall
+IsDlgButtonChecked(
+    HWND hDlg,
+    int nIDButton);
+
+__declspec(dllimport)
+LONG
+__stdcall
+SendDlgItemMessageA(
+    HWND hDlg,
+    int nIDDlgItem,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam);
+__declspec(dllimport)
+LONG
+__stdcall
+SendDlgItemMessageW(
+    HWND hDlg,
+    int nIDDlgItem,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam);
+
+
+
+
+
+
+__declspec(dllimport)
+HWND
+__stdcall
+GetNextDlgGroupItem(
+    HWND hDlg,
+    HWND hCtl,
+    BOOL bPrevious);
+
+__declspec(dllimport)
+HWND
+__stdcall
+GetNextDlgTabItem(
+    HWND hDlg,
+    HWND hCtl,
+    BOOL bPrevious);
+
+__declspec(dllimport)
+int
+__stdcall
+GetDlgCtrlID(
+    HWND hWnd);
+
+__declspec(dllimport)
+long
+__stdcall
+GetDialogBaseUnits(void);
+
+__declspec(dllimport)
+
+LRESULT
+__stdcall
+
+
+
+
+DefDlgProcA(
+    HWND hDlg,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam);
+__declspec(dllimport)
+
+LRESULT
+__stdcall
+
+
+
+
+DefDlgProcW(
+    HWND hDlg,
+    UINT Msg,
+    WPARAM wParam,
+    LPARAM lParam);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CallMsgFilterA(
+    LPMSG lpMsg,
+    int nCode);
+__declspec(dllimport)
+BOOL
+__stdcall
+CallMsgFilterW(
+    LPMSG lpMsg,
+    int nCode);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+OpenClipboard(
+    HWND hWndNewOwner);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CloseClipboard(
+    void);
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HWND
+__stdcall
+GetClipboardOwner(
+    void);
+
+__declspec(dllimport)
+HWND
+__stdcall
+SetClipboardViewer(
+    HWND hWndNewViewer);
+
+__declspec(dllimport)
+HWND
+__stdcall
+GetClipboardViewer(
+    void);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ChangeClipboardChain(
+    HWND hWndRemove,
+    HWND hWndNewNext);
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+SetClipboardData(
+    UINT uFormat,
+    HANDLE hMem);
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+    GetClipboardData(
+    UINT uFormat);
+
+__declspec(dllimport)
+UINT
+__stdcall
+RegisterClipboardFormatA(
+    LPCSTR lpszFormat);
+__declspec(dllimport)
+UINT
+__stdcall
+RegisterClipboardFormatW(
+    LPCWSTR lpszFormat);
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+CountClipboardFormats(
+    void);
+
+__declspec(dllimport)
+UINT
+__stdcall
+EnumClipboardFormats(
+    UINT format);
+
+__declspec(dllimport)
+int
+__stdcall
+GetClipboardFormatNameA(
+    UINT format,
+    LPSTR lpszFormatName,
+    int cchMaxCount);
+__declspec(dllimport)
+int
+__stdcall
+GetClipboardFormatNameW(
+    UINT format,
+    LPWSTR lpszFormatName,
+    int cchMaxCount);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EmptyClipboard(
+    void);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsClipboardFormatAvailable(
+    UINT format);
+
+__declspec(dllimport)
+int
+__stdcall
+GetPriorityClipboardFormat(
+    UINT *paFormatPriorityList,
+    int cFormats);
+
+__declspec(dllimport)
+HWND
+__stdcall
+GetOpenClipboardWindow(
+    void);
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CharToOemA(
+    LPCSTR lpszSrc,
+    LPSTR lpszDst);
+__declspec(dllimport)
+BOOL
+__stdcall
+CharToOemW(
+    LPCWSTR lpszSrc,
+    LPSTR lpszDst);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+OemToCharA(
+    LPCSTR lpszSrc,
+    LPSTR lpszDst);
+__declspec(dllimport)
+BOOL
+__stdcall
+OemToCharW(
+    LPCSTR lpszSrc,
+    LPWSTR lpszDst);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CharToOemBuffA(
+    LPCSTR lpszSrc,
+    LPSTR lpszDst,
+    DWORD cchDstLength);
+__declspec(dllimport)
+BOOL
+__stdcall
+CharToOemBuffW(
+    LPCWSTR lpszSrc,
+    LPSTR lpszDst,
+    DWORD cchDstLength);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+OemToCharBuffA(
+    LPCSTR lpszSrc,
+    LPSTR lpszDst,
+    DWORD cchDstLength);
+__declspec(dllimport)
+BOOL
+__stdcall
+OemToCharBuffW(
+    LPCSTR lpszSrc,
+    LPWSTR lpszDst,
+    DWORD cchDstLength);
+
+
+
+
+
+
+__declspec(dllimport)
+LPSTR
+__stdcall
+CharUpperA(
+    LPSTR lpsz);
+__declspec(dllimport)
+LPWSTR
+__stdcall
+CharUpperW(
+    LPWSTR lpsz);
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+CharUpperBuffA(
+    LPSTR lpsz,
+    DWORD cchLength);
+__declspec(dllimport)
+DWORD
+__stdcall
+CharUpperBuffW(
+    LPWSTR lpsz,
+    DWORD cchLength);
+
+
+
+
+
+
+__declspec(dllimport)
+LPSTR
+__stdcall
+CharLowerA(
+    LPSTR lpsz);
+__declspec(dllimport)
+LPWSTR
+__stdcall
+CharLowerW(
+    LPWSTR lpsz);
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+CharLowerBuffA(
+    LPSTR lpsz,
+    DWORD cchLength);
+__declspec(dllimport)
+DWORD
+__stdcall
+CharLowerBuffW(
+    LPWSTR lpsz,
+    DWORD cchLength);
+
+
+
+
+
+
+__declspec(dllimport)
+LPSTR
+__stdcall
+CharNextA(
+    LPCSTR lpsz);
+__declspec(dllimport)
+LPWSTR
+__stdcall
+CharNextW(
+    LPCWSTR lpsz);
+
+
+
+
+
+
+__declspec(dllimport)
+LPSTR
+__stdcall
+CharPrevA(
+    LPCSTR lpszStart,
+    LPCSTR lpszCurrent);
+__declspec(dllimport)
+LPWSTR
+__stdcall
+CharPrevW(
+    LPCWSTR lpszStart,
+    LPCWSTR lpszCurrent);
+
+
+
+
+
+
+
+__declspec(dllimport)
+LPSTR
+__stdcall
+CharNextExA(
+     WORD CodePage,
+     LPCSTR lpCurrentChar,
+     DWORD dwFlags);
+
+__declspec(dllimport)
+LPSTR
+__stdcall
+CharPrevExA(
+     WORD CodePage,
+     LPCSTR lpStart,
+     LPCSTR lpCurrentChar,
+     DWORD dwFlags);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsCharAlphaA(
+    CHAR ch);
+__declspec(dllimport)
+BOOL
+__stdcall
+IsCharAlphaW(
+    WCHAR ch);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsCharAlphaNumericA(
+    CHAR ch);
+__declspec(dllimport)
+BOOL
+__stdcall
+IsCharAlphaNumericW(
+    WCHAR ch);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsCharUpperA(
+    CHAR ch);
+__declspec(dllimport)
+BOOL
+__stdcall
+IsCharUpperW(
+    WCHAR ch);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsCharLowerA(
+    CHAR ch);
+__declspec(dllimport)
+BOOL
+__stdcall
+IsCharLowerW(
+    WCHAR ch);
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HWND
+__stdcall
+SetFocus(
+    HWND hWnd);
+
+__declspec(dllimport)
+HWND
+__stdcall
+GetActiveWindow(
+    void);
+
+__declspec(dllimport)
+HWND
+__stdcall
+GetFocus(
+    void);
+
+__declspec(dllimport)
+UINT
+__stdcall
+GetKBCodePage(
+    void);
+
+__declspec(dllimport)
+SHORT
+__stdcall
+GetKeyState(
+    int nVirtKey);
+
+__declspec(dllimport)
+SHORT
+__stdcall
+GetAsyncKeyState(
+    int vKey);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetKeyboardState(
+    PBYTE lpKeyState);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetKeyboardState(
+    LPBYTE lpKeyState);
+
+__declspec(dllimport)
+int
+__stdcall
+GetKeyNameTextA(
+    LONG lParam,
+    LPSTR lpString,
+    int nSize
+    );
+__declspec(dllimport)
+int
+__stdcall
+GetKeyNameTextW(
+    LONG lParam,
+    LPWSTR lpString,
+    int nSize
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+GetKeyboardType(
+    int nTypeFlag);
+
+__declspec(dllimport)
+int
+__stdcall
+ToAscii(
+    UINT uVirtKey,
+    UINT uScanCode,
+    PBYTE lpKeyState,
+    LPWORD lpChar,
+    UINT uFlags);
+
+
+__declspec(dllimport)
+int
+__stdcall
+ToAsciiEx(
+    UINT uVirtKey,
+    UINT uScanCode,
+    PBYTE lpKeyState,
+    LPWORD lpChar,
+    UINT uFlags,
+    HKL dwhkl);
+
+
+__declspec(dllimport)
+int
+__stdcall
+ToUnicode(
+    UINT wVirtKey,
+    UINT wScanCode,
+    PBYTE lpKeyState,
+    LPWSTR pwszBuff,
+    int cchBuff,
+    UINT wFlags);
+
+__declspec(dllimport)
+DWORD
+__stdcall
+OemKeyScan(
+    WORD wOemChar);
+
+__declspec(dllimport)
+SHORT
+__stdcall
+VkKeyScanA(
+    CHAR ch);
+__declspec(dllimport)
+SHORT
+__stdcall
+VkKeyScanW(
+    WCHAR ch);
+
+
+
+
+
+
+
+__declspec(dllimport)
+SHORT
+__stdcall VkKeyScanExA(
+    CHAR  ch,
+    HKL   dwhkl);
+__declspec(dllimport)
+SHORT
+__stdcall VkKeyScanExW(
+    WCHAR  ch,
+    HKL   dwhkl);
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+void
+__stdcall
+keybd_event(
+    BYTE bVk,
+    BYTE bScan,
+    DWORD dwFlags,
+    DWORD dwExtraInfo);
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+void
+__stdcall
+mouse_event(
+    DWORD dwFlags,
+    DWORD dx,
+    DWORD dy,
+    DWORD dwData,
+    DWORD dwExtraInfo);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+UINT
+__stdcall
+MapVirtualKeyA(
+    UINT uCode,
+    UINT uMapType);
+__declspec(dllimport)
+UINT
+__stdcall
+MapVirtualKeyW(
+    UINT uCode,
+    UINT uMapType);
+
+
+
+
+
+
+
+__declspec(dllimport)
+UINT
+__stdcall
+MapVirtualKeyExA(
+    UINT uCode,
+    UINT uMapType,
+    HKL dwhkl);
+__declspec(dllimport)
+UINT
+__stdcall
+MapVirtualKeyExW(
+    UINT uCode,
+    UINT uMapType,
+    HKL dwhkl);
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetInputState(
+    void);
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetQueueStatus(
+    UINT flags);
+
+__declspec(dllimport)
+HWND
+__stdcall
+GetCapture(
+    void);
+
+__declspec(dllimport)
+HWND
+__stdcall
+SetCapture(
+    HWND hWnd);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ReleaseCapture(
+    void);
+
+__declspec(dllimport)
+DWORD
+__stdcall
+MsgWaitForMultipleObjects(
+    DWORD nCount,
+    LPHANDLE pHandles,
+    BOOL fWaitAll,
+    DWORD dwMilliseconds,
+    DWORD dwWakeMask);
+
+__declspec(dllimport)
+DWORD
+__stdcall
+MsgWaitForMultipleObjectsEx(
+    DWORD nCount,
+    LPHANDLE pHandles,
+    DWORD dwMilliseconds,
+    DWORD dwWakeMask,
+    DWORD dwFlags);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+UINT
+__stdcall
+SetTimer(
+    HWND hWnd ,
+    UINT nIDEvent,
+    UINT uElapse,
+    TIMERPROC lpTimerFunc);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+KillTimer(
+    HWND hWnd,
+    UINT uIDEvent);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsWindowUnicode(
+    HWND hWnd);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnableWindow(
+    HWND hWnd,
+    BOOL bEnable);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsWindowEnabled(
+    HWND hWnd);
+
+__declspec(dllimport)
+HACCEL
+__stdcall
+LoadAcceleratorsA(
+    HINSTANCE hInstance,
+    LPCSTR lpTableName);
+__declspec(dllimport)
+HACCEL
+__stdcall
+LoadAcceleratorsW(
+    HINSTANCE hInstance,
+    LPCWSTR lpTableName);
+
+
+
+
+
+
+__declspec(dllimport)
+HACCEL
+__stdcall
+CreateAcceleratorTableA(
+    LPACCEL, int);
+__declspec(dllimport)
+HACCEL
+__stdcall
+CreateAcceleratorTableW(
+    LPACCEL, int);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DestroyAcceleratorTable(
+    HACCEL hAccel);
+
+__declspec(dllimport)
+int
+__stdcall
+CopyAcceleratorTableA(
+    HACCEL hAccelSrc,
+    LPACCEL lpAccelDst,
+    int cAccelEntries);
+__declspec(dllimport)
+int
+__stdcall
+CopyAcceleratorTableW(
+    HACCEL hAccelSrc,
+    LPACCEL lpAccelDst,
+    int cAccelEntries);
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+TranslateAcceleratorA(
+    HWND hWnd,
+    HACCEL hAccTable,
+    LPMSG lpMsg);
+__declspec(dllimport)
+int
+__stdcall
+TranslateAcceleratorW(
+    HWND hWnd,
+    HACCEL hAccTable,
+    LPMSG lpMsg);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+GetSystemMetrics(
+    int nIndex);
+
+
+
+
+
+__declspec(dllimport)
+HMENU
+__stdcall
+LoadMenuA(
+    HINSTANCE hInstance,
+    LPCSTR lpMenuName);
+__declspec(dllimport)
+HMENU
+__stdcall
+LoadMenuW(
+    HINSTANCE hInstance,
+    LPCWSTR lpMenuName);
+
+
+
+
+
+
+__declspec(dllimport)
+HMENU
+__stdcall
+LoadMenuIndirectA(
+    const MENUTEMPLATEA *lpMenuTemplate);
+__declspec(dllimport)
+HMENU
+__stdcall
+LoadMenuIndirectW(
+    const MENUTEMPLATEW *lpMenuTemplate);
+
+
+
+
+
+
+__declspec(dllimport)
+HMENU
+__stdcall
+GetMenu(
+    HWND hWnd);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetMenu(
+    HWND hWnd,
+    HMENU hMenu);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ChangeMenuA(
+    HMENU hMenu,
+    UINT cmd,
+    LPCSTR lpszNewItem,
+    UINT cmdInsert,
+    UINT flags);
+__declspec(dllimport)
+BOOL
+__stdcall
+ChangeMenuW(
+    HMENU hMenu,
+    UINT cmd,
+    LPCWSTR lpszNewItem,
+    UINT cmdInsert,
+    UINT flags);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+HiliteMenuItem(
+    HWND hWnd,
+    HMENU hMenu,
+    UINT uIDHiliteItem,
+    UINT uHilite);
+
+__declspec(dllimport)
+int
+__stdcall
+GetMenuStringA(
+    HMENU hMenu,
+    UINT uIDItem,
+    LPSTR lpString,
+    int nMaxCount,
+    UINT uFlag);
+__declspec(dllimport)
+int
+__stdcall
+GetMenuStringW(
+    HMENU hMenu,
+    UINT uIDItem,
+    LPWSTR lpString,
+    int nMaxCount,
+    UINT uFlag);
+
+
+
+
+
+
+__declspec(dllimport)
+UINT
+__stdcall
+GetMenuState(
+    HMENU hMenu,
+    UINT uId,
+    UINT uFlags);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DrawMenuBar(
+    HWND hWnd);
+
+
+__declspec(dllimport)
+HMENU
+__stdcall
+GetSystemMenu(
+    HWND hWnd,
+    BOOL bRevert);
+
+
+__declspec(dllimport)
+HMENU
+__stdcall
+CreateMenu(
+    void);
+
+__declspec(dllimport)
+HMENU
+__stdcall
+CreatePopupMenu(
+    void);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DestroyMenu(
+    HMENU hMenu);
+
+__declspec(dllimport)
+DWORD
+__stdcall
+CheckMenuItem(
+    HMENU hMenu,
+    UINT uIDCheckItem,
+    UINT uCheck);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnableMenuItem(
+    HMENU hMenu,
+    UINT uIDEnableItem,
+    UINT uEnable);
+
+__declspec(dllimport)
+HMENU
+__stdcall
+GetSubMenu(
+    HMENU hMenu,
+    int nPos);
+
+__declspec(dllimport)
+UINT
+__stdcall
+GetMenuItemID(
+    HMENU hMenu,
+    int nPos);
+
+__declspec(dllimport)
+int
+__stdcall
+GetMenuItemCount(
+    HMENU hMenu);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+InsertMenuA(
+    HMENU hMenu,
+    UINT uPosition,
+    UINT uFlags,
+    UINT uIDNewItem,
+    LPCSTR lpNewItem
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+InsertMenuW(
+    HMENU hMenu,
+    UINT uPosition,
+    UINT uFlags,
+    UINT uIDNewItem,
+    LPCWSTR lpNewItem
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AppendMenuA(
+    HMENU hMenu,
+    UINT uFlags,
+    UINT uIDNewItem,
+    LPCSTR lpNewItem
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+AppendMenuW(
+    HMENU hMenu,
+    UINT uFlags,
+    UINT uIDNewItem,
+    LPCWSTR lpNewItem
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ModifyMenuA(
+    HMENU hMnu,
+    UINT uPosition,
+    UINT uFlags,
+    UINT uIDNewItem,
+    LPCSTR lpNewItem
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+ModifyMenuW(
+    HMENU hMnu,
+    UINT uPosition,
+    UINT uFlags,
+    UINT uIDNewItem,
+    LPCWSTR lpNewItem
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall RemoveMenu(
+    HMENU hMenu,
+    UINT uPosition,
+    UINT uFlags);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DeleteMenu(
+    HMENU hMenu,
+    UINT uPosition,
+    UINT uFlags);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetMenuItemBitmaps(
+    HMENU hMenu,
+    UINT uPosition,
+    UINT uFlags,
+    HBITMAP hBitmapUnchecked,
+    HBITMAP hBitmapChecked);
+
+__declspec(dllimport)
+LONG
+__stdcall
+GetMenuCheckMarkDimensions(
+    void);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+TrackPopupMenu(
+    HMENU hMenu,
+    UINT uFlags,
+    int x,
+    int y,
+    int nReserved,
+    HWND hWnd,
+    const RECT *prcRect);
+
+
+
+
+
+
+
+
+typedef struct tagTPMPARAMS
+{
+    UINT    cbSize;     
+    RECT    rcExclude;  
+}   TPMPARAMS;
+typedef TPMPARAMS  *LPTPMPARAMS;
+
+__declspec(dllimport) BOOL    __stdcall TrackPopupMenuEx(HMENU, UINT, int, int, HWND, LPTPMPARAMS);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagMENUITEMINFOA
+{
+    UINT    cbSize;
+    UINT    fMask;
+    UINT    fType;          
+    UINT    fState;         
+    UINT    wID;            
+    HMENU   hSubMenu;       
+    HBITMAP hbmpChecked;    
+    HBITMAP hbmpUnchecked;  
+    DWORD   dwItemData;     
+    LPSTR   dwTypeData;     
+    UINT    cch;            
+
+
+
+}   MENUITEMINFOA,  *LPMENUITEMINFOA;
+typedef struct tagMENUITEMINFOW
+{
+    UINT    cbSize;
+    UINT    fMask;
+    UINT    fType;          
+    UINT    fState;         
+    UINT    wID;            
+    HMENU   hSubMenu;       
+    HBITMAP hbmpChecked;    
+    HBITMAP hbmpUnchecked;  
+    DWORD   dwItemData;     
+    LPWSTR  dwTypeData;     
+    UINT    cch;            
+
+
+
+}   MENUITEMINFOW,  *LPMENUITEMINFOW;
+
+
+
+
+typedef MENUITEMINFOA MENUITEMINFO;
+typedef LPMENUITEMINFOA LPMENUITEMINFO;
+
+typedef MENUITEMINFOA const  *LPCMENUITEMINFOA;
+typedef MENUITEMINFOW const  *LPCMENUITEMINFOW;
+
+
+
+typedef LPCMENUITEMINFOA LPCMENUITEMINFO;
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+InsertMenuItemA(
+    HMENU,
+    UINT,
+    BOOL,
+    LPCMENUITEMINFOA
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+InsertMenuItemW(
+    HMENU,
+    UINT,
+    BOOL,
+    LPCMENUITEMINFOW
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetMenuItemInfoA(
+    HMENU,
+    UINT,
+    BOOL,
+    LPMENUITEMINFOA
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+GetMenuItemInfoW(
+    HMENU,
+    UINT,
+    BOOL,
+    LPMENUITEMINFOW
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetMenuItemInfoA(
+    HMENU,
+    UINT,
+    BOOL,
+    LPCMENUITEMINFOA
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+SetMenuItemInfoW(
+    HMENU,
+    UINT,
+    BOOL,
+    LPCMENUITEMINFOW
+    );
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport) UINT    __stdcall GetMenuDefaultItem(HMENU hMenu, UINT fByPos, UINT gmdiFlags);
+__declspec(dllimport) BOOL    __stdcall SetMenuDefaultItem(HMENU hMenu, UINT uItem, UINT fByPos);
+
+__declspec(dllimport) BOOL    __stdcall GetMenuItemRect(HWND hWnd, HMENU hMenu, UINT uItem, LPRECT lprcItem);
+__declspec(dllimport) int     __stdcall MenuItemFromPoint(HWND hWnd, HMENU hMenu, POINT ptScreen);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagDROPSTRUCT
+{
+    HWND    hwndSource;
+    HWND    hwndSink;
+    DWORD   wFmt;
+    DWORD   dwData;
+    POINT   ptDrop;
+    DWORD   dwControlData;
+} DROPSTRUCT, *PDROPSTRUCT, *LPDROPSTRUCT;
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+DragObject(HWND, HWND, UINT, DWORD, HCURSOR);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DragDetect(HWND, POINT);
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DrawIcon(
+    HDC hDC,
+    int X,
+    int Y,
+    HICON hIcon);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagDRAWTEXTPARAMS
+{
+    UINT    cbSize;
+    int     iTabLength;
+    int     iLeftMargin;
+    int     iRightMargin;
+    UINT    uiLengthDrawn;
+} DRAWTEXTPARAMS,  *LPDRAWTEXTPARAMS;
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+DrawTextA(
+    HDC hDC,
+    LPCSTR lpString,
+    int nCount,
+    LPRECT lpRect,
+    UINT uFormat);
+__declspec(dllimport)
+int
+__stdcall
+DrawTextW(
+    HDC hDC,
+    LPCWSTR lpString,
+    int nCount,
+    LPRECT lpRect,
+    UINT uFormat);
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+DrawTextExA(HDC, LPSTR, int, LPRECT, UINT, LPDRAWTEXTPARAMS);
+__declspec(dllimport)
+int
+__stdcall
+DrawTextExW(HDC, LPWSTR, int, LPRECT, UINT, LPDRAWTEXTPARAMS);
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GrayStringA(
+    HDC hDC,
+    HBRUSH hBrush,
+    GRAYSTRINGPROC lpOutputFunc,
+    LPARAM lpData,
+    int nCount,
+    int X,
+    int Y,
+    int nWidth,
+    int nHeight);
+__declspec(dllimport)
+BOOL
+__stdcall
+GrayStringW(
+    HDC hDC,
+    HBRUSH hBrush,
+    GRAYSTRINGPROC lpOutputFunc,
+    LPARAM lpData,
+    int nCount,
+    int X,
+    int Y,
+    int nWidth,
+    int nHeight);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport) BOOL __stdcall DrawStateA(HDC, HBRUSH, DRAWSTATEPROC, LPARAM, WPARAM, int, int, int, int, UINT);
+__declspec(dllimport) BOOL __stdcall DrawStateW(HDC, HBRUSH, DRAWSTATEPROC, LPARAM, WPARAM, int, int, int, int, UINT);
+
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+TabbedTextOutA(
+    HDC hDC,
+    int X,
+    int Y,
+    LPCSTR lpString,
+    int nCount,
+    int nTabPositions,
+    LPINT lpnTabStopPositions,
+    int nTabOrigin);
+__declspec(dllimport)
+LONG
+__stdcall
+TabbedTextOutW(
+    HDC hDC,
+    int X,
+    int Y,
+    LPCWSTR lpString,
+    int nCount,
+    int nTabPositions,
+    LPINT lpnTabStopPositions,
+    int nTabOrigin);
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetTabbedTextExtentA(
+    HDC hDC,
+    LPCSTR lpString,
+    int nCount,
+    int nTabPositions,
+    LPINT lpnTabStopPositions);
+__declspec(dllimport)
+DWORD
+__stdcall
+GetTabbedTextExtentW(
+    HDC hDC,
+    LPCWSTR lpString,
+    int nCount,
+    int nTabPositions,
+    LPINT lpnTabStopPositions);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+UpdateWindow(
+    HWND hWnd);
+
+__declspec(dllimport)
+HWND
+__stdcall
+SetActiveWindow(
+    HWND hWnd);
+
+__declspec(dllimport)
+HWND
+__stdcall
+GetForegroundWindow(
+    void);
+
+
+__declspec(dllimport) BOOL __stdcall PaintDesktop(HDC hdc);
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetForegroundWindow(
+    HWND hWnd);
+
+__declspec(dllimport)
+HWND
+__stdcall
+WindowFromDC(
+    HDC hDC);
+
+__declspec(dllimport)
+HDC
+__stdcall
+GetDC(
+    HWND hWnd);
+
+__declspec(dllimport)
+HDC
+__stdcall
+GetDCEx(
+    HWND hWnd ,
+    HRGN hrgnClip,
+    DWORD flags);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AlignRects(LPRECT arc, DWORD cCount, DWORD iPrimary, DWORD dwFlags);
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HDC
+__stdcall
+GetWindowDC(
+    HWND hWnd);
+
+__declspec(dllimport)
+int
+__stdcall
+ReleaseDC(
+    HWND hWnd,
+    HDC hDC);
+
+__declspec(dllimport)
+HDC
+__stdcall
+BeginPaint(
+    HWND hWnd,
+    LPPAINTSTRUCT lpPaint);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EndPaint(
+    HWND hWnd,
+    const PAINTSTRUCT *lpPaint);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetUpdateRect(
+    HWND hWnd,
+    LPRECT lpRect,
+    BOOL bErase);
+
+__declspec(dllimport)
+int
+__stdcall
+GetUpdateRgn(
+    HWND hWnd,
+    HRGN hRgn,
+    BOOL bErase);
+
+__declspec(dllimport)
+int
+__stdcall
+SetWindowRgn(
+    HWND hWnd,
+    HRGN hRgn,
+    BOOL bRedraw);
+
+__declspec(dllimport)
+int
+__stdcall
+GetWindowRgn(
+    HWND hWnd,
+    HRGN hRgn);
+
+__declspec(dllimport)
+int
+__stdcall
+ExcludeUpdateRgn(
+    HDC hDC,
+    HWND hWnd);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+InvalidateRect(
+    HWND hWnd ,
+    const RECT *lpRect,
+    BOOL bErase);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ValidateRect(
+    HWND hWnd ,
+    const RECT *lpRect);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+InvalidateRgn(
+    HWND hWnd,
+    HRGN hRgn,
+    BOOL bErase);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ValidateRgn(
+    HWND hWnd,
+    HRGN hRgn);
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+RedrawWindow(
+    HWND hWnd,
+    const RECT *lprcUpdate,
+    HRGN hrgnUpdate,
+    UINT flags);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+LockWindowUpdate(
+    HWND hWndLock);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ScrollWindow(
+    HWND hWnd,
+    int XAmount,
+    int YAmount,
+    const RECT *lpRect,
+    const RECT *lpClipRect);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ScrollDC(
+    HDC hDC,
+    int dx,
+    int dy,
+    const RECT *lprcScroll,
+    const RECT *lprcClip ,
+    HRGN hrgnUpdate,
+    LPRECT lprcUpdate);
+
+__declspec(dllimport)
+int
+__stdcall
+ScrollWindowEx(
+    HWND hWnd,
+    int dx,
+    int dy,
+    const RECT *prcScroll,
+    const RECT *prcClip ,
+    HRGN hrgnUpdate,
+    LPRECT prcUpdate,
+    UINT flags);
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+SetScrollPos(
+    HWND hWnd,
+    int nBar,
+    int nPos,
+    BOOL bRedraw);
+
+__declspec(dllimport)
+int
+__stdcall
+GetScrollPos(
+    HWND hWnd,
+    int nBar);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetScrollRange(
+    HWND hWnd,
+    int nBar,
+    int nMinPos,
+    int nMaxPos,
+    BOOL bRedraw);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetScrollRange(
+    HWND hWnd,
+    int nBar,
+    LPINT lpMinPos,
+    LPINT lpMaxPos);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ShowScrollBar(
+    HWND hWnd,
+    int wBar,
+    BOOL bShow);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnableScrollBar(
+    HWND hWnd,
+    UINT wSBflags,
+    UINT wArrows);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetPropA(
+    HWND hWnd,
+    LPCSTR lpString,
+    HANDLE hData);
+__declspec(dllimport)
+BOOL
+__stdcall
+SetPropW(
+    HWND hWnd,
+    LPCWSTR lpString,
+    HANDLE hData);
+
+
+
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+GetPropA(
+    HWND hWnd,
+    LPCSTR lpString);
+__declspec(dllimport)
+HANDLE
+__stdcall
+GetPropW(
+    HWND hWnd,
+    LPCWSTR lpString);
+
+
+
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+RemovePropA(
+    HWND hWnd,
+    LPCSTR lpString);
+__declspec(dllimport)
+HANDLE
+__stdcall
+RemovePropW(
+    HWND hWnd,
+    LPCWSTR lpString);
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+EnumPropsExA(
+    HWND hWnd,
+    PROPENUMPROCEXA lpEnumFunc,
+    LPARAM lParam);
+__declspec(dllimport)
+int
+__stdcall
+EnumPropsExW(
+    HWND hWnd,
+    PROPENUMPROCEXW lpEnumFunc,
+    LPARAM lParam);
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+EnumPropsA(
+    HWND hWnd,
+    PROPENUMPROCA lpEnumFunc);
+__declspec(dllimport)
+int
+__stdcall
+EnumPropsW(
+    HWND hWnd,
+    PROPENUMPROCW lpEnumFunc);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetWindowTextA(
+    HWND hWnd,
+    LPCSTR lpString);
+__declspec(dllimport)
+BOOL
+__stdcall
+SetWindowTextW(
+    HWND hWnd,
+    LPCWSTR lpString);
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+GetWindowTextA(
+    HWND hWnd,
+    LPSTR lpString,
+    int nMaxCount);
+__declspec(dllimport)
+int
+__stdcall
+GetWindowTextW(
+    HWND hWnd,
+    LPWSTR lpString,
+    int nMaxCount);
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+GetWindowTextLengthA(
+    HWND hWnd);
+__declspec(dllimport)
+int
+__stdcall
+GetWindowTextLengthW(
+    HWND hWnd);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetClientRect(
+    HWND hWnd,
+    LPRECT lpRect);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetWindowRect(
+    HWND hWnd,
+    LPRECT lpRect);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AdjustWindowRect(
+    LPRECT lpRect,
+    DWORD dwStyle,
+    BOOL bMenu);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AdjustWindowRectEx(
+    LPRECT lpRect,
+    DWORD dwStyle,
+    BOOL bMenu,
+    DWORD dwExStyle);
+
+
+
+
+typedef struct tagHELPINFO      
+{
+    UINT    cbSize;             
+    int     iContextType;       
+    int     iCtrlId;            
+    HANDLE  hItemHandle;        
+    DWORD   dwContextId;        
+    POINT   MousePos;           
+}  HELPINFO,  *LPHELPINFO;
+
+__declspec(dllimport) BOOL  __stdcall  SetWindowContextHelpId(HWND, DWORD);
+__declspec(dllimport) DWORD __stdcall  GetWindowContextHelpId(HWND);
+__declspec(dllimport) BOOL  __stdcall  SetMenuContextHelpId(HMENU, DWORD);
+__declspec(dllimport) DWORD __stdcall  GetMenuContextHelpId(HMENU);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+MessageBoxA(
+    HWND hWnd ,
+    LPCSTR lpText,
+    LPCSTR lpCaption,
+    UINT uType);
+__declspec(dllimport)
+int
+__stdcall
+MessageBoxW(
+    HWND hWnd ,
+    LPCWSTR lpText,
+    LPCWSTR lpCaption,
+    UINT uType);
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+MessageBoxExA(
+    HWND hWnd ,
+    LPCSTR lpText,
+    LPCSTR lpCaption,
+    UINT uType,
+    WORD wLanguageId);
+__declspec(dllimport)
+int
+__stdcall
+MessageBoxExW(
+    HWND hWnd ,
+    LPCWSTR lpText,
+    LPCWSTR lpCaption,
+    UINT uType,
+    WORD wLanguageId);
+
+
+
+
+
+
+
+
+typedef void (__stdcall *MSGBOXCALLBACK)(LPHELPINFO lpHelpInfo);
+
+typedef struct tagMSGBOXPARAMSA
+{
+    UINT        cbSize;
+    HWND        hwndOwner;
+    HINSTANCE   hInstance;
+    LPCSTR      lpszText;
+    LPCSTR      lpszCaption;
+    DWORD       dwStyle;
+    LPCSTR      lpszIcon;
+    DWORD       dwContextHelpId;
+    MSGBOXCALLBACK      lpfnMsgBoxCallback;
+    DWORD   dwLanguageId;
+} MSGBOXPARAMSA, *PMSGBOXPARAMSA, *LPMSGBOXPARAMSA;
+typedef struct tagMSGBOXPARAMSW
+{
+    UINT        cbSize;
+    HWND        hwndOwner;
+    HINSTANCE   hInstance;
+    LPCWSTR     lpszText;
+    LPCWSTR     lpszCaption;
+    DWORD       dwStyle;
+    LPCWSTR     lpszIcon;
+    DWORD       dwContextHelpId;
+    MSGBOXCALLBACK      lpfnMsgBoxCallback;
+    DWORD   dwLanguageId;
+} MSGBOXPARAMSW, *PMSGBOXPARAMSW, *LPMSGBOXPARAMSW;
+
+
+
+
+
+typedef MSGBOXPARAMSA MSGBOXPARAMS;
+typedef PMSGBOXPARAMSA PMSGBOXPARAMS;
+typedef LPMSGBOXPARAMSA LPMSGBOXPARAMS;
+
+
+
+__declspec(dllimport) int     __stdcall MessageBoxIndirectA(LPMSGBOXPARAMSA);
+__declspec(dllimport) int     __stdcall MessageBoxIndirectW(LPMSGBOXPARAMSW);
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+MessageBeep(
+    UINT uType);
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+ShowCursor(
+    BOOL bShow);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetCursorPos(
+    int X,
+    int Y);
+
+__declspec(dllimport)
+HCURSOR
+__stdcall
+SetCursor(
+    HCURSOR hCursor);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetCursorPos(
+    LPPOINT lpPoint);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ClipCursor(
+    const RECT *lpRect);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetClipCursor(
+    LPRECT lpRect);
+
+__declspec(dllimport)
+HCURSOR
+__stdcall
+GetCursor(
+    void);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CreateCaret(
+    HWND hWnd,
+    HBITMAP hBitmap ,
+    int nWidth,
+    int nHeight);
+
+__declspec(dllimport)
+UINT
+__stdcall
+GetCaretBlinkTime(
+    void);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetCaretBlinkTime(
+    UINT uMSeconds);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DestroyCaret(
+    void);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+HideCaret(
+    HWND hWnd);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ShowCaret(
+    HWND hWnd);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetCaretPos(
+    int X,
+    int Y);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetCaretPos(
+    LPPOINT lpPoint);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ClientToScreen(
+    HWND hWnd,
+    LPPOINT lpPoint);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ScreenToClient(
+    HWND hWnd,
+    LPPOINT lpPoint);
+
+__declspec(dllimport)
+int
+__stdcall
+MapWindowPoints(
+    HWND hWndFrom,
+    HWND hWndTo,
+    LPPOINT lpPoints,
+    UINT cPoints);
+
+__declspec(dllimport)
+HWND
+__stdcall
+WindowFromPoint(
+    POINT Point);
+
+__declspec(dllimport)
+HWND
+__stdcall
+ChildWindowFromPoint(
+    HWND hWndParent,
+    POINT Point);
+
+
+
+
+
+
+
+__declspec(dllimport) HWND    __stdcall ChildWindowFromPointEx(HWND, POINT, UINT);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetSysColor(
+    int nIndex);
+
+
+__declspec(dllimport)
+HBRUSH
+__stdcall
+GetSysColorBrush(
+    int nIndex);
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetSysColors(
+    int cElements,
+    const INT * lpaElements,
+    const COLORREF * lpaRgbValues);
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DrawFocusRect(
+    HDC hDC,
+    const RECT * lprc);
+
+__declspec(dllimport)
+int
+__stdcall
+FillRect(
+    HDC hDC,
+    const RECT *lprc,
+    HBRUSH hbr);
+
+__declspec(dllimport)
+int
+__stdcall
+FrameRect(
+    HDC hDC,
+    const RECT *lprc,
+    HBRUSH hbr);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+InvertRect(
+    HDC hDC,
+    const RECT *lprc);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetRect(
+    LPRECT lprc,
+    int xLeft,
+    int yTop,
+    int xRight,
+    int yBottom);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+    SetRectEmpty(
+    LPRECT lprc);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CopyRect(
+    LPRECT lprcDst,
+    const RECT *lprcSrc);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+InflateRect(
+    LPRECT lprc,
+    int dx,
+    int dy);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IntersectRect(
+    LPRECT lprcDst,
+    const RECT *lprcSrc1,
+    const RECT *lprcSrc2);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+UnionRect(
+    LPRECT lprcDst,
+    const RECT *lprcSrc1,
+    const RECT *lprcSrc2);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SubtractRect(
+    LPRECT lprcDst,
+    const RECT *lprcSrc1,
+    const RECT *lprcSrc2);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+OffsetRect(
+    LPRECT lprc,
+    int dx,
+    int dy);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsRectEmpty(
+    const RECT *lprc);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EqualRect(
+    const RECT *lprc1,
+    const RECT *lprc2);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+PtInRect(
+    const RECT *lprc,
+    POINT pt);
+
+
+
+__declspec(dllimport)
+WORD
+__stdcall
+GetWindowWord(
+    HWND hWnd,
+    int nIndex);
+
+__declspec(dllimport)
+WORD
+__stdcall
+SetWindowWord(
+    HWND hWnd,
+    int nIndex,
+    WORD wNewWord);
+
+__declspec(dllimport)
+LONG
+__stdcall
+GetWindowLongA(
+    HWND hWnd,
+    int nIndex);
+__declspec(dllimport)
+LONG
+__stdcall
+GetWindowLongW(
+    HWND hWnd,
+    int nIndex);
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+SetWindowLongA(
+    HWND hWnd,
+    int nIndex,
+    LONG dwNewLong);
+__declspec(dllimport)
+LONG
+__stdcall
+SetWindowLongW(
+    HWND hWnd,
+    int nIndex,
+    LONG dwNewLong);
+
+
+
+
+
+
+__declspec(dllimport)
+WORD
+__stdcall
+GetClassWord(
+    HWND hWnd,
+    int nIndex);
+
+__declspec(dllimport)
+WORD
+__stdcall
+SetClassWord(
+    HWND hWnd,
+    int nIndex,
+    WORD wNewWord);
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetClassLongA(
+    HWND hWnd,
+    int nIndex);
+__declspec(dllimport)
+DWORD
+__stdcall
+GetClassLongW(
+    HWND hWnd,
+    int nIndex);
+
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+SetClassLongA(
+    HWND hWnd,
+    int nIndex,
+    LONG dwNewLong);
+__declspec(dllimport)
+DWORD
+__stdcall
+SetClassLongW(
+    HWND hWnd,
+    int nIndex,
+    LONG dwNewLong);
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HWND
+__stdcall
+GetDesktopWindow(
+    void);
+
+
+__declspec(dllimport)
+HWND
+__stdcall
+GetParent(
+    HWND hWnd);
+
+__declspec(dllimport)
+HWND
+__stdcall
+SetParent(
+    HWND hWndChild,
+    HWND hWndNewParent);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumChildWindows(
+    HWND hWndParent,
+    WNDENUMPROC lpEnumFunc,
+    LPARAM lParam);
+
+__declspec(dllimport)
+HWND
+__stdcall
+FindWindowA(
+    LPCSTR lpClassName ,
+    LPCSTR lpWindowName);
+__declspec(dllimport)
+HWND
+__stdcall
+FindWindowW(
+    LPCWSTR lpClassName ,
+    LPCWSTR lpWindowName);
+
+
+
+
+
+
+
+__declspec(dllimport) HWND    __stdcall FindWindowExA(HWND, HWND, LPCSTR, LPCSTR);
+__declspec(dllimport) HWND    __stdcall FindWindowExW(HWND, HWND, LPCWSTR, LPCWSTR);
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumWindows(
+    WNDENUMPROC lpEnumFunc,
+    LPARAM lParam);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumThreadWindows(
+    DWORD dwThreadId,
+    WNDENUMPROC lpfn,
+    LPARAM lParam);
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+GetClassNameA(
+    HWND hWnd,
+    LPSTR lpClassName,
+    int nMaxCount);
+__declspec(dllimport)
+int
+__stdcall
+GetClassNameW(
+    HWND hWnd,
+    LPWSTR lpClassName,
+    int nMaxCount);
+
+
+
+
+
+
+__declspec(dllimport)
+HWND
+__stdcall
+GetTopWindow(
+    HWND hWnd);
+
+
+
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetWindowThreadProcessId(
+    HWND hWnd,
+    LPDWORD lpdwProcessId);
+
+
+
+
+__declspec(dllimport)
+HWND
+__stdcall
+GetLastActivePopup(
+    HWND hWnd);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HWND
+__stdcall
+GetWindow(
+    HWND hWnd,
+    UINT uCmd);
+
+
+
+
+
+
+
+__declspec(dllimport)
+HHOOK
+__stdcall
+SetWindowsHookA(
+    int nFilterType,
+    HOOKPROC pfnFilterProc);
+__declspec(dllimport)
+HHOOK
+__stdcall
+SetWindowsHookW(
+    int nFilterType,
+    HOOKPROC pfnFilterProc);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+UnhookWindowsHook(
+    int nCode,
+    HOOKPROC pfnFilterProc);
+
+__declspec(dllimport)
+HHOOK
+__stdcall
+SetWindowsHookExA(
+    int idHook,
+    HOOKPROC lpfn,
+    HINSTANCE hmod,
+    DWORD dwThreadId);
+__declspec(dllimport)
+HHOOK
+__stdcall
+SetWindowsHookExW(
+    int idHook,
+    HOOKPROC lpfn,
+    HINSTANCE hmod,
+    DWORD dwThreadId);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+UnhookWindowsHookEx(
+    HHOOK hhk);
+
+__declspec(dllimport)
+LRESULT
+__stdcall
+CallNextHookEx(
+    HHOOK hhk,
+    int nCode,
+    WPARAM wParam,
+    LPARAM lParam);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CheckMenuRadioItem(HMENU, UINT, UINT, UINT, UINT);
+
+
+
+
+
+typedef struct {
+    WORD versionNumber;
+    WORD offset;
+} MENUITEMTEMPLATEHEADER, *PMENUITEMTEMPLATEHEADER;
+
+typedef struct {        
+    WORD mtOption;
+    WORD mtID;
+    WCHAR mtString[1];
+} MENUITEMTEMPLATE, *PMENUITEMTEMPLATE;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HBITMAP
+__stdcall
+LoadBitmapA(
+    HINSTANCE hInstance,
+    LPCSTR lpBitmapName);
+__declspec(dllimport)
+HBITMAP
+__stdcall
+LoadBitmapW(
+    HINSTANCE hInstance,
+    LPCWSTR lpBitmapName);
+
+
+
+
+
+
+__declspec(dllimport)
+HCURSOR
+__stdcall
+LoadCursorA(
+    HINSTANCE hInstance,
+    LPCSTR lpCursorName);
+__declspec(dllimport)
+HCURSOR
+__stdcall
+LoadCursorW(
+    HINSTANCE hInstance,
+    LPCWSTR lpCursorName);
+
+
+
+
+
+
+__declspec(dllimport)
+HCURSOR
+__stdcall
+LoadCursorFromFileA(
+    LPCSTR    lpFileName);
+__declspec(dllimport)
+HCURSOR
+__stdcall
+LoadCursorFromFileW(
+    LPCWSTR    lpFileName);
+
+
+
+
+
+
+__declspec(dllimport)
+HCURSOR
+__stdcall
+CreateCursor(
+    HINSTANCE hInst,
+    int xHotSpot,
+    int yHotSpot,
+    int nWidth,
+    int nHeight,
+    const void *pvANDPlane,
+    const void *pvXORPlane);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DestroyCursor(
+    HCURSOR hCursor);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetSystemCursor(
+    HCURSOR hcur,
+    DWORD   id);
+
+typedef struct _ICONINFO {
+    BOOL    fIcon;
+    DWORD   xHotspot;
+    DWORD   yHotspot;
+    HBITMAP hbmMask;
+    HBITMAP hbmColor;
+} ICONINFO;
+typedef ICONINFO *PICONINFO;
+
+__declspec(dllimport)
+HICON
+__stdcall
+LoadIconA(
+    HINSTANCE hInstance,
+    LPCSTR lpIconName);
+__declspec(dllimport)
+HICON
+__stdcall
+LoadIconW(
+    HINSTANCE hInstance,
+    LPCWSTR lpIconName);
+
+
+
+
+
+
+
+__declspec(dllimport)
+HICON
+__stdcall
+CreateIcon(
+    HINSTANCE hInstance,
+    int nWidth,
+    int nHeight,
+    BYTE cPlanes,
+    BYTE cBitsPixel,
+    const BYTE *lpbANDbits,
+    const BYTE *lpbXORbits);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DestroyIcon(
+    HICON hIcon);
+
+__declspec(dllimport)
+int
+__stdcall
+LookupIconIdFromDirectory(
+    PBYTE presbits,
+    BOOL fIcon);
+
+
+__declspec(dllimport)
+int
+__stdcall
+LookupIconIdFromDirectoryEx(
+    PBYTE presbits,
+    BOOL  fIcon,
+    int   cxDesired,
+    int   cyDesired,
+    UINT  Flags);
+
+
+__declspec(dllimport)
+HICON
+__stdcall
+CreateIconFromResource(
+    PBYTE presbits,
+    DWORD dwResSize,
+    BOOL fIcon,
+    DWORD dwVer);
+
+
+__declspec(dllimport)
+HICON
+__stdcall
+CreateIconFromResourceEx(
+    PBYTE presbits,
+    DWORD dwResSize,
+    BOOL  fIcon,
+    DWORD dwVer,
+    int   cxDesired,
+    int   cyDesired,
+    UINT  Flags);
+
+
+typedef struct tagCURSORSHAPE
+{
+    int     xHotSpot;
+    int     yHotSpot;
+    int     cx;
+    int     cy;
+    int     cbWidth;
+    BYTE    Planes;
+    BYTE    BitsPixel;
+} CURSORSHAPE,  *LPCURSORSHAPE;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+LoadImageA(
+    HINSTANCE,
+    LPCSTR,
+    UINT,
+    int,
+    int,
+    UINT);
+__declspec(dllimport)
+HANDLE
+__stdcall
+LoadImageW(
+    HINSTANCE,
+    LPCWSTR,
+    UINT,
+    int,
+    int,
+    UINT);
+
+
+
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+CopyImage(
+    HANDLE,
+    UINT,
+    int,
+    int,
+    UINT);
+
+
+
+
+
+
+
+__declspec(dllimport) BOOL __stdcall DrawIconEx(HDC hdc, int xLeft, int yTop,
+              HICON hIcon, int cxWidth, int cyWidth,
+              UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags);
+
+
+__declspec(dllimport)
+HICON
+__stdcall
+CreateIconIndirect(
+    PICONINFO piconinfo);
+
+__declspec(dllimport)
+HICON
+__stdcall
+CopyIcon(
+    HICON hIcon);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetIconInfo(
+    HICON hIcon,
+    PICONINFO piconinfo);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+LoadStringA(
+    HINSTANCE hInstance,
+    UINT uID,
+    LPSTR lpBuffer,
+    int nBufferMax);
+__declspec(dllimport)
+int
+__stdcall
+LoadStringW(
+    HINSTANCE hInstance,
+    UINT uID,
+    LPWSTR lpBuffer,
+    int nBufferMax);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsDialogMessageA(
+    HWND hDlg,
+    LPMSG lpMsg);
+__declspec(dllimport)
+BOOL
+__stdcall
+IsDialogMessageW(
+    HWND hDlg,
+    LPMSG lpMsg);
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+MapDialogRect(
+    HWND hDlg,
+    LPRECT lpRect);
+
+__declspec(dllimport)
+int
+__stdcall
+DlgDirListA(
+    HWND hDlg,
+    LPSTR lpPathSpec,
+    int nIDListBox,
+    int nIDStaticPath,
+    UINT uFileType);
+__declspec(dllimport)
+int
+__stdcall
+DlgDirListW(
+    HWND hDlg,
+    LPWSTR lpPathSpec,
+    int nIDListBox,
+    int nIDStaticPath,
+    UINT uFileType);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DlgDirSelectExA(
+    HWND hDlg,
+    LPSTR lpString,
+    int nCount,
+    int nIDListBox);
+__declspec(dllimport)
+BOOL
+__stdcall
+DlgDirSelectExW(
+    HWND hDlg,
+    LPWSTR lpString,
+    int nCount,
+    int nIDListBox);
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+DlgDirListComboBoxA(
+    HWND hDlg,
+    LPSTR lpPathSpec,
+    int nIDComboBox,
+    int nIDStaticPath,
+    UINT uFiletype);
+__declspec(dllimport)
+int
+__stdcall
+DlgDirListComboBoxW(
+    HWND hDlg,
+    LPWSTR lpPathSpec,
+    int nIDComboBox,
+    int nIDStaticPath,
+    UINT uFiletype);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DlgDirSelectComboBoxExA(
+    HWND hDlg,
+    LPSTR lpString,
+    int nCount,
+    int nIDComboBox);
+__declspec(dllimport)
+BOOL
+__stdcall
+DlgDirSelectComboBoxExW(
+    HWND hDlg,
+    LPWSTR lpString,
+    int nCount,
+    int nIDComboBox);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                                  
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagSCROLLINFO
+{
+    UINT    cbSize;
+    UINT    fMask;
+    int     nMin;
+    int     nMax;
+    UINT    nPage;
+    int     nPos;
+    int     nTrackPos;
+}   SCROLLINFO,  *LPSCROLLINFO;
+typedef SCROLLINFO const  *LPCSCROLLINFO;
+
+__declspec(dllimport) int     __stdcall SetScrollInfo(HWND, int, LPCSCROLLINFO, BOOL);
+__declspec(dllimport) BOOL    __stdcall GetScrollInfo(HWND, int, LPSCROLLINFO);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagMDICREATESTRUCTA {
+    LPCSTR   szClass;
+    LPCSTR   szTitle;
+    HANDLE hOwner;
+    int x;
+    int y;
+    int cx;
+    int cy;
+    DWORD style;
+    LPARAM lParam;        
+} MDICREATESTRUCTA, *LPMDICREATESTRUCTA;
+typedef struct tagMDICREATESTRUCTW {
+    LPCWSTR  szClass;
+    LPCWSTR  szTitle;
+    HANDLE hOwner;
+    int x;
+    int y;
+    int cx;
+    int cy;
+    DWORD style;
+    LPARAM lParam;        
+} MDICREATESTRUCTW, *LPMDICREATESTRUCTW;
+
+
+
+
+typedef MDICREATESTRUCTA MDICREATESTRUCT;
+typedef LPMDICREATESTRUCTA LPMDICREATESTRUCT;
+
+
+typedef struct tagCLIENTCREATESTRUCT {
+    HANDLE hWindowMenu;
+    UINT idFirstChild;
+} CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT;
+
+__declspec(dllimport)
+LRESULT
+__stdcall
+DefFrameProcA(
+    HWND hWnd,
+    HWND hWndMDIClient ,
+    UINT uMsg,
+    WPARAM wParam,
+    LPARAM lParam);
+__declspec(dllimport)
+LRESULT
+__stdcall
+DefFrameProcW(
+    HWND hWnd,
+    HWND hWndMDIClient ,
+    UINT uMsg,
+    WPARAM wParam,
+    LPARAM lParam);
+
+
+
+
+
+
+__declspec(dllimport)
+
+LRESULT
+__stdcall
+
+
+
+
+DefMDIChildProcA(
+    HWND hWnd,
+    UINT uMsg,
+    WPARAM wParam,
+    LPARAM lParam);
+__declspec(dllimport)
+
+LRESULT
+__stdcall
+
+
+
+
+DefMDIChildProcW(
+    HWND hWnd,
+    UINT uMsg,
+    WPARAM wParam,
+    LPARAM lParam);
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+TranslateMDISysAccel(
+    HWND hWndClient,
+    LPMSG lpMsg);
+
+
+
+__declspec(dllimport)
+UINT
+__stdcall
+ArrangeIconicWindows(
+    HWND hWnd);
+
+__declspec(dllimport)
+HWND
+__stdcall
+CreateMDIWindowA(
+    LPSTR lpClassName,
+    LPSTR lpWindowName,
+    DWORD dwStyle,
+    int X,
+    int Y,
+    int nWidth,
+    int nHeight,
+    HWND hWndParent,
+    HINSTANCE hInstance,
+    LPARAM lParam
+    );
+__declspec(dllimport)
+HWND
+__stdcall
+CreateMDIWindowW(
+    LPWSTR lpClassName,
+    LPWSTR lpWindowName,
+    DWORD dwStyle,
+    int X,
+    int Y,
+    int nWidth,
+    int nHeight,
+    HWND hWndParent,
+    HINSTANCE hInstance,
+    LPARAM lParam
+    );
+
+
+
+
+
+
+
+__declspec(dllimport) WORD    __stdcall TileWindows(HWND hwndParent, UINT wHow, const RECT * lpRect, UINT cKids, const HWND  * lpKids);
+__declspec(dllimport) WORD    __stdcall CascadeWindows(HWND hwndParent, UINT wHow, const RECT * lpRect, UINT cKids,  const HWND  * lpKids);
+
+
+
+
+
+
+
+
+
+typedef DWORD HELPPOLY;
+typedef struct tagMULTIKEYHELPA {
+
+    DWORD  mkSize;
+
+
+
+    CHAR   mkKeylist;
+    CHAR   szKeyphrase[1];
+} MULTIKEYHELPA, *PMULTIKEYHELPA, *LPMULTIKEYHELPA;
+typedef struct tagMULTIKEYHELPW {
+
+    DWORD  mkSize;
+
+
+
+    WCHAR  mkKeylist;
+    WCHAR  szKeyphrase[1];
+} MULTIKEYHELPW, *PMULTIKEYHELPW, *LPMULTIKEYHELPW;
+
+
+
+
+
+typedef MULTIKEYHELPA MULTIKEYHELP;
+typedef PMULTIKEYHELPA PMULTIKEYHELP;
+typedef LPMULTIKEYHELPA LPMULTIKEYHELP;
+
+
+typedef struct tagHELPWININFOA {
+    int  wStructSize;
+    int  x;
+    int  y;
+    int  dx;
+    int  dy;
+    int  wMax;
+    CHAR   rgchMember[2];
+} HELPWININFOA, *PHELPWININFOA, *LPHELPWININFOA;
+typedef struct tagHELPWININFOW {
+    int  wStructSize;
+    int  x;
+    int  y;
+    int  dx;
+    int  dy;
+    int  wMax;
+    WCHAR  rgchMember[2];
+} HELPWININFOW, *PHELPWININFOW, *LPHELPWININFOW;
+
+
+
+
+
+typedef HELPWININFOA HELPWININFO;
+typedef PHELPWININFOA PHELPWININFO;
+typedef LPHELPWININFOA LPHELPWININFO;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+WinHelpA(
+    HWND hWndMain,
+    LPCSTR lpszHelp,
+    UINT uCommand,
+    DWORD dwData
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+WinHelpW(
+    HWND hWndMain,
+    LPCWSTR lpszHelp,
+    UINT uCommand,
+    DWORD dwData
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagNONCLIENTMETRICSA
+{
+    UINT    cbSize;
+    int     iBorderWidth;
+    int     iScrollWidth;
+    int     iScrollHeight;
+    int     iCaptionWidth;
+    int     iCaptionHeight;
+    LOGFONTA lfCaptionFont;
+    int     iSmCaptionWidth;
+    int     iSmCaptionHeight;
+    LOGFONTA lfSmCaptionFont;
+    int     iMenuWidth;
+    int     iMenuHeight;
+    LOGFONTA lfMenuFont;
+    LOGFONTA lfStatusFont;
+    LOGFONTA lfMessageFont;
+}   NONCLIENTMETRICSA, *PNONCLIENTMETRICSA, * LPNONCLIENTMETRICSA;
+typedef struct tagNONCLIENTMETRICSW
+{
+    UINT    cbSize;
+    int     iBorderWidth;
+    int     iScrollWidth;
+    int     iScrollHeight;
+    int     iCaptionWidth;
+    int     iCaptionHeight;
+    LOGFONTW lfCaptionFont;
+    int     iSmCaptionWidth;
+    int     iSmCaptionHeight;
+    LOGFONTW lfSmCaptionFont;
+    int     iMenuWidth;
+    int     iMenuHeight;
+    LOGFONTW lfMenuFont;
+    LOGFONTW lfStatusFont;
+    LOGFONTW lfMessageFont;
+}   NONCLIENTMETRICSW, *PNONCLIENTMETRICSW, * LPNONCLIENTMETRICSW;
+
+
+
+
+
+typedef NONCLIENTMETRICSA NONCLIENTMETRICS;
+typedef PNONCLIENTMETRICSA PNONCLIENTMETRICS;
+typedef LPNONCLIENTMETRICSA LPNONCLIENTMETRICS;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagMINIMIZEDMETRICS
+{
+    UINT    cbSize;
+    int     iWidth;
+    int     iHorzGap;
+    int     iVertGap;
+    int     iArrange;
+}   MINIMIZEDMETRICS, *PMINIMIZEDMETRICS, *LPMINIMIZEDMETRICS;
+
+
+
+typedef struct tagICONMETRICSA
+{
+    UINT    cbSize;
+    int     iHorzSpacing;
+    int     iVertSpacing;
+    int     iTitleWrap;
+    LOGFONTA lfFont;
+}   ICONMETRICSA, *PICONMETRICSA, *LPICONMETRICSA;
+typedef struct tagICONMETRICSW
+{
+    UINT    cbSize;
+    int     iHorzSpacing;
+    int     iVertSpacing;
+    int     iTitleWrap;
+    LOGFONTW lfFont;
+}   ICONMETRICSW, *PICONMETRICSW, *LPICONMETRICSW;
+
+
+
+
+
+typedef ICONMETRICSA ICONMETRICS;
+typedef PICONMETRICSA PICONMETRICS;
+typedef LPICONMETRICSA LPICONMETRICS;
+
+
+
+
+typedef struct tagANIMATIONINFO
+{
+    UINT    cbSize;
+    int     iMinAnimate;
+}   ANIMATIONINFO, *LPANIMATIONINFO;
+
+typedef struct tagSERIALKEYSA
+{
+    UINT    cbSize;
+    DWORD   dwFlags;
+    LPSTR     lpszActivePort;
+    LPSTR     lpszPort;
+    UINT    iBaudRate;
+    UINT    iPortState;
+    UINT    iActive;
+}   SERIALKEYSA, *LPSERIALKEYSA;
+typedef struct tagSERIALKEYSW
+{
+    UINT    cbSize;
+    DWORD   dwFlags;
+    LPWSTR    lpszActivePort;
+    LPWSTR    lpszPort;
+    UINT    iBaudRate;
+    UINT    iPortState;
+    UINT    iActive;
+}   SERIALKEYSW, *LPSERIALKEYSW;
+
+
+
+
+typedef SERIALKEYSA SERIALKEYS;
+typedef LPSERIALKEYSA LPSERIALKEYS;
+
+
+
+
+
+
+
+
+typedef struct tagHIGHCONTRASTA
+{
+    UINT    cbSize;
+    DWORD   dwFlags;
+    LPSTR   lpszDefaultScheme;
+}   HIGHCONTRASTA, *LPHIGHCONTRASTA;
+typedef struct tagHIGHCONTRASTW
+{
+    UINT    cbSize;
+    DWORD   dwFlags;
+    LPWSTR  lpszDefaultScheme;
+}   HIGHCONTRASTW, *LPHIGHCONTRASTW;
+
+
+
+
+typedef HIGHCONTRASTA HIGHCONTRAST;
+typedef LPHIGHCONTRASTA LPHIGHCONTRAST;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+ChangeDisplaySettingsA(
+    LPDEVMODEA  lpDevMode,
+    DWORD       dwFlags);
+__declspec(dllimport)
+LONG
+__stdcall
+ChangeDisplaySettingsW(
+    LPDEVMODEW  lpDevMode,
+    DWORD       dwFlags);
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+ChangeDisplaySettingsExA(
+    LPCSTR    lpszDeviceName,
+    LPDEVMODEA  lpDevMode,
+    HWND        hwnd,
+    DWORD       dwflags,
+    LPVOID      lParam);
+__declspec(dllimport)
+LONG
+__stdcall
+ChangeDisplaySettingsExW(
+    LPCWSTR    lpszDeviceName,
+    LPDEVMODEW  lpDevMode,
+    HWND        hwnd,
+    DWORD       dwflags,
+    LPVOID      lParam);
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumDisplaySettingsA(
+    LPCSTR lpszDeviceName,
+    DWORD iModeNum,
+    LPDEVMODEA lpDevMode);
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumDisplaySettingsW(
+    LPCWSTR lpszDeviceName,
+    DWORD iModeNum,
+    LPDEVMODEW lpDevMode);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SystemParametersInfoA(
+    UINT uiAction,
+    UINT uiParam,
+    PVOID pvParam,
+    UINT fWinIni);
+__declspec(dllimport)
+BOOL
+__stdcall
+SystemParametersInfoW(
+    UINT uiAction,
+    UINT uiParam,
+    PVOID pvParam,
+    UINT fWinIni);
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagFILTERKEYS
+{
+    UINT  cbSize;
+    DWORD dwFlags;
+    DWORD iWaitMSec;            
+    DWORD iDelayMSec;           
+    DWORD iRepeatMSec;          
+    DWORD iBounceMSec;          
+} FILTERKEYS, *LPFILTERKEYS;
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagSTICKYKEYS
+{
+    UINT  cbSize;
+    DWORD dwFlags;
+} STICKYKEYS, *LPSTICKYKEYS;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagMOUSEKEYS
+{
+    UINT cbSize;
+    DWORD dwFlags;
+    DWORD iMaxSpeed;
+    DWORD iTimeToMaxSpeed;
+    DWORD iCtrlSpeed;
+    DWORD dwReserved1;
+    DWORD dwReserved2;
+} MOUSEKEYS, *LPMOUSEKEYS;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagACCESSTIMEOUT
+{
+    UINT  cbSize;
+    DWORD dwFlags;
+    DWORD iTimeOutMSec;
+} ACCESSTIMEOUT, *LPACCESSTIMEOUT;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagSOUNDSENTRYA
+{
+    UINT cbSize;
+    DWORD dwFlags;
+    DWORD iFSTextEffect;
+    DWORD iFSTextEffectMSec;
+    DWORD iFSTextEffectColorBits;
+    DWORD iFSGrafEffect;
+    DWORD iFSGrafEffectMSec;
+    DWORD iFSGrafEffectColor;
+    DWORD iWindowsEffect;
+    DWORD iWindowsEffectMSec;
+    LPSTR   lpszWindowsEffectDLL;
+    DWORD iWindowsEffectOrdinal;
+} SOUNDSENTRYA, *LPSOUNDSENTRYA;
+typedef struct tagSOUNDSENTRYW
+{
+    UINT cbSize;
+    DWORD dwFlags;
+    DWORD iFSTextEffect;
+    DWORD iFSTextEffectMSec;
+    DWORD iFSTextEffectColorBits;
+    DWORD iFSGrafEffect;
+    DWORD iFSGrafEffectMSec;
+    DWORD iFSGrafEffectColor;
+    DWORD iWindowsEffect;
+    DWORD iWindowsEffectMSec;
+    LPWSTR  lpszWindowsEffectDLL;
+    DWORD iWindowsEffectOrdinal;
+} SOUNDSENTRYW, *LPSOUNDSENTRYW;
+
+
+
+
+typedef SOUNDSENTRYA SOUNDSENTRY;
+typedef LPSOUNDSENTRYA LPSOUNDSENTRY;
+
+
+
+
+
+
+
+
+
+typedef struct tagTOGGLEKEYS
+{
+    UINT cbSize;
+    DWORD dwFlags;
+} TOGGLEKEYS, *LPTOGGLEKEYS;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+void
+__stdcall
+SetDebugErrorLevel(
+    DWORD dwLevel
+    );
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+void
+__stdcall
+SetLastErrorEx(
+    DWORD dwErrCode,
+    DWORD dwType
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef DWORD LCTYPE;
+
+
+
+
+
+typedef DWORD CALTYPE;
+
+
+
+
+
+typedef DWORD CALID;
+
+
+
+
+
+
+typedef struct _cpinfo {
+    UINT    MaxCharSize;                    
+    BYTE    DefaultChar[2];   
+    BYTE    LeadByte[12];        
+} CPINFO, *LPCPINFO;
+
+typedef struct _cpinfoexA {
+    UINT    MaxCharSize;                    
+    BYTE    DefaultChar[2];   
+    BYTE    LeadByte[12];        
+    WCHAR   UnicodeDefaultChar;             
+    UINT    CodePage;                       
+    CHAR    CodePageName[260];         
+} CPINFOEXA, *LPCPINFOEXA;
+typedef struct _cpinfoexW {
+    UINT    MaxCharSize;                    
+    BYTE    DefaultChar[2];   
+    BYTE    LeadByte[12];        
+    WCHAR   UnicodeDefaultChar;             
+    UINT    CodePage;                       
+    WCHAR   CodePageName[260];         
+} CPINFOEXW, *LPCPINFOEXW;
+
+
+
+
+typedef CPINFOEXA CPINFOEX;
+typedef LPCPINFOEXA LPCPINFOEX;
+
+
+
+
+
+
+
+typedef struct _numberfmtA {
+    UINT    NumDigits;                 
+    UINT    LeadingZero;               
+    UINT    Grouping;                  
+    LPSTR   lpDecimalSep;              
+    LPSTR   lpThousandSep;             
+    UINT    NegativeOrder;             
+} NUMBERFMTA, *LPNUMBERFMTA;
+typedef struct _numberfmtW {
+    UINT    NumDigits;                 
+    UINT    LeadingZero;               
+    UINT    Grouping;                  
+    LPWSTR  lpDecimalSep;              
+    LPWSTR  lpThousandSep;             
+    UINT    NegativeOrder;             
+} NUMBERFMTW, *LPNUMBERFMTW;
+
+
+
+
+typedef NUMBERFMTA NUMBERFMT;
+typedef LPNUMBERFMTA LPNUMBERFMT;
+
+
+
+
+
+
+
+typedef struct _currencyfmtA {
+    UINT    NumDigits;                 
+    UINT    LeadingZero;               
+    UINT    Grouping;                  
+    LPSTR   lpDecimalSep;              
+    LPSTR   lpThousandSep;             
+    UINT    NegativeOrder;             
+    UINT    PositiveOrder;             
+    LPSTR   lpCurrencySymbol;          
+} CURRENCYFMTA, *LPCURRENCYFMTA;
+typedef struct _currencyfmtW {
+    UINT    NumDigits;                 
+    UINT    LeadingZero;               
+    UINT    Grouping;                  
+    LPWSTR  lpDecimalSep;              
+    LPWSTR  lpThousandSep;             
+    UINT    NegativeOrder;             
+    UINT    PositiveOrder;             
+    LPWSTR  lpCurrencySymbol;          
+} CURRENCYFMTW, *LPCURRENCYFMTW;
+
+
+
+
+typedef CURRENCYFMTA CURRENCYFMT;
+typedef LPCURRENCYFMTA LPCURRENCYFMT;
+
+
+
+
+
+
+
+
+
+typedef BOOL (__stdcall* LOCALE_ENUMPROCA)(LPSTR);
+typedef BOOL (__stdcall* CODEPAGE_ENUMPROCA)(LPSTR);
+typedef BOOL (__stdcall* DATEFMT_ENUMPROCA)(LPSTR);
+typedef BOOL (__stdcall* DATEFMT_ENUMPROCEXA)(LPSTR, CALID);
+typedef BOOL (__stdcall* TIMEFMT_ENUMPROCA)(LPSTR);
+typedef BOOL (__stdcall* CALINFO_ENUMPROCA)(LPSTR);
+typedef BOOL (__stdcall* CALINFO_ENUMPROCEXA)(LPSTR, CALID);
+
+typedef BOOL (__stdcall* LOCALE_ENUMPROCW)(LPWSTR);
+typedef BOOL (__stdcall* CODEPAGE_ENUMPROCW)(LPWSTR);
+typedef BOOL (__stdcall* DATEFMT_ENUMPROCW)(LPWSTR);
+typedef BOOL (__stdcall* DATEFMT_ENUMPROCEXW)(LPWSTR, CALID);
+typedef BOOL (__stdcall* TIMEFMT_ENUMPROCW)(LPWSTR);
+typedef BOOL (__stdcall* CALINFO_ENUMPROCW)(LPWSTR);
+typedef BOOL (__stdcall* CALINFO_ENUMPROCEXW)(LPWSTR, CALID);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsValidCodePage(
+    UINT  CodePage);
+
+__declspec(dllimport)
+UINT
+__stdcall
+GetACP(void);
+
+__declspec(dllimport)
+UINT
+__stdcall
+GetOEMCP(void);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetCPInfo(
+    UINT      CodePage,
+    LPCPINFO  lpCPInfo);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetCPInfoExA(
+    UINT         CodePage,
+    DWORD        dwFlags,
+    LPCPINFOEXA  lpCPInfoEx);
+__declspec(dllimport)
+BOOL
+__stdcall
+GetCPInfoExW(
+    UINT         CodePage,
+    DWORD        dwFlags,
+    LPCPINFOEXW  lpCPInfoEx);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsDBCSLeadByte(
+    BYTE  TestChar);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsDBCSLeadByteEx(
+    UINT  CodePage,
+    BYTE  TestChar);
+
+__declspec(dllimport)
+int
+__stdcall
+MultiByteToWideChar(
+    UINT     CodePage,
+    DWORD    dwFlags,
+    LPCSTR   lpMultiByteStr,
+    int      cchMultiByte,
+    LPWSTR   lpWideCharStr,
+    int      cchWideChar);
+
+__declspec(dllimport)
+int
+__stdcall
+WideCharToMultiByte(
+    UINT     CodePage,
+    DWORD    dwFlags,
+    LPCWSTR  lpWideCharStr,
+    int      cchWideChar,
+    LPSTR    lpMultiByteStr,
+    int      cchMultiByte,
+    LPCSTR   lpDefaultChar,
+    LPBOOL   lpUsedDefaultChar);
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+CompareStringA(
+    LCID     Locale,
+    DWORD    dwCmpFlags,
+    LPCSTR lpString1,
+    int      cchCount1,
+    LPCSTR lpString2,
+    int      cchCount2);
+__declspec(dllimport)
+int
+__stdcall
+CompareStringW(
+    LCID     Locale,
+    DWORD    dwCmpFlags,
+    LPCWSTR lpString1,
+    int      cchCount1,
+    LPCWSTR lpString2,
+    int      cchCount2);
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+LCMapStringA(
+    LCID     Locale,
+    DWORD    dwMapFlags,
+    LPCSTR lpSrcStr,
+    int      cchSrc,
+    LPSTR  lpDestStr,
+    int      cchDest);
+__declspec(dllimport)
+int
+__stdcall
+LCMapStringW(
+    LCID     Locale,
+    DWORD    dwMapFlags,
+    LPCWSTR lpSrcStr,
+    int      cchSrc,
+    LPWSTR  lpDestStr,
+    int      cchDest);
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+GetLocaleInfoA(
+    LCID     Locale,
+    LCTYPE   LCType,
+    LPSTR  lpLCData,
+    int      cchData);
+__declspec(dllimport)
+int
+__stdcall
+GetLocaleInfoW(
+    LCID     Locale,
+    LCTYPE   LCType,
+    LPWSTR  lpLCData,
+    int      cchData);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetLocaleInfoA(
+    LCID     Locale,
+    LCTYPE   LCType,
+    LPCSTR lpLCData);
+__declspec(dllimport)
+BOOL
+__stdcall
+SetLocaleInfoW(
+    LCID     Locale,
+    LCTYPE   LCType,
+    LPCWSTR lpLCData);
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+GetTimeFormatA(
+    LCID     Locale,
+    DWORD    dwFlags,
+    const SYSTEMTIME *lpTime,
+    LPCSTR lpFormat,
+    LPSTR  lpTimeStr,
+    int      cchTime);
+__declspec(dllimport)
+int
+__stdcall
+GetTimeFormatW(
+    LCID     Locale,
+    DWORD    dwFlags,
+    const SYSTEMTIME *lpTime,
+    LPCWSTR lpFormat,
+    LPWSTR  lpTimeStr,
+    int      cchTime);
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+GetDateFormatA(
+    LCID     Locale,
+    DWORD    dwFlags,
+    const SYSTEMTIME *lpDate,
+    LPCSTR lpFormat,
+    LPSTR  lpDateStr,
+    int      cchDate);
+__declspec(dllimport)
+int
+__stdcall
+GetDateFormatW(
+    LCID     Locale,
+    DWORD    dwFlags,
+    const SYSTEMTIME *lpDate,
+    LPCWSTR lpFormat,
+    LPWSTR  lpDateStr,
+    int      cchDate);
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+GetNumberFormatA(
+    LCID     Locale,
+    DWORD    dwFlags,
+    LPCSTR lpValue,
+    const NUMBERFMTA *lpFormat,
+    LPSTR  lpNumberStr,
+    int      cchNumber);
+__declspec(dllimport)
+int
+__stdcall
+GetNumberFormatW(
+    LCID     Locale,
+    DWORD    dwFlags,
+    LPCWSTR lpValue,
+    const NUMBERFMTW *lpFormat,
+    LPWSTR  lpNumberStr,
+    int      cchNumber);
+
+
+
+
+
+
+__declspec(dllimport)
+int
+__stdcall
+GetCurrencyFormatA(
+    LCID     Locale,
+    DWORD    dwFlags,
+    LPCSTR lpValue,
+    const CURRENCYFMTA *lpFormat,
+    LPSTR  lpCurrencyStr,
+    int      cchCurrency);
+__declspec(dllimport)
+int
+__stdcall
+GetCurrencyFormatW(
+    LCID     Locale,
+    DWORD    dwFlags,
+    LPCWSTR lpValue,
+    const CURRENCYFMTW *lpFormat,
+    LPWSTR  lpCurrencyStr,
+    int      cchCurrency);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumCalendarInfoA(
+    CALINFO_ENUMPROCA lpCalInfoEnumProc,
+    LCID              Locale,
+    CALID             Calendar,
+    CALTYPE           CalType);
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumCalendarInfoW(
+    CALINFO_ENUMPROCW lpCalInfoEnumProc,
+    LCID              Locale,
+    CALID             Calendar,
+    CALTYPE           CalType);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumTimeFormatsA(
+    TIMEFMT_ENUMPROCA lpTimeFmtEnumProc,
+    LCID              Locale,
+    DWORD             dwFlags);
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumTimeFormatsW(
+    TIMEFMT_ENUMPROCW lpTimeFmtEnumProc,
+    LCID              Locale,
+    DWORD             dwFlags);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumDateFormatsA(
+    DATEFMT_ENUMPROCA lpDateFmtEnumProc,
+    LCID              Locale,
+    DWORD             dwFlags);
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumDateFormatsW(
+    DATEFMT_ENUMPROCW lpDateFmtEnumProc,
+    LCID              Locale,
+    DWORD             dwFlags);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+IsValidLocale(
+    LCID   Locale,
+    DWORD  dwFlags);
+
+__declspec(dllimport)
+LCID
+__stdcall
+ConvertDefaultLocale(
+    LCID   Locale);
+
+__declspec(dllimport)
+LCID
+__stdcall
+GetThreadLocale(void);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetThreadLocale(
+    LCID  Locale
+    );
+
+__declspec(dllimport)
+LANGID
+__stdcall
+GetSystemDefaultLangID(void);
+
+__declspec(dllimport)
+LANGID
+__stdcall
+GetUserDefaultLangID(void);
+
+__declspec(dllimport)
+LCID
+__stdcall
+GetSystemDefaultLCID(void);
+
+__declspec(dllimport)
+LCID
+__stdcall
+GetUserDefaultLCID(void);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetStringTypeExA(
+    LCID     Locale,
+    DWORD    dwInfoType,
+    LPCSTR lpSrcStr,
+    int      cchSrc,
+    LPWORD   lpCharType);
+__declspec(dllimport)
+BOOL
+__stdcall
+GetStringTypeExW(
+    LCID     Locale,
+    DWORD    dwInfoType,
+    LPCWSTR lpSrcStr,
+    int      cchSrc,
+    LPWORD   lpCharType);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetStringTypeA(
+    LCID     Locale,
+    DWORD    dwInfoType,
+    LPCSTR   lpSrcStr,
+    int      cchSrc,
+    LPWORD   lpCharType);
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetStringTypeW(
+    DWORD    dwInfoType,
+    LPCWSTR  lpSrcStr,
+    int      cchSrc,
+    LPWORD   lpCharType);
+
+
+__declspec(dllimport)
+int
+__stdcall
+FoldStringA(
+    DWORD    dwMapFlags,
+    LPCSTR lpSrcStr,
+    int      cchSrc,
+    LPSTR  lpDestStr,
+    int      cchDest);
+__declspec(dllimport)
+int
+__stdcall
+FoldStringW(
+    DWORD    dwMapFlags,
+    LPCWSTR lpSrcStr,
+    int      cchSrc,
+    LPWSTR  lpDestStr,
+    int      cchDest);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumSystemLocalesA(
+    LOCALE_ENUMPROCA lpLocaleEnumProc,
+    DWORD            dwFlags);
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumSystemLocalesW(
+    LOCALE_ENUMPROCW lpLocaleEnumProc,
+    DWORD            dwFlags);
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumSystemCodePagesA(
+    CODEPAGE_ENUMPROCA lpCodePageEnumProc,
+    DWORD              dwFlags);
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumSystemCodePagesW(
+    CODEPAGE_ENUMPROCW lpCodePageEnumProc,
+    DWORD              dwFlags);
+
+
+
+
+
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+typedef struct _COORD {
+    SHORT X;
+    SHORT Y;
+} COORD, *PCOORD;
+
+typedef struct _SMALL_RECT {
+    SHORT Left;
+    SHORT Top;
+    SHORT Right;
+    SHORT Bottom;
+} SMALL_RECT, *PSMALL_RECT;
+
+typedef struct _KEY_EVENT_RECORD {
+    BOOL bKeyDown;
+    WORD wRepeatCount;
+    WORD wVirtualKeyCode;
+    WORD wVirtualScanCode;
+    union {
+        WCHAR UnicodeChar;
+        CHAR   AsciiChar;
+    } uChar;
+    DWORD dwControlKeyState;
+} KEY_EVENT_RECORD, *PKEY_EVENT_RECORD;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _MOUSE_EVENT_RECORD {
+    COORD dwMousePosition;
+    DWORD dwButtonState;
+    DWORD dwControlKeyState;
+    DWORD dwEventFlags;
+} MOUSE_EVENT_RECORD, *PMOUSE_EVENT_RECORD;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _WINDOW_BUFFER_SIZE_RECORD {
+    COORD dwSize;
+} WINDOW_BUFFER_SIZE_RECORD, *PWINDOW_BUFFER_SIZE_RECORD;
+
+typedef struct _MENU_EVENT_RECORD {
+    UINT dwCommandId;
+} MENU_EVENT_RECORD, *PMENU_EVENT_RECORD;
+
+typedef struct _FOCUS_EVENT_RECORD {
+    BOOL bSetFocus;
+} FOCUS_EVENT_RECORD, *PFOCUS_EVENT_RECORD;
+
+typedef struct _INPUT_RECORD {
+    WORD EventType;
+    union {
+        KEY_EVENT_RECORD KeyEvent;
+        MOUSE_EVENT_RECORD MouseEvent;
+        WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
+        MENU_EVENT_RECORD MenuEvent;
+        FOCUS_EVENT_RECORD FocusEvent;
+    } Event;
+} INPUT_RECORD, *PINPUT_RECORD;
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _CHAR_INFO {
+    union {
+        WCHAR UnicodeChar;
+        CHAR   AsciiChar;
+    } Char;
+    WORD Attributes;
+} CHAR_INFO, *PCHAR_INFO;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
+    COORD dwSize;
+    COORD dwCursorPosition;
+    WORD  wAttributes;
+    SMALL_RECT srWindow;
+    COORD dwMaximumWindowSize;
+} CONSOLE_SCREEN_BUFFER_INFO, *PCONSOLE_SCREEN_BUFFER_INFO;
+
+typedef struct _CONSOLE_CURSOR_INFO {
+    DWORD  dwSize;
+    BOOL   bVisible;
+} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;
+
+
+
+
+
+typedef
+BOOL
+(__stdcall *PHANDLER_ROUTINE)(
+    DWORD CtrlType
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+PeekConsoleInputA(
+    HANDLE hConsoleInput,
+    PINPUT_RECORD lpBuffer,
+    DWORD nLength,
+    LPDWORD lpNumberOfEventsRead
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+PeekConsoleInputW(
+    HANDLE hConsoleInput,
+    PINPUT_RECORD lpBuffer,
+    DWORD nLength,
+    LPDWORD lpNumberOfEventsRead
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ReadConsoleInputA(
+    HANDLE hConsoleInput,
+    PINPUT_RECORD lpBuffer,
+    DWORD nLength,
+    LPDWORD lpNumberOfEventsRead
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+ReadConsoleInputW(
+    HANDLE hConsoleInput,
+    PINPUT_RECORD lpBuffer,
+    DWORD nLength,
+    LPDWORD lpNumberOfEventsRead
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+WriteConsoleInputA(
+    HANDLE hConsoleInput,
+    const INPUT_RECORD *lpBuffer,
+    DWORD nLength,
+    LPDWORD lpNumberOfEventsWritten
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+WriteConsoleInputW(
+    HANDLE hConsoleInput,
+    const INPUT_RECORD *lpBuffer,
+    DWORD nLength,
+    LPDWORD lpNumberOfEventsWritten
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ReadConsoleOutputA(
+    HANDLE hConsoleOutput,
+    PCHAR_INFO lpBuffer,
+    COORD dwBufferSize,
+    COORD dwBufferCoord,
+    PSMALL_RECT lpReadRegion
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+ReadConsoleOutputW(
+    HANDLE hConsoleOutput,
+    PCHAR_INFO lpBuffer,
+    COORD dwBufferSize,
+    COORD dwBufferCoord,
+    PSMALL_RECT lpReadRegion
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+WriteConsoleOutputA(
+    HANDLE hConsoleOutput,
+    const CHAR_INFO *lpBuffer,
+    COORD dwBufferSize,
+    COORD dwBufferCoord,
+    PSMALL_RECT lpWriteRegion
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+WriteConsoleOutputW(
+    HANDLE hConsoleOutput,
+    const CHAR_INFO *lpBuffer,
+    COORD dwBufferSize,
+    COORD dwBufferCoord,
+    PSMALL_RECT lpWriteRegion
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ReadConsoleOutputCharacterA(
+    HANDLE hConsoleOutput,
+    LPSTR lpCharacter,
+    DWORD nLength,
+    COORD dwReadCoord,
+    LPDWORD lpNumberOfCharsRead
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+ReadConsoleOutputCharacterW(
+    HANDLE hConsoleOutput,
+    LPWSTR lpCharacter,
+    DWORD nLength,
+    COORD dwReadCoord,
+    LPDWORD lpNumberOfCharsRead
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ReadConsoleOutputAttribute(
+    HANDLE hConsoleOutput,
+    LPWORD lpAttribute,
+    DWORD nLength,
+    COORD dwReadCoord,
+    LPDWORD lpNumberOfAttrsRead
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+WriteConsoleOutputCharacterA(
+    HANDLE hConsoleOutput,
+    LPCSTR lpCharacter,
+    DWORD nLength,
+    COORD dwWriteCoord,
+    LPDWORD lpNumberOfCharsWritten
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+WriteConsoleOutputCharacterW(
+    HANDLE hConsoleOutput,
+    LPCWSTR lpCharacter,
+    DWORD nLength,
+    COORD dwWriteCoord,
+    LPDWORD lpNumberOfCharsWritten
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+WriteConsoleOutputAttribute(
+    HANDLE hConsoleOutput,
+    const WORD *lpAttribute,
+    DWORD nLength,
+    COORD dwWriteCoord,
+    LPDWORD lpNumberOfAttrsWritten
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+FillConsoleOutputCharacterA(
+    HANDLE hConsoleOutput,
+    CHAR  cCharacter,
+    DWORD  nLength,
+    COORD  dwWriteCoord,
+    LPDWORD lpNumberOfCharsWritten
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+FillConsoleOutputCharacterW(
+    HANDLE hConsoleOutput,
+    WCHAR  cCharacter,
+    DWORD  nLength,
+    COORD  dwWriteCoord,
+    LPDWORD lpNumberOfCharsWritten
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+FillConsoleOutputAttribute(
+    HANDLE hConsoleOutput,
+    WORD   wAttribute,
+    DWORD  nLength,
+    COORD  dwWriteCoord,
+    LPDWORD lpNumberOfAttrsWritten
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetConsoleMode(
+    HANDLE hConsoleHandle,
+    LPDWORD lpMode
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetNumberOfConsoleInputEvents(
+    HANDLE hConsoleInput,
+    LPDWORD lpNumberOfEvents
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetConsoleScreenBufferInfo(
+    HANDLE hConsoleOutput,
+    PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo
+    );
+
+__declspec(dllimport)
+COORD
+__stdcall
+GetLargestConsoleWindowSize(
+    HANDLE hConsoleOutput
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetConsoleCursorInfo(
+    HANDLE hConsoleOutput,
+    PCONSOLE_CURSOR_INFO lpConsoleCursorInfo
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetNumberOfConsoleMouseButtons(
+    LPDWORD lpNumberOfMouseButtons
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetConsoleMode(
+    HANDLE hConsoleHandle,
+    DWORD dwMode
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetConsoleActiveScreenBuffer(
+    HANDLE hConsoleOutput
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+FlushConsoleInputBuffer(
+    HANDLE hConsoleInput
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetConsoleScreenBufferSize(
+    HANDLE hConsoleOutput,
+    COORD dwSize
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetConsoleCursorPosition(
+    HANDLE hConsoleOutput,
+    COORD dwCursorPosition
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetConsoleCursorInfo(
+    HANDLE hConsoleOutput,
+    const CONSOLE_CURSOR_INFO *lpConsoleCursorInfo
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ScrollConsoleScreenBufferA(
+    HANDLE hConsoleOutput,
+    const SMALL_RECT *lpScrollRectangle,
+    const SMALL_RECT *lpClipRectangle,
+    COORD dwDestinationOrigin,
+    const CHAR_INFO *lpFill
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+ScrollConsoleScreenBufferW(
+    HANDLE hConsoleOutput,
+    const SMALL_RECT *lpScrollRectangle,
+    const SMALL_RECT *lpClipRectangle,
+    COORD dwDestinationOrigin,
+    const CHAR_INFO *lpFill
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetConsoleWindowInfo(
+    HANDLE hConsoleOutput,
+    BOOL bAbsolute,
+    const SMALL_RECT *lpConsoleWindow
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetConsoleTextAttribute(
+    HANDLE hConsoleOutput,
+    WORD wAttributes
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetConsoleCtrlHandler(
+    PHANDLER_ROUTINE HandlerRoutine,
+    BOOL Add
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GenerateConsoleCtrlEvent(
+    DWORD dwCtrlEvent,
+    DWORD dwProcessGroupId
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AllocConsole( void );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+FreeConsole( void );
+
+
+__declspec(dllimport)
+DWORD
+__stdcall
+GetConsoleTitleA(
+    LPSTR lpConsoleTitle,
+    DWORD nSize
+    );
+__declspec(dllimport)
+DWORD
+__stdcall
+GetConsoleTitleW(
+    LPWSTR lpConsoleTitle,
+    DWORD nSize
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetConsoleTitleA(
+    LPCSTR lpConsoleTitle
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+SetConsoleTitleW(
+    LPCWSTR lpConsoleTitle
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ReadConsoleA(
+    HANDLE hConsoleInput,
+    LPVOID lpBuffer,
+    DWORD nNumberOfCharsToRead,
+    LPDWORD lpNumberOfCharsRead,
+    LPVOID lpReserved
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+ReadConsoleW(
+    HANDLE hConsoleInput,
+    LPVOID lpBuffer,
+    DWORD nNumberOfCharsToRead,
+    LPDWORD lpNumberOfCharsRead,
+    LPVOID lpReserved
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+WriteConsoleA(
+    HANDLE hConsoleOutput,
+    const void *lpBuffer,
+    DWORD nNumberOfCharsToWrite,
+    LPDWORD lpNumberOfCharsWritten,
+    LPVOID lpReserved
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+WriteConsoleW(
+    HANDLE hConsoleOutput,
+    const void *lpBuffer,
+    DWORD nNumberOfCharsToWrite,
+    LPDWORD lpNumberOfCharsWritten,
+    LPVOID lpReserved
+    );
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+HANDLE
+__stdcall
+CreateConsoleScreenBuffer(
+    DWORD dwDesiredAccess,
+    DWORD dwShareMode,
+    const SECURITY_ATTRIBUTES *lpSecurityAttributes,
+    DWORD dwFlags,
+    LPVOID lpScreenBufferData
+    );
+
+__declspec(dllimport)
+UINT
+__stdcall
+GetConsoleCP( void );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetConsoleCP(
+    UINT wCodePageID
+    );
+
+__declspec(dllimport)
+UINT
+__stdcall
+GetConsoleOutputCP( void );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetConsoleOutputCP(
+    UINT wCodePageID
+    );
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagVS_FIXEDFILEINFO
+{
+    DWORD   dwSignature;            
+    DWORD   dwStrucVersion;         
+    DWORD   dwFileVersionMS;        
+    DWORD   dwFileVersionLS;        
+    DWORD   dwProductVersionMS;     
+    DWORD   dwProductVersionLS;     
+    DWORD   dwFileFlagsMask;        
+    DWORD   dwFileFlags;            
+    DWORD   dwFileOS;               
+    DWORD   dwFileType;             
+    DWORD   dwFileSubtype;          
+    DWORD   dwFileDateMS;           
+    DWORD   dwFileDateLS;           
+} VS_FIXEDFILEINFO;
+
+
+
+DWORD
+__stdcall
+VerFindFileA(
+        DWORD uFlags,
+        LPSTR szFileName,
+        LPSTR szWinDir,
+        LPSTR szAppDir,
+        LPSTR szCurDir,
+        PUINT lpuCurDirLen,
+        LPSTR szDestDir,
+        PUINT lpuDestDirLen
+        );
+DWORD
+__stdcall
+VerFindFileW(
+        DWORD uFlags,
+        LPWSTR szFileName,
+        LPWSTR szWinDir,
+        LPWSTR szAppDir,
+        LPWSTR szCurDir,
+        PUINT lpuCurDirLen,
+        LPWSTR szDestDir,
+        PUINT lpuDestDirLen
+        );
+
+
+
+
+
+
+DWORD
+__stdcall
+VerInstallFileA(
+        DWORD uFlags,
+        LPSTR szSrcFileName,
+        LPSTR szDestFileName,
+        LPSTR szSrcDir,
+        LPSTR szDestDir,
+        LPSTR szCurDir,
+        LPSTR szTmpFile,
+        PUINT lpuTmpFileLen
+        );
+DWORD
+__stdcall
+VerInstallFileW(
+        DWORD uFlags,
+        LPWSTR szSrcFileName,
+        LPWSTR szDestFileName,
+        LPWSTR szSrcDir,
+        LPWSTR szDestDir,
+        LPWSTR szCurDir,
+        LPWSTR szTmpFile,
+        PUINT lpuTmpFileLen
+        );
+
+
+
+
+
+
+
+DWORD
+__stdcall
+GetFileVersionInfoSizeA(
+        LPSTR lptstrFilename, 
+        LPDWORD lpdwHandle
+        );                      
+
+DWORD
+__stdcall
+GetFileVersionInfoSizeW(
+        LPWSTR lptstrFilename, 
+        LPDWORD lpdwHandle
+        );                      
+
+
+
+
+
+
+
+BOOL
+__stdcall
+GetFileVersionInfoA(
+        LPSTR lptstrFilename, 
+        DWORD dwHandle,         
+        DWORD dwLen,            
+        LPVOID lpData
+        );                      
+
+BOOL
+__stdcall
+GetFileVersionInfoW(
+        LPWSTR lptstrFilename, 
+        DWORD dwHandle,         
+        DWORD dwLen,            
+        LPVOID lpData
+        );                      
+
+
+
+
+
+
+DWORD
+__stdcall
+VerLanguageNameA(
+        DWORD wLang,
+        LPSTR szLang,
+        DWORD nSize
+        );
+DWORD
+__stdcall
+VerLanguageNameW(
+        DWORD wLang,
+        LPWSTR szLang,
+        DWORD nSize
+        );
+
+
+
+
+
+
+BOOL
+__stdcall
+VerQueryValueA(
+        const LPVOID pBlock,
+        LPSTR lpSubBlock,
+        LPVOID * lplpBuffer,
+        PUINT puLen
+        );
+BOOL
+__stdcall
+VerQueryValueW(
+        const LPVOID pBlock,
+        LPWSTR lpSubBlock,
+        LPVOID * lplpBuffer,
+        PUINT puLen
+        );
+
+
+
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+typedef ACCESS_MASK REGSAM;
+
+
+
+
+
+struct HKEY__ { int unused; }; typedef struct HKEY__ *HKEY;
+typedef HKEY *PHKEY;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+struct val_context {
+    int valuelen;       
+    LPVOID value_context;   
+    LPVOID val_buff_ptr;    
+};
+
+typedef struct val_context  *PVALCONTEXT;
+
+typedef struct pvalueA {           
+    LPSTR   pv_valuename;          
+    int pv_valuelen;
+    LPVOID pv_value_context;
+    DWORD pv_type;
+}PVALUEA,  *PPVALUEA;
+typedef struct pvalueW {           
+    LPWSTR  pv_valuename;          
+    int pv_valuelen;
+    LPVOID pv_value_context;
+    DWORD pv_type;
+}PVALUEW,  *PPVALUEW;
+
+
+
+
+typedef PVALUEA PVALUE;
+typedef PPVALUEA PPVALUE;
+
+
+typedef
+DWORD _cdecl
+QUERYHANDLER (LPVOID keycontext, PVALCONTEXT val_list, DWORD num_vals,
+          LPVOID outputbuffer, DWORD  *total_outlen, DWORD input_blen);
+
+typedef QUERYHANDLER  *PQUERYHANDLER;
+
+typedef struct provider_info {
+    PQUERYHANDLER pi_R0_1val;
+    PQUERYHANDLER pi_R0_allvals;
+    PQUERYHANDLER pi_R3_1val;
+    PQUERYHANDLER pi_R3_allvals;
+    DWORD pi_flags;    
+    LPVOID pi_key_context;
+}REG_PROVIDER;
+
+typedef struct provider_info  *PPROVIDER;
+
+typedef struct value_entA {
+    LPSTR   ve_valuename;
+    DWORD ve_valuelen;
+    DWORD ve_valueptr;
+    DWORD ve_type;
+}VALENTA,  *PVALENTA;
+typedef struct value_entW {
+    LPWSTR  ve_valuename;
+    DWORD ve_valuelen;
+    DWORD ve_valueptr;
+    DWORD ve_type;
+}VALENTW,  *PVALENTW;
+
+
+
+
+typedef VALENTA VALENT;
+typedef PVALENTA PVALENT;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegCloseKey (
+    HKEY hKey
+    );
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegOverridePredefKey (
+    HKEY hKey,
+    HKEY hNewHKey
+    );
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegConnectRegistryA (
+    LPCSTR lpMachineName,
+    HKEY hKey,
+    PHKEY phkResult
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegConnectRegistryW (
+    LPCWSTR lpMachineName,
+    HKEY hKey,
+    PHKEY phkResult
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegCreateKeyA (
+    HKEY hKey,
+    LPCSTR lpSubKey,
+    PHKEY phkResult
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegCreateKeyW (
+    HKEY hKey,
+    LPCWSTR lpSubKey,
+    PHKEY phkResult
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegCreateKeyExA (
+    HKEY hKey,
+    LPCSTR lpSubKey,
+    DWORD Reserved,
+    LPSTR lpClass,
+    DWORD dwOptions,
+    REGSAM samDesired,
+    LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+    PHKEY phkResult,
+    LPDWORD lpdwDisposition
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegCreateKeyExW (
+    HKEY hKey,
+    LPCWSTR lpSubKey,
+    DWORD Reserved,
+    LPWSTR lpClass,
+    DWORD dwOptions,
+    REGSAM samDesired,
+    LPSECURITY_ATTRIBUTES lpSecurityAttributes,
+    PHKEY phkResult,
+    LPDWORD lpdwDisposition
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegDeleteKeyA (
+    HKEY hKey,
+    LPCSTR lpSubKey
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegDeleteKeyW (
+    HKEY hKey,
+    LPCWSTR lpSubKey
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegDeleteValueA (
+    HKEY hKey,
+    LPCSTR lpValueName
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegDeleteValueW (
+    HKEY hKey,
+    LPCWSTR lpValueName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegEnumKeyA (
+    HKEY hKey,
+    DWORD dwIndex,
+    LPSTR lpName,
+    DWORD cbName
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegEnumKeyW (
+    HKEY hKey,
+    DWORD dwIndex,
+    LPWSTR lpName,
+    DWORD cbName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegEnumKeyExA (
+    HKEY hKey,
+    DWORD dwIndex,
+    LPSTR lpName,
+    LPDWORD lpcbName,
+    LPDWORD lpReserved,
+    LPSTR lpClass,
+    LPDWORD lpcbClass,
+    PFILETIME lpftLastWriteTime
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegEnumKeyExW (
+    HKEY hKey,
+    DWORD dwIndex,
+    LPWSTR lpName,
+    LPDWORD lpcbName,
+    LPDWORD lpReserved,
+    LPWSTR lpClass,
+    LPDWORD lpcbClass,
+    PFILETIME lpftLastWriteTime
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegEnumValueA (
+    HKEY hKey,
+    DWORD dwIndex,
+    LPSTR lpValueName,
+    LPDWORD lpcbValueName,
+    LPDWORD lpReserved,
+    LPDWORD lpType,
+    LPBYTE lpData,
+    LPDWORD lpcbData
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegEnumValueW (
+    HKEY hKey,
+    DWORD dwIndex,
+    LPWSTR lpValueName,
+    LPDWORD lpcbValueName,
+    LPDWORD lpReserved,
+    LPDWORD lpType,
+    LPBYTE lpData,
+    LPDWORD lpcbData
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegFlushKey (
+    HKEY hKey
+    );
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegGetKeySecurity (
+    HKEY hKey,
+    SECURITY_INFORMATION SecurityInformation,
+    PSECURITY_DESCRIPTOR pSecurityDescriptor,
+    LPDWORD lpcbSecurityDescriptor
+    );
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegLoadKeyA (
+    HKEY    hKey,
+    LPCSTR  lpSubKey,
+    LPCSTR  lpFile
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegLoadKeyW (
+    HKEY    hKey,
+    LPCWSTR  lpSubKey,
+    LPCWSTR  lpFile
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegNotifyChangeKeyValue (
+    HKEY hKey,
+    BOOL bWatchSubtree,
+    DWORD dwNotifyFilter,
+    HANDLE hEvent,
+    BOOL fAsynchronus
+    );
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegOpenKeyA (
+    HKEY hKey,
+    LPCSTR lpSubKey,
+    PHKEY phkResult
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegOpenKeyW (
+    HKEY hKey,
+    LPCWSTR lpSubKey,
+    PHKEY phkResult
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegOpenKeyExA (
+    HKEY hKey,
+    LPCSTR lpSubKey,
+    DWORD ulOptions,
+    REGSAM samDesired,
+    PHKEY phkResult
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegOpenKeyExW (
+    HKEY hKey,
+    LPCWSTR lpSubKey,
+    DWORD ulOptions,
+    REGSAM samDesired,
+    PHKEY phkResult
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegQueryInfoKeyA (
+    HKEY hKey,
+    LPSTR lpClass,
+    LPDWORD lpcbClass,
+    LPDWORD lpReserved,
+    LPDWORD lpcSubKeys,
+    LPDWORD lpcbMaxSubKeyLen,
+    LPDWORD lpcbMaxClassLen,
+    LPDWORD lpcValues,
+    LPDWORD lpcbMaxValueNameLen,
+    LPDWORD lpcbMaxValueLen,
+    LPDWORD lpcbSecurityDescriptor,
+    PFILETIME lpftLastWriteTime
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegQueryInfoKeyW (
+    HKEY hKey,
+    LPWSTR lpClass,
+    LPDWORD lpcbClass,
+    LPDWORD lpReserved,
+    LPDWORD lpcSubKeys,
+    LPDWORD lpcbMaxSubKeyLen,
+    LPDWORD lpcbMaxClassLen,
+    LPDWORD lpcValues,
+    LPDWORD lpcbMaxValueNameLen,
+    LPDWORD lpcbMaxValueLen,
+    LPDWORD lpcbSecurityDescriptor,
+    PFILETIME lpftLastWriteTime
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegQueryValueA (
+    HKEY hKey,
+    LPCSTR lpSubKey,
+    LPSTR lpValue,
+    PLONG   lpcbValue
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegQueryValueW (
+    HKEY hKey,
+    LPCWSTR lpSubKey,
+    LPWSTR lpValue,
+    PLONG   lpcbValue
+    );
+
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegQueryMultipleValuesA (
+    HKEY hKey,
+    PVALENTA val_list,
+    DWORD num_vals,
+    LPSTR lpValueBuf,
+    LPDWORD ldwTotsize
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegQueryMultipleValuesW (
+    HKEY hKey,
+    PVALENTW val_list,
+    DWORD num_vals,
+    LPWSTR lpValueBuf,
+    LPDWORD ldwTotsize
+    );
+
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegQueryValueExA (
+    HKEY hKey,
+    LPCSTR lpValueName,
+    LPDWORD lpReserved,
+    LPDWORD lpType,
+    LPBYTE lpData,
+    LPDWORD lpcbData
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegQueryValueExW (
+    HKEY hKey,
+    LPCWSTR lpValueName,
+    LPDWORD lpReserved,
+    LPDWORD lpType,
+    LPBYTE lpData,
+    LPDWORD lpcbData
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegReplaceKeyA (
+    HKEY     hKey,
+    LPCSTR  lpSubKey,
+    LPCSTR  lpNewFile,
+    LPCSTR  lpOldFile
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegReplaceKeyW (
+    HKEY     hKey,
+    LPCWSTR  lpSubKey,
+    LPCWSTR  lpNewFile,
+    LPCWSTR  lpOldFile
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegRestoreKeyA (
+    HKEY hKey,
+    LPCSTR lpFile,
+    DWORD   dwFlags
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegRestoreKeyW (
+    HKEY hKey,
+    LPCWSTR lpFile,
+    DWORD   dwFlags
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegSaveKeyA (
+    HKEY hKey,
+    LPCSTR lpFile,
+    LPSECURITY_ATTRIBUTES lpSecurityAttributes
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegSaveKeyW (
+    HKEY hKey,
+    LPCWSTR lpFile,
+    LPSECURITY_ATTRIBUTES lpSecurityAttributes
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegSetKeySecurity (
+    HKEY hKey,
+    SECURITY_INFORMATION SecurityInformation,
+    PSECURITY_DESCRIPTOR pSecurityDescriptor
+    );
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegSetValueA (
+    HKEY hKey,
+    LPCSTR lpSubKey,
+    DWORD dwType,
+    LPCSTR lpData,
+    DWORD cbData
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegSetValueW (
+    HKEY hKey,
+    LPCWSTR lpSubKey,
+    DWORD dwType,
+    LPCWSTR lpData,
+    DWORD cbData
+    );
+
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegSetValueExA (
+    HKEY hKey,
+    LPCSTR lpValueName,
+    DWORD Reserved,
+    DWORD dwType,
+    const BYTE* lpData,
+    DWORD cbData
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegSetValueExW (
+    HKEY hKey,
+    LPCWSTR lpValueName,
+    DWORD Reserved,
+    DWORD dwType,
+    const BYTE* lpData,
+    DWORD cbData
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+LONG
+__stdcall
+RegUnLoadKeyA (
+    HKEY    hKey,
+    LPCSTR lpSubKey
+    );
+__declspec(dllimport)
+LONG
+__stdcall
+RegUnLoadKeyW (
+    HKEY    hKey,
+    LPCWSTR lpSubKey
+    );
+
+
+
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+InitiateSystemShutdownA(
+    LPSTR lpMachineName,
+    LPSTR lpMessage,
+    DWORD dwTimeout,
+    BOOL bForceAppsClosed,
+    BOOL bRebootAfterShutdown
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+InitiateSystemShutdownW(
+    LPWSTR lpMachineName,
+    LPWSTR lpMessage,
+    DWORD dwTimeout,
+    BOOL bForceAppsClosed,
+    BOOL bRebootAfterShutdown
+    );
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+AbortSystemShutdownA(
+    LPSTR lpMachineName
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+AbortSystemShutdownW(
+    LPWSTR lpMachineName
+    );
+
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct  _NETRESOURCEA {
+    DWORD    dwScope;
+    DWORD    dwType;
+    DWORD    dwDisplayType;
+    DWORD    dwUsage;
+    LPSTR    lpLocalName;
+    LPSTR    lpRemoteName;
+    LPSTR    lpComment ;
+    LPSTR    lpProvider;
+}NETRESOURCEA, *LPNETRESOURCEA;
+typedef struct  _NETRESOURCEW {
+    DWORD    dwScope;
+    DWORD    dwType;
+    DWORD    dwDisplayType;
+    DWORD    dwUsage;
+    LPWSTR   lpLocalName;
+    LPWSTR   lpRemoteName;
+    LPWSTR   lpComment ;
+    LPWSTR   lpProvider;
+}NETRESOURCEW, *LPNETRESOURCEW;
+
+
+
+
+typedef NETRESOURCEA NETRESOURCE;
+typedef LPNETRESOURCEA LPNETRESOURCE;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+DWORD __stdcall
+WNetAddConnectionA(
+     LPCSTR   lpRemoteName,
+     LPCSTR   lpPassword,
+     LPCSTR   lpLocalName
+    );
+DWORD __stdcall
+WNetAddConnectionW(
+     LPCWSTR   lpRemoteName,
+     LPCWSTR   lpPassword,
+     LPCWSTR   lpLocalName
+    );
+
+
+
+
+
+
+DWORD __stdcall
+WNetAddConnection2A(
+     LPNETRESOURCEA lpNetResource,
+     LPCSTR       lpPassword,
+     LPCSTR       lpUserName,
+     DWORD          dwFlags
+    );
+DWORD __stdcall
+WNetAddConnection2W(
+     LPNETRESOURCEW lpNetResource,
+     LPCWSTR       lpPassword,
+     LPCWSTR       lpUserName,
+     DWORD          dwFlags
+    );
+
+
+
+
+
+
+DWORD __stdcall
+WNetAddConnection3A(
+     HWND           hwndOwner,
+     LPNETRESOURCEA lpNetResource,
+     LPCSTR       lpPassword,
+     LPCSTR       lpUserName,
+     DWORD          dwFlags
+    );
+DWORD __stdcall
+WNetAddConnection3W(
+     HWND           hwndOwner,
+     LPNETRESOURCEW lpNetResource,
+     LPCWSTR       lpPassword,
+     LPCWSTR       lpUserName,
+     DWORD          dwFlags
+    );
+
+
+
+
+
+
+DWORD __stdcall
+WNetCancelConnectionA(
+     LPCSTR lpName,
+     BOOL     fForce
+    );
+DWORD __stdcall
+WNetCancelConnectionW(
+     LPCWSTR lpName,
+     BOOL     fForce
+    );
+
+
+
+
+
+
+DWORD __stdcall
+WNetCancelConnection2A(
+     LPCSTR lpName,
+     DWORD    dwFlags,
+     BOOL     fForce
+    );
+DWORD __stdcall
+WNetCancelConnection2W(
+     LPCWSTR lpName,
+     DWORD    dwFlags,
+     BOOL     fForce
+    );
+
+
+
+
+
+
+DWORD __stdcall
+WNetGetConnectionA(
+     LPCSTR lpLocalName,
+     LPSTR  lpRemoteName,
+     LPDWORD  lpnLength
+    );
+DWORD __stdcall
+WNetGetConnectionW(
+     LPCWSTR lpLocalName,
+     LPWSTR  lpRemoteName,
+     LPDWORD  lpnLength
+    );
+
+
+
+
+
+
+
+
+DWORD __stdcall
+WNetUseConnectionA(
+    HWND            hwndOwner,
+    LPNETRESOURCEA  lpNetResource,
+    LPCSTR        lpUserID,
+    LPCSTR        lpPassword,
+    DWORD           dwFlags,
+    LPSTR         lpAccessName,
+    LPDWORD         lpBufferSize,
+    LPDWORD         lpResult
+    );
+DWORD __stdcall
+WNetUseConnectionW(
+    HWND            hwndOwner,
+    LPNETRESOURCEW  lpNetResource,
+    LPCWSTR        lpUserID,
+    LPCWSTR        lpPassword,
+    DWORD           dwFlags,
+    LPWSTR         lpAccessName,
+    LPDWORD         lpBufferSize,
+    LPDWORD         lpResult
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+DWORD __stdcall
+WNetConnectionDialog(
+    HWND  hwnd,
+    DWORD dwType
+    );
+
+DWORD __stdcall
+WNetDisconnectDialog(
+    HWND  hwnd,
+    DWORD dwType
+    );
+
+
+typedef struct _CONNECTDLGSTRUCTA{
+    DWORD cbStructure;       
+    HWND hwndOwner;          
+    LPNETRESOURCEA lpConnRes;
+    DWORD dwFlags;           
+    DWORD dwDevNum;          
+} CONNECTDLGSTRUCTA,  *LPCONNECTDLGSTRUCTA;
+typedef struct _CONNECTDLGSTRUCTW{
+    DWORD cbStructure;       
+    HWND hwndOwner;          
+    LPNETRESOURCEW lpConnRes;
+    DWORD dwFlags;           
+    DWORD dwDevNum;          
+} CONNECTDLGSTRUCTW,  *LPCONNECTDLGSTRUCTW;
+
+
+
+
+typedef CONNECTDLGSTRUCTA CONNECTDLGSTRUCT;
+typedef LPCONNECTDLGSTRUCTA LPCONNECTDLGSTRUCT;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+DWORD __stdcall
+WNetConnectionDialog1A(
+    LPCONNECTDLGSTRUCTA lpConnDlgStruct
+    );
+DWORD __stdcall
+WNetConnectionDialog1W(
+    LPCONNECTDLGSTRUCTW lpConnDlgStruct
+    );
+
+
+
+
+
+
+typedef struct _DISCDLGSTRUCTA{
+    DWORD           cbStructure;      
+    HWND            hwndOwner;        
+    LPSTR           lpLocalName;      
+    LPSTR           lpRemoteName;     
+    DWORD           dwFlags;          
+} DISCDLGSTRUCTA,  *LPDISCDLGSTRUCTA;
+typedef struct _DISCDLGSTRUCTW{
+    DWORD           cbStructure;      
+    HWND            hwndOwner;        
+    LPWSTR          lpLocalName;      
+    LPWSTR          lpRemoteName;     
+    DWORD           dwFlags;          
+} DISCDLGSTRUCTW,  *LPDISCDLGSTRUCTW;
+
+
+
+
+typedef DISCDLGSTRUCTA DISCDLGSTRUCT;
+typedef LPDISCDLGSTRUCTA LPDISCDLGSTRUCT;
+
+
+
+
+
+DWORD __stdcall
+WNetDisconnectDialog1A(
+    LPDISCDLGSTRUCTA lpConnDlgStruct
+    );
+DWORD __stdcall
+WNetDisconnectDialog1W(
+    LPDISCDLGSTRUCTW lpConnDlgStruct
+    );
+
+
+
+
+
+
+
+
+
+
+
+DWORD __stdcall
+WNetOpenEnumA(
+     DWORD          dwScope,
+     DWORD          dwType,
+     DWORD          dwUsage,
+     LPNETRESOURCEA lpNetResource,
+     LPHANDLE       lphEnum
+    );
+DWORD __stdcall
+WNetOpenEnumW(
+     DWORD          dwScope,
+     DWORD          dwType,
+     DWORD          dwUsage,
+     LPNETRESOURCEW lpNetResource,
+     LPHANDLE       lphEnum
+    );
+
+
+
+
+
+
+DWORD __stdcall
+WNetEnumResourceA(
+     HANDLE  hEnum,
+     LPDWORD lpcCount,
+     LPVOID  lpBuffer,
+     LPDWORD lpBufferSize
+    );
+DWORD __stdcall
+WNetEnumResourceW(
+     HANDLE  hEnum,
+     LPDWORD lpcCount,
+     LPVOID  lpBuffer,
+     LPDWORD lpBufferSize
+    );
+
+
+
+
+
+
+DWORD __stdcall
+WNetCloseEnum(
+    HANDLE   hEnum
+    );
+
+
+
+
+
+
+
+
+
+typedef struct  _UNIVERSAL_NAME_INFOA {
+    LPSTR    lpUniversalName;
+}UNIVERSAL_NAME_INFOA, *LPUNIVERSAL_NAME_INFOA;
+typedef struct  _UNIVERSAL_NAME_INFOW {
+    LPWSTR   lpUniversalName;
+}UNIVERSAL_NAME_INFOW, *LPUNIVERSAL_NAME_INFOW;
+
+
+
+
+typedef UNIVERSAL_NAME_INFOA UNIVERSAL_NAME_INFO;
+typedef LPUNIVERSAL_NAME_INFOA LPUNIVERSAL_NAME_INFO;
+
+
+typedef struct  _REMOTE_NAME_INFOA {
+    LPSTR    lpUniversalName;
+    LPSTR    lpConnectionName;
+    LPSTR    lpRemainingPath;
+}REMOTE_NAME_INFOA, *LPREMOTE_NAME_INFOA;
+typedef struct  _REMOTE_NAME_INFOW {
+    LPWSTR   lpUniversalName;
+    LPWSTR   lpConnectionName;
+    LPWSTR   lpRemainingPath;
+}REMOTE_NAME_INFOW, *LPREMOTE_NAME_INFOW;
+
+
+
+
+typedef REMOTE_NAME_INFOA REMOTE_NAME_INFO;
+typedef LPREMOTE_NAME_INFOA LPREMOTE_NAME_INFO;
+
+
+DWORD __stdcall
+WNetGetUniversalNameA(
+     LPCSTR lpLocalPath,
+     DWORD    dwInfoLevel,
+     LPVOID   lpBuffer,
+     LPDWORD  lpBufferSize
+     );
+DWORD __stdcall
+WNetGetUniversalNameW(
+     LPCWSTR lpLocalPath,
+     DWORD    dwInfoLevel,
+     LPVOID   lpBuffer,
+     LPDWORD  lpBufferSize
+     );
+
+
+
+
+
+
+
+
+
+
+DWORD __stdcall
+WNetGetUserA(
+     LPCSTR  lpName,
+     LPSTR   lpUserName,
+     LPDWORD   lpnLength
+    );
+DWORD __stdcall
+WNetGetUserW(
+     LPCWSTR  lpName,
+     LPWSTR   lpUserName,
+     LPDWORD   lpnLength
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+DWORD __stdcall
+WNetGetProviderNameA(
+    DWORD   dwNetType,
+    LPSTR lpProviderName,
+    LPDWORD lpBufferSize
+    );
+DWORD __stdcall
+WNetGetProviderNameW(
+    DWORD   dwNetType,
+    LPWSTR lpProviderName,
+    LPDWORD lpBufferSize
+    );
+
+
+
+
+
+
+typedef struct _NETINFOSTRUCT{
+    DWORD cbStructure;
+    DWORD dwProviderVersion;
+    DWORD dwStatus;
+    DWORD dwCharacteristics;
+    DWORD dwHandle;
+    WORD  wNetType;
+    DWORD dwPrinters;
+    DWORD dwDrives;
+} NETINFOSTRUCT,  *LPNETINFOSTRUCT;
+
+
+
+
+
+DWORD __stdcall
+WNetGetNetworkInformationA(
+    LPCSTR          lpProvider,
+    LPNETINFOSTRUCT   lpNetInfoStruct
+    );
+DWORD __stdcall
+WNetGetNetworkInformationW(
+    LPCWSTR          lpProvider,
+    LPNETINFOSTRUCT   lpNetInfoStruct
+    );
+
+
+
+
+
+
+
+
+
+
+typedef UINT ( __stdcall *PFNGETPROFILEPATHA) (
+    LPCSTR    pszUsername,
+    LPSTR     pszBuffer,
+    UINT        cbBuffer
+    );
+typedef UINT ( __stdcall *PFNGETPROFILEPATHW) (
+    LPCWSTR    pszUsername,
+    LPWSTR     pszBuffer,
+    UINT        cbBuffer
+    );
+
+
+
+
+
+
+typedef UINT ( __stdcall *PFNRECONCILEPROFILEA) (
+    LPCSTR    pszCentralFile,
+    LPCSTR    pszLocalFile,
+    DWORD       dwFlags
+    );
+typedef UINT ( __stdcall *PFNRECONCILEPROFILEW) (
+    LPCWSTR    pszCentralFile,
+    LPCWSTR    pszLocalFile,
+    DWORD       dwFlags
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef BOOL ( __stdcall *PFNPROCESSPOLICIESA) (
+    HWND        hwnd,
+    LPCSTR    pszPath,
+    LPCSTR    pszUsername,
+    LPCSTR    pszComputerName,
+    DWORD       dwFlags
+    );
+typedef BOOL ( __stdcall *PFNPROCESSPOLICIESW) (
+    HWND        hwnd,
+    LPCWSTR    pszPath,
+    LPCWSTR    pszUsername,
+    LPCWSTR    pszComputerName,
+    DWORD       dwFlags
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+DWORD __stdcall
+WNetGetLastErrorA(
+     LPDWORD    lpError,
+     LPSTR    lpErrorBuf,
+     DWORD      nErrorBufSize,
+     LPSTR    lpNameBuf,
+     DWORD      nNameBufSize
+    );
+DWORD __stdcall
+WNetGetLastErrorW(
+     LPDWORD    lpError,
+     LPWSTR    lpErrorBuf,
+     DWORD      nErrorBufSize,
+     LPWSTR    lpNameBuf,
+     DWORD      nNameBufSize
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _NETCONNECTINFOSTRUCT{
+    DWORD cbStructure;
+    DWORD dwFlags;
+    DWORD dwSpeed;
+    DWORD dwDelay;
+    DWORD dwOptDataSize;
+} NETCONNECTINFOSTRUCT,  *LPNETCONNECTINFOSTRUCT;
+
+
+
+
+
+
+DWORD __stdcall
+MultinetGetConnectionPerformanceA(
+        LPNETRESOURCEA lpNetResource,
+        LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct
+        );
+DWORD __stdcall
+MultinetGetConnectionPerformanceW(
+        LPNETRESOURCEW lpNetResource,
+        LPNETCONNECTINFOSTRUCT lpNetConnectInfoStruct
+        );
+
+
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _SERVICE_DESCRIPTIONA {
+    LPSTR       lpDescription;
+} SERVICE_DESCRIPTIONA, *LPSERVICE_DESCRIPTIONA;
+
+
+
+typedef struct _SERVICE_DESCRIPTIONW {
+    LPWSTR      lpDescription;
+} SERVICE_DESCRIPTIONW, *LPSERVICE_DESCRIPTIONW;
+
+
+
+
+typedef SERVICE_DESCRIPTIONA SERVICE_DESCRIPTION;
+typedef LPSERVICE_DESCRIPTIONA LPSERVICE_DESCRIPTION;
+
+
+
+
+
+typedef enum _SC_ACTION_TYPE {
+        SC_ACTION_NONE          = 0,
+        SC_ACTION_RESTART       = 1,
+        SC_ACTION_REBOOT        = 2,
+        SC_ACTION_RUN_COMMAND   = 3
+} SC_ACTION_TYPE;
+
+typedef struct _SC_ACTION {
+    SC_ACTION_TYPE  Type;
+    DWORD           Delay;
+} SC_ACTION, *LPSC_ACTION;
+
+typedef struct _SERVICE_FAILURE_ACTIONSA {
+    DWORD       dwResetPeriod;
+    LPSTR       lpRebootMsg;
+    LPSTR       lpCommand;
+    DWORD       cActions;
+
+
+
+    SC_ACTION * lpsaActions;
+} SERVICE_FAILURE_ACTIONSA, *LPSERVICE_FAILURE_ACTIONSA;
+typedef struct _SERVICE_FAILURE_ACTIONSW {
+    DWORD       dwResetPeriod;
+    LPWSTR      lpRebootMsg;
+    LPWSTR      lpCommand;
+    DWORD       cActions;
+
+
+
+    SC_ACTION * lpsaActions;
+} SERVICE_FAILURE_ACTIONSW, *LPSERVICE_FAILURE_ACTIONSW;
+
+
+
+
+typedef SERVICE_FAILURE_ACTIONSA SERVICE_FAILURE_ACTIONS;
+typedef LPSERVICE_FAILURE_ACTIONSA LPSERVICE_FAILURE_ACTIONS;
+
+
+
+
+
+
+
+typedef HANDLE      SC_HANDLE;
+typedef SC_HANDLE   *LPSC_HANDLE;
+
+typedef DWORD       SERVICE_STATUS_HANDLE;
+
+
+
+
+
+typedef struct _SERVICE_STATUS {
+    DWORD   dwServiceType;
+    DWORD   dwCurrentState;
+    DWORD   dwControlsAccepted;
+    DWORD   dwWin32ExitCode;
+    DWORD   dwServiceSpecificExitCode;
+    DWORD   dwCheckPoint;
+    DWORD   dwWaitHint;
+} SERVICE_STATUS, *LPSERVICE_STATUS;
+
+
+
+
+
+
+
+typedef struct _ENUM_SERVICE_STATUSA {
+    LPSTR          lpServiceName;
+    LPSTR          lpDisplayName;
+    SERVICE_STATUS ServiceStatus;
+} ENUM_SERVICE_STATUSA, *LPENUM_SERVICE_STATUSA;
+typedef struct _ENUM_SERVICE_STATUSW {
+    LPWSTR         lpServiceName;
+    LPWSTR         lpDisplayName;
+    SERVICE_STATUS ServiceStatus;
+} ENUM_SERVICE_STATUSW, *LPENUM_SERVICE_STATUSW;
+
+
+
+
+typedef ENUM_SERVICE_STATUSA ENUM_SERVICE_STATUS;
+typedef LPENUM_SERVICE_STATUSA LPENUM_SERVICE_STATUS;
+
+
+
+
+
+
+
+typedef LPVOID  SC_LOCK;
+
+typedef struct _QUERY_SERVICE_LOCK_STATUSA {
+    DWORD   fIsLocked;
+    LPSTR   lpLockOwner;
+    DWORD   dwLockDuration;
+} QUERY_SERVICE_LOCK_STATUSA, *LPQUERY_SERVICE_LOCK_STATUSA;
+typedef struct _QUERY_SERVICE_LOCK_STATUSW {
+    DWORD   fIsLocked;
+    LPWSTR  lpLockOwner;
+    DWORD   dwLockDuration;
+} QUERY_SERVICE_LOCK_STATUSW, *LPQUERY_SERVICE_LOCK_STATUSW;
+
+
+
+
+typedef QUERY_SERVICE_LOCK_STATUSA QUERY_SERVICE_LOCK_STATUS;
+typedef LPQUERY_SERVICE_LOCK_STATUSA LPQUERY_SERVICE_LOCK_STATUS;
+
+
+
+
+
+
+
+
+typedef struct _QUERY_SERVICE_CONFIGA {
+    DWORD   dwServiceType;
+    DWORD   dwStartType;
+    DWORD   dwErrorControl;
+    LPSTR   lpBinaryPathName;
+    LPSTR   lpLoadOrderGroup;
+    DWORD   dwTagId;
+    LPSTR   lpDependencies;
+    LPSTR   lpServiceStartName;
+    LPSTR   lpDisplayName;
+} QUERY_SERVICE_CONFIGA, *LPQUERY_SERVICE_CONFIGA;
+typedef struct _QUERY_SERVICE_CONFIGW {
+    DWORD   dwServiceType;
+    DWORD   dwStartType;
+    DWORD   dwErrorControl;
+    LPWSTR  lpBinaryPathName;
+    LPWSTR  lpLoadOrderGroup;
+    DWORD   dwTagId;
+    LPWSTR  lpDependencies;
+    LPWSTR  lpServiceStartName;
+    LPWSTR  lpDisplayName;
+} QUERY_SERVICE_CONFIGW, *LPQUERY_SERVICE_CONFIGW;
+
+
+
+
+typedef QUERY_SERVICE_CONFIGA QUERY_SERVICE_CONFIG;
+typedef LPQUERY_SERVICE_CONFIGA LPQUERY_SERVICE_CONFIG;
+
+
+
+
+
+
+
+
+typedef void (__stdcall *LPSERVICE_MAIN_FUNCTIONW)(
+    DWORD   dwNumServicesArgs,
+    LPWSTR  *lpServiceArgVectors
+    );
+
+typedef void (__stdcall *LPSERVICE_MAIN_FUNCTIONA)(
+    DWORD   dwNumServicesArgs,
+    LPSTR   *lpServiceArgVectors
+    );
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _SERVICE_TABLE_ENTRYA {
+    LPSTR                       lpServiceName;
+    LPSERVICE_MAIN_FUNCTIONA    lpServiceProc;
+}SERVICE_TABLE_ENTRYA, *LPSERVICE_TABLE_ENTRYA;
+typedef struct _SERVICE_TABLE_ENTRYW {
+    LPWSTR                      lpServiceName;
+    LPSERVICE_MAIN_FUNCTIONW    lpServiceProc;
+}SERVICE_TABLE_ENTRYW, *LPSERVICE_TABLE_ENTRYW;
+
+
+
+
+typedef SERVICE_TABLE_ENTRYA SERVICE_TABLE_ENTRY;
+typedef LPSERVICE_TABLE_ENTRYA LPSERVICE_TABLE_ENTRY;
+
+
+
+
+
+
+typedef void (__stdcall *LPHANDLER_FUNCTION)(
+    DWORD    dwControl
+    );
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ChangeServiceConfigA(
+    SC_HANDLE    hService,
+    DWORD        dwServiceType,
+    DWORD        dwStartType,
+    DWORD        dwErrorControl,
+    LPCSTR     lpBinaryPathName,
+    LPCSTR     lpLoadOrderGroup,
+    LPDWORD      lpdwTagId,
+    LPCSTR     lpDependencies,
+    LPCSTR     lpServiceStartName,
+    LPCSTR     lpPassword,
+    LPCSTR     lpDisplayName
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+ChangeServiceConfigW(
+    SC_HANDLE    hService,
+    DWORD        dwServiceType,
+    DWORD        dwStartType,
+    DWORD        dwErrorControl,
+    LPCWSTR     lpBinaryPathName,
+    LPCWSTR     lpLoadOrderGroup,
+    LPDWORD      lpdwTagId,
+    LPCWSTR     lpDependencies,
+    LPCWSTR     lpServiceStartName,
+    LPCWSTR     lpPassword,
+    LPCWSTR     lpDisplayName
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ChangeServiceConfig2A(
+    SC_HANDLE    hService,
+    DWORD        dwInfoLevel,
+    LPVOID       lpInfo
+    ); 
+__declspec(dllimport)
+BOOL
+__stdcall
+ChangeServiceConfig2W(
+    SC_HANDLE    hService,
+    DWORD        dwInfoLevel,
+    LPVOID       lpInfo
+    ); 
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+CloseServiceHandle(
+    SC_HANDLE   hSCObject
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+ControlService(
+    SC_HANDLE           hService,
+    DWORD               dwControl,
+    LPSERVICE_STATUS    lpServiceStatus
+    );
+
+__declspec(dllimport)
+SC_HANDLE
+__stdcall
+CreateServiceA(
+    SC_HANDLE    hSCManager,
+    LPCSTR     lpServiceName,
+    LPCSTR     lpDisplayName,
+    DWORD        dwDesiredAccess,
+    DWORD        dwServiceType,
+    DWORD        dwStartType,
+    DWORD        dwErrorControl,
+    LPCSTR     lpBinaryPathName,
+    LPCSTR     lpLoadOrderGroup,
+    LPDWORD      lpdwTagId,
+    LPCSTR     lpDependencies,
+    LPCSTR     lpServiceStartName,
+    LPCSTR     lpPassword
+    );
+__declspec(dllimport)
+SC_HANDLE
+__stdcall
+CreateServiceW(
+    SC_HANDLE    hSCManager,
+    LPCWSTR     lpServiceName,
+    LPCWSTR     lpDisplayName,
+    DWORD        dwDesiredAccess,
+    DWORD        dwServiceType,
+    DWORD        dwStartType,
+    DWORD        dwErrorControl,
+    LPCWSTR     lpBinaryPathName,
+    LPCWSTR     lpLoadOrderGroup,
+    LPDWORD      lpdwTagId,
+    LPCWSTR     lpDependencies,
+    LPCWSTR     lpServiceStartName,
+    LPCWSTR     lpPassword
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+DeleteService(
+    SC_HANDLE   hService
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumDependentServicesA(
+    SC_HANDLE               hService,
+    DWORD                   dwServiceState,
+    LPENUM_SERVICE_STATUSA  lpServices,
+    DWORD                   cbBufSize,
+    LPDWORD                 pcbBytesNeeded,
+    LPDWORD                 lpServicesReturned
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumDependentServicesW(
+    SC_HANDLE               hService,
+    DWORD                   dwServiceState,
+    LPENUM_SERVICE_STATUSW  lpServices,
+    DWORD                   cbBufSize,
+    LPDWORD                 pcbBytesNeeded,
+    LPDWORD                 lpServicesReturned
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumServicesStatusA(
+    SC_HANDLE               hSCManager,
+    DWORD                   dwServiceType,
+    DWORD                   dwServiceState,
+    LPENUM_SERVICE_STATUSA  lpServices,
+    DWORD                   cbBufSize,
+    LPDWORD                 pcbBytesNeeded,
+    LPDWORD                 lpServicesReturned,
+    LPDWORD                 lpResumeHandle
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+EnumServicesStatusW(
+    SC_HANDLE               hSCManager,
+    DWORD                   dwServiceType,
+    DWORD                   dwServiceState,
+    LPENUM_SERVICE_STATUSW  lpServices,
+    DWORD                   cbBufSize,
+    LPDWORD                 pcbBytesNeeded,
+    LPDWORD                 lpServicesReturned,
+    LPDWORD                 lpResumeHandle
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetServiceKeyNameA(
+    SC_HANDLE               hSCManager,
+    LPCSTR                lpDisplayName,
+    LPSTR                 lpServiceName,
+    LPDWORD                 lpcchBuffer
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+GetServiceKeyNameW(
+    SC_HANDLE               hSCManager,
+    LPCWSTR                lpDisplayName,
+    LPWSTR                 lpServiceName,
+    LPDWORD                 lpcchBuffer
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+GetServiceDisplayNameA(
+    SC_HANDLE               hSCManager,
+    LPCSTR                lpServiceName,
+    LPSTR                 lpDisplayName,
+    LPDWORD                 lpcchBuffer
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+GetServiceDisplayNameW(
+    SC_HANDLE               hSCManager,
+    LPCWSTR                lpServiceName,
+    LPWSTR                 lpDisplayName,
+    LPDWORD                 lpcchBuffer
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+SC_LOCK
+__stdcall
+LockServiceDatabase(
+    SC_HANDLE   hSCManager
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+NotifyBootConfigStatus(
+    BOOL     BootAcceptable
+    );
+
+__declspec(dllimport)
+SC_HANDLE
+__stdcall
+OpenSCManagerA(
+    LPCSTR lpMachineName,
+    LPCSTR lpDatabaseName,
+    DWORD   dwDesiredAccess
+    );
+__declspec(dllimport)
+SC_HANDLE
+__stdcall
+OpenSCManagerW(
+    LPCWSTR lpMachineName,
+    LPCWSTR lpDatabaseName,
+    DWORD   dwDesiredAccess
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+SC_HANDLE
+__stdcall
+OpenServiceA(
+    SC_HANDLE   hSCManager,
+    LPCSTR    lpServiceName,
+    DWORD       dwDesiredAccess
+    );
+__declspec(dllimport)
+SC_HANDLE
+__stdcall
+OpenServiceW(
+    SC_HANDLE   hSCManager,
+    LPCWSTR    lpServiceName,
+    DWORD       dwDesiredAccess
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+QueryServiceConfigA(
+    SC_HANDLE               hService,
+    LPQUERY_SERVICE_CONFIGA lpServiceConfig,
+    DWORD                   cbBufSize,
+    LPDWORD                 pcbBytesNeeded
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+QueryServiceConfigW(
+    SC_HANDLE               hService,
+    LPQUERY_SERVICE_CONFIGW lpServiceConfig,
+    DWORD                   cbBufSize,
+    LPDWORD                 pcbBytesNeeded
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+QueryServiceConfig2A(
+    SC_HANDLE   hService,
+    DWORD       dwInfoLevel,
+    LPBYTE      lpBuffer,
+    DWORD       cbBufSize,
+    LPDWORD     pcbBytesNeeded
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+QueryServiceConfig2W(
+    SC_HANDLE   hService,
+    DWORD       dwInfoLevel,
+    LPBYTE      lpBuffer,
+    DWORD       cbBufSize,
+    LPDWORD     pcbBytesNeeded
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+QueryServiceLockStatusA(
+    SC_HANDLE                       hSCManager,
+    LPQUERY_SERVICE_LOCK_STATUSA    lpLockStatus,
+    DWORD                           cbBufSize,
+    LPDWORD                         pcbBytesNeeded
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+QueryServiceLockStatusW(
+    SC_HANDLE                       hSCManager,
+    LPQUERY_SERVICE_LOCK_STATUSW    lpLockStatus,
+    DWORD                           cbBufSize,
+    LPDWORD                         pcbBytesNeeded
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+QueryServiceObjectSecurity(
+    SC_HANDLE               hService,
+    SECURITY_INFORMATION    dwSecurityInformation,
+    PSECURITY_DESCRIPTOR    lpSecurityDescriptor,
+    DWORD                   cbBufSize,
+    LPDWORD                 pcbBytesNeeded
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+QueryServiceStatus(
+    SC_HANDLE           hService,
+    LPSERVICE_STATUS    lpServiceStatus
+    );
+
+__declspec(dllimport)
+SERVICE_STATUS_HANDLE
+__stdcall
+RegisterServiceCtrlHandlerA(
+    LPCSTR             lpServiceName,
+    LPHANDLER_FUNCTION   lpHandlerProc
+    );
+__declspec(dllimport)
+SERVICE_STATUS_HANDLE
+__stdcall
+RegisterServiceCtrlHandlerW(
+    LPCWSTR             lpServiceName,
+    LPHANDLER_FUNCTION   lpHandlerProc
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetServiceObjectSecurity(
+    SC_HANDLE               hService,
+    SECURITY_INFORMATION    dwSecurityInformation,
+    PSECURITY_DESCRIPTOR    lpSecurityDescriptor
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+SetServiceStatus(
+    SERVICE_STATUS_HANDLE   hServiceStatus,
+    LPSERVICE_STATUS        lpServiceStatus
+    );
+
+__declspec(dllimport)
+BOOL
+__stdcall
+StartServiceCtrlDispatcherA(
+    const SERVICE_TABLE_ENTRYA *lpServiceStartTable
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+StartServiceCtrlDispatcherW(
+    const SERVICE_TABLE_ENTRYW *lpServiceStartTable
+    );
+
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+StartServiceA(
+    SC_HANDLE            hService,
+    DWORD                dwNumServiceArgs,
+    LPCSTR             *lpServiceArgVectors
+    );
+__declspec(dllimport)
+BOOL
+__stdcall
+StartServiceW(
+    SC_HANDLE            hService,
+    DWORD                dwNumServiceArgs,
+    LPCWSTR             *lpServiceArgVectors
+    );
+
+
+
+
+
+
+__declspec(dllimport)
+BOOL
+__stdcall
+UnlockServiceDatabase(
+    SC_LOCK     ScLock
+    );
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _MODEMDEVCAPS {
+    DWORD   dwActualSize;
+    DWORD   dwRequiredSize;
+    DWORD   dwDevSpecificOffset;
+    DWORD   dwDevSpecificSize;
+
+    
+    DWORD   dwModemProviderVersion;
+    DWORD   dwModemManufacturerOffset;
+    DWORD   dwModemManufacturerSize;
+    DWORD   dwModemModelOffset;
+    DWORD   dwModemModelSize;
+    DWORD   dwModemVersionOffset;
+    DWORD   dwModemVersionSize;
+
+    
+    DWORD   dwDialOptions;          
+    DWORD   dwCallSetupFailTimer;   
+    DWORD   dwInactivityTimeout;    
+    DWORD   dwSpeakerVolume;        
+    DWORD   dwSpeakerMode;          
+    DWORD   dwModemOptions;         
+    DWORD   dwMaxDTERate;           
+    DWORD   dwMaxDCERate;           
+
+    
+    BYTE    abVariablePortion [1];
+} MODEMDEVCAPS, *PMODEMDEVCAPS, *LPMODEMDEVCAPS;
+
+typedef struct _MODEMSETTINGS {
+    DWORD   dwActualSize;
+    DWORD   dwRequiredSize;
+    DWORD   dwDevSpecificOffset;
+    DWORD   dwDevSpecificSize;
+
+    
+    DWORD   dwCallSetupFailTimer;       
+    DWORD   dwInactivityTimeout;        
+    DWORD   dwSpeakerVolume;            
+    DWORD   dwSpeakerMode;              
+    DWORD   dwPreferredModemOptions;    
+
+    
+    DWORD   dwNegotiatedModemOptions;   
+    DWORD   dwNegotiatedDCERate;        
+
+    
+    BYTE    abVariablePortion [1];
+} MODEMSETTINGS, *PMODEMSETTINGS, *LPMODEMSETTINGS;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                   
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+
+
+
+
+typedef DWORD   HIMC;
+typedef DWORD   HIMCC;
+
+
+typedef HKL   *LPHKL;
+typedef UINT  *LPUINT;
+
+
+typedef struct tagCOMPOSITIONFORM {
+    DWORD dwStyle;
+    POINT ptCurrentPos;
+    RECT  rcArea;
+} COMPOSITIONFORM, *PCOMPOSITIONFORM,  *NPCOMPOSITIONFORM,  *LPCOMPOSITIONFORM;
+
+
+typedef struct tagCANDIDATEFORM {
+    DWORD dwIndex;
+    DWORD dwStyle;
+    POINT ptCurrentPos;
+    RECT  rcArea;
+} CANDIDATEFORM, *PCANDIDATEFORM,  *NPCANDIDATEFORM,  *LPCANDIDATEFORM;
+
+
+typedef struct tagCANDIDATELIST {
+    DWORD dwSize;
+    DWORD dwStyle;
+    DWORD dwCount;
+    DWORD dwSelection;
+    DWORD dwPageStart;
+    DWORD dwPageSize;
+    DWORD dwOffset[1];
+} CANDIDATELIST, *PCANDIDATELIST,  *NPCANDIDATELIST,  *LPCANDIDATELIST;
+
+typedef struct tagREGISTERWORDA {
+    LPSTR   lpReading;
+    LPSTR   lpWord;
+} REGISTERWORDA, *PREGISTERWORDA,  *NPREGISTERWORDA,  *LPREGISTERWORDA;
+typedef struct tagREGISTERWORDW {
+    LPWSTR  lpReading;
+    LPWSTR  lpWord;
+} REGISTERWORDW, *PREGISTERWORDW,  *NPREGISTERWORDW,  *LPREGISTERWORDW;
+
+
+
+
+
+
+typedef REGISTERWORDA REGISTERWORD;
+typedef PREGISTERWORDA PREGISTERWORD;
+typedef NPREGISTERWORDA NPREGISTERWORD;
+typedef LPREGISTERWORDA LPREGISTERWORD;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct tagSTYLEBUFA {
+    DWORD       dwStyle;
+    CHAR        szDescription[32];
+} STYLEBUFA, *PSTYLEBUFA,  *NPSTYLEBUFA,  *LPSTYLEBUFA;
+typedef struct tagSTYLEBUFW {
+    DWORD       dwStyle;
+    WCHAR       szDescription[32];
+} STYLEBUFW, *PSTYLEBUFW,  *NPSTYLEBUFW,  *LPSTYLEBUFW;
+
+
+
+
+
+
+typedef STYLEBUFA STYLEBUF;
+typedef PSTYLEBUFA PSTYLEBUF;
+typedef NPSTYLEBUFA NPSTYLEBUF;
+typedef LPSTYLEBUFA LPSTYLEBUF;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+HKL  __stdcall ImmInstallIMEA(LPCSTR lpszIMEFileName, LPCSTR lpszLayoutText);
+HKL  __stdcall ImmInstallIMEW(LPCWSTR lpszIMEFileName, LPCWSTR lpszLayoutText);
+
+
+
+
+
+
+HWND __stdcall ImmGetDefaultIMEWnd(HWND);
+
+UINT __stdcall ImmGetDescriptionA(HKL, LPSTR, UINT uBufLen);
+UINT __stdcall ImmGetDescriptionW(HKL, LPWSTR, UINT uBufLen);
+
+
+
+
+
+
+UINT __stdcall ImmGetIMEFileNameA(HKL, LPSTR, UINT uBufLen);
+UINT __stdcall ImmGetIMEFileNameW(HKL, LPWSTR, UINT uBufLen);
+
+
+
+
+
+
+DWORD __stdcall ImmGetProperty(HKL, DWORD);
+
+
+BOOL __stdcall ImmIsIME(HKL);
+BOOL __stdcall ImmSimulateHotKey(HWND, DWORD);
+
+HIMC __stdcall ImmCreateContext(void);
+BOOL __stdcall ImmDestroyContext(HIMC);
+HIMC __stdcall ImmGetContext(HWND);
+BOOL __stdcall ImmReleaseContext(HWND, HIMC);
+HIMC __stdcall ImmAssociateContext(HWND, HIMC);
+
+
+
+
+LONG  __stdcall ImmGetCompositionStringA(HIMC, DWORD, LPVOID, DWORD);
+LONG  __stdcall ImmGetCompositionStringW(HIMC, DWORD, LPVOID, DWORD);
+
+
+
+
+
+
+BOOL  __stdcall ImmSetCompositionStringA(HIMC, DWORD dwIndex, LPCVOID lpComp, DWORD, LPCVOID lpRead, DWORD);
+BOOL  __stdcall ImmSetCompositionStringW(HIMC, DWORD dwIndex, LPCVOID lpComp, DWORD, LPCVOID lpRead, DWORD);
+
+
+
+
+
+
+DWORD __stdcall ImmGetCandidateListCountA(HIMC, LPDWORD lpdwListCount);
+DWORD __stdcall ImmGetCandidateListCountW(HIMC, LPDWORD lpdwListCount);
+
+
+
+
+
+
+DWORD __stdcall ImmGetCandidateListA(HIMC, DWORD deIndex, LPCANDIDATELIST, DWORD dwBufLen);
+DWORD __stdcall ImmGetCandidateListW(HIMC, DWORD deIndex, LPCANDIDATELIST, DWORD dwBufLen);
+
+
+
+
+
+
+DWORD __stdcall ImmGetGuideLineA(HIMC, DWORD dwIndex, LPSTR, DWORD dwBufLen);
+DWORD __stdcall ImmGetGuideLineW(HIMC, DWORD dwIndex, LPWSTR, DWORD dwBufLen);
+
+
+
+
+
+
+BOOL __stdcall ImmGetConversionStatus(HIMC, LPDWORD, LPDWORD);
+BOOL __stdcall ImmSetConversionStatus(HIMC, DWORD, DWORD);
+BOOL __stdcall ImmGetOpenStatus(HIMC);
+BOOL __stdcall ImmSetOpenStatus(HIMC, BOOL);
+
+
+
+BOOL __stdcall ImmGetCompositionFontA(HIMC, LPLOGFONTA);
+BOOL __stdcall ImmGetCompositionFontW(HIMC, LPLOGFONTW);
+
+
+
+
+
+
+BOOL __stdcall ImmSetCompositionFontA(HIMC, LPLOGFONTA);
+BOOL __stdcall ImmSetCompositionFontW(HIMC, LPLOGFONTW);
+
+
+
+
+
+
+
+
+BOOL    __stdcall ImmConfigureIMEA(HKL, HWND, DWORD, LPVOID);
+BOOL    __stdcall ImmConfigureIMEW(HKL, HWND, DWORD, LPVOID);
+
+
+
+
+
+
+LRESULT __stdcall ImmEscapeA(HKL, HIMC, UINT, LPVOID);
+LRESULT __stdcall ImmEscapeW(HKL, HIMC, UINT, LPVOID);
+
+
+
+
+
+
+DWORD   __stdcall ImmGetConversionListA(HKL, HIMC, LPCSTR, LPCANDIDATELIST, DWORD dwBufLen, UINT uFlag);
+DWORD   __stdcall ImmGetConversionListW(HKL, HIMC, LPCWSTR, LPCANDIDATELIST, DWORD dwBufLen, UINT uFlag);
+
+
+
+
+
+
+BOOL    __stdcall ImmNotifyIME(HIMC, DWORD dwAction, DWORD dwIndex, DWORD dwValue);
+
+
+BOOL __stdcall ImmGetStatusWindowPos(HIMC, LPPOINT);
+BOOL __stdcall ImmSetStatusWindowPos(HIMC, LPPOINT);
+BOOL __stdcall ImmGetCompositionWindow(HIMC, LPCOMPOSITIONFORM);
+BOOL __stdcall ImmSetCompositionWindow(HIMC, LPCOMPOSITIONFORM);
+BOOL __stdcall ImmGetCandidateWindow(HIMC, DWORD, LPCANDIDATEFORM);
+BOOL __stdcall ImmSetCandidateWindow(HIMC, LPCANDIDATEFORM);
+
+BOOL __stdcall ImmIsUIMessageA(HWND, UINT, WPARAM, LPARAM);
+BOOL __stdcall ImmIsUIMessageW(HWND, UINT, WPARAM, LPARAM);
+
+
+
+
+
+
+
+UINT __stdcall ImmGetVirtualKey(HWND);
+
+typedef int (__stdcall *REGISTERWORDENUMPROCA)(LPCSTR, DWORD, LPCSTR, LPVOID);
+typedef int (__stdcall *REGISTERWORDENUMPROCW)(LPCWSTR, DWORD, LPCWSTR, LPVOID);
+
+
+
+
+
+
+BOOL __stdcall ImmRegisterWordA(HKL, LPCSTR lpszReading, DWORD, LPCSTR lpszRegister);
+BOOL __stdcall ImmRegisterWordW(HKL, LPCWSTR lpszReading, DWORD, LPCWSTR lpszRegister);
+
+
+
+
+
+
+BOOL __stdcall ImmUnregisterWordA(HKL, LPCSTR lpszReading, DWORD, LPCSTR lpszUnregister);
+BOOL __stdcall ImmUnregisterWordW(HKL, LPCWSTR lpszReading, DWORD, LPCWSTR lpszUnregister);
+
+
+
+
+
+
+UINT __stdcall ImmGetRegisterWordStyleA(HKL, UINT nItem, LPSTYLEBUFA);
+UINT __stdcall ImmGetRegisterWordStyleW(HKL, UINT nItem, LPSTYLEBUFW);
+
+
+
+
+
+
+UINT __stdcall ImmEnumRegisterWordA(HKL, REGISTERWORDENUMPROCA, LPCSTR lpszReading, DWORD, LPCSTR lpszRegister, LPVOID);
+UINT __stdcall ImmEnumRegisterWordW(HKL, REGISTERWORDENUMPROCW, LPCWSTR lpszReading, DWORD, LPCWSTR lpszRegister, LPVOID);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma warning(default:4001)
+#pragma warning(default:4201)
+#pragma warning(default:4214)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+       
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+namespace sf {
+       namespace application {
+               namespace scene {
+                       
+                       
+                       
+                       class __declspec(novtable) Fade
+                       {
+                       public:
+                               enum TYPE {
+                                       FADE_IN,        
+                                       FADE_OUT        
+                               };
+
+                               Fade(){};
+                               virtual ~Fade(){};
+
+                               
+                               
+                               virtual void speed(const float  value) = 0;
+                               virtual const float  speed() = 0;
+                               
+                               virtual const Fade::TYPE  fadeType() = 0;
+                               virtual void fadeType(const Fade::TYPE  value) = 0;
+                               
+                               virtual const system::console::COLOR  startColor(void) = 0;
+                               virtual void startColor(const system::console::COLOR  value ) = 0;
+                               
+                               virtual const system::console::COLOR  endColor(void) = 0;
+                               virtual void endColor(const system::console::COLOR  value) = 0;
+                               
+                               virtual const bool fadeVolumeFlag() = 0;
+                               virtual void fadeVolumeFlag(const bool  value) = 0;
+                               
+                               
+                               
+                               virtual void initialize() = 0;
+
+                       };
+               }
+       }
+}
+
+
+
+
+
+
+
+
+Fade::Fade()
+{
+
+}
+
+Fade::~Fade()
+{
+
+}
diff --git a/project/s2001scene/fadeimpl.prep.txt b/project/s2001scene/fadeimpl.prep.txt
new file mode 100644 (file)
index 0000000..b5368af
--- /dev/null
@@ -0,0 +1,13107 @@
+#pragma warning( disable : 4786 )      
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef unsigned int size_t;
+
+
+
+
+
+typedef unsigned short wchar_t;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef int (__cdecl * _onexit_t)(void);
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _div_t {
+        int quot;
+        int rem;
+} div_t;
+
+typedef struct _ldiv_t {
+        long quot;
+        long rem;
+} ldiv_t;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ extern int __mb_cur_max;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ int * __cdecl _errno(void);
+ unsigned long * __cdecl __doserrno(void);
+
+
+
+
+
+
+
+
+
+
+
+
+
+ extern char * _sys_errlist[];   
+ extern int _sys_nerr;           
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ extern int __argc;          
+ extern char ** __argv;      
+
+ extern wchar_t ** __wargv;  
+
+
+
+
+
+ extern char ** _environ;    
+
+ extern wchar_t ** _wenviron;    
+
+
+
+ extern char * _pgmptr;      
+
+ extern wchar_t * _wpgmptr;  
+
+
+
+
+
+ extern int _fmode;          
+ extern int _fileinfo;       
+
+
+
+
+ extern unsigned int _osver;
+ extern unsigned int _winver;
+ extern unsigned int _winmajor;
+ extern unsigned int _winminor;
+
+
+
+
+
+ __declspec(noreturn) void   __cdecl abort(void);
+ __declspec(noreturn) void   __cdecl exit(int);
+
+
+
+
+
+
+
+
+        int    __cdecl abs(int);
+
+        int    __cdecl atexit(void (__cdecl *)(void));
+ double __cdecl atof(const char *);
+ int    __cdecl atoi(const char *);
+ long   __cdecl atol(const char *);
+
+
+
+ void * __cdecl bsearch(const void *, const void *, size_t, size_t,
+        int (__cdecl *)(const void *, const void *));
+ void * __cdecl calloc(size_t, size_t);
+ div_t  __cdecl div(int, int);
+ void   __cdecl free(void *);
+ char * __cdecl getenv(const char *);
+ char * __cdecl _itoa(int, char *, int);
+
+ char * __cdecl _i64toa(__int64, char *, int);
+ char * __cdecl _ui64toa(unsigned __int64, char *, int);
+ __int64 __cdecl _atoi64(const char *);
+
+
+
+
+        long __cdecl labs(long);
+
+ ldiv_t __cdecl ldiv(long, long);
+ char * __cdecl _ltoa(long, char *, int);
+ void * __cdecl malloc(size_t);
+ int    __cdecl mblen(const char *, size_t);
+ size_t __cdecl _mbstrlen(const char *s);
+ int    __cdecl mbtowc(wchar_t *, const char *, size_t);
+ size_t __cdecl mbstowcs(wchar_t *, const char *, size_t);
+ void   __cdecl qsort(void *, size_t, size_t, int (__cdecl *)
+        (const void *, const void *));
+ int    __cdecl rand(void);
+ void * __cdecl realloc(void *, size_t);
+ int    __cdecl _set_error_mode(int);
+ void   __cdecl srand(unsigned int);
+ double __cdecl strtod(const char *, char **);
+ long   __cdecl strtol(const char *, char **, int);
+
+
+
+ unsigned long __cdecl strtoul(const char *, char **, int);
+
+ int    __cdecl system(const char *);
+
+ char * __cdecl _ultoa(unsigned long, char *, int);
+ int    __cdecl wctomb(char *, wchar_t);
+ size_t __cdecl wcstombs(char *, const wchar_t *, size_t);
+
+
+
+
+
+
+
+ wchar_t * __cdecl _itow (int, wchar_t *, int);
+ wchar_t * __cdecl _ltow (long, wchar_t *, int);
+ wchar_t * __cdecl _ultow (unsigned long, wchar_t *, int);
+ double __cdecl wcstod(const wchar_t *, wchar_t **);
+ long   __cdecl wcstol(const wchar_t *, wchar_t **, int);
+ unsigned long __cdecl wcstoul(const wchar_t *, wchar_t **, int);
+ wchar_t * __cdecl _wgetenv(const wchar_t *);
+ int    __cdecl _wsystem(const wchar_t *);
+ int __cdecl _wtoi(const wchar_t *);
+ long __cdecl _wtol(const wchar_t *);
+
+ wchar_t * __cdecl _i64tow(__int64, wchar_t *, int);
+ wchar_t * __cdecl _ui64tow(unsigned __int64, wchar_t *, int);
+ __int64   __cdecl _wtoi64(const wchar_t *);
+
+
+
+
+
+
+
+
+
+ char * __cdecl _ecvt(double, int, int *, int *);
+
+ __declspec(noreturn) void   __cdecl _exit(int);
+
+
+
+ char * __cdecl _fcvt(double, int, int *, int *);
+ char * __cdecl _fullpath(char *, const char *, size_t);
+ char * __cdecl _gcvt(double, int, char *);
+        unsigned long __cdecl _lrotl(unsigned long, int);
+        unsigned long __cdecl _lrotr(unsigned long, int);
+
+ void   __cdecl _makepath(char *, const char *, const char *, const char *,
+        const char *);
+
+        _onexit_t __cdecl _onexit(_onexit_t);
+ void   __cdecl perror(const char *);
+ int    __cdecl _putenv(const char *);
+        unsigned int __cdecl _rotl(unsigned int, int);
+        unsigned int __cdecl _rotr(unsigned int, int);
+ void   __cdecl _searchenv(const char *, const char *, char *);
+
+ void   __cdecl _splitpath(const char *, char *, char *, char *, char *);
+
+ void   __cdecl _swab(char *, char *, int);
+
+
+
+
+
+
+ wchar_t * __cdecl _wfullpath(wchar_t *, const wchar_t *, size_t);
+ void   __cdecl _wmakepath(wchar_t *, const wchar_t *, const wchar_t *, const wchar_t *,
+        const wchar_t *);
+ void   __cdecl _wperror(const wchar_t *);
+ int    __cdecl _wputenv(const wchar_t *);
+ void   __cdecl _wsearchenv(const wchar_t *, const wchar_t *, wchar_t *);
+ void   __cdecl _wsplitpath(const wchar_t *, wchar_t *, wchar_t *, wchar_t *, wchar_t *);
+
+
+
+
+
+
+
+
+ void __cdecl _seterrormode(int);
+ void __cdecl _beep(unsigned, unsigned);
+ void __cdecl _sleep(unsigned long);
+
+
+
+
+
+
+
+
+
+
+
+ int __cdecl tolower(int);
+
+
+ int __cdecl toupper(int);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ char * __cdecl ecvt(double, int, int *, int *);
+ char * __cdecl fcvt(double, int, int *, int *);
+ char * __cdecl gcvt(double, int, char *);
+ char * __cdecl itoa(int, char *, int);
+ char * __cdecl ltoa(long, char *, int);
+        _onexit_t __cdecl onexit(_onexit_t);
+ int    __cdecl putenv(const char *);
+ void   __cdecl swab(char *, char *, int);
+ char * __cdecl ultoa(unsigned long, char *, int);
+
+
+
+
+
+
+}
+
+
+
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef void *_HFILE; 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef int (__cdecl * _CRT_REPORT_HOOK)(int, char *, int *);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef int (__cdecl * _CRT_ALLOC_HOOK)(int, void *, size_t, int, long, const unsigned char *, int);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef void (__cdecl * _CRT_DUMP_CLIENT)(void *, size_t);
+
+typedef struct _CrtMemState
+{
+        struct _CrtMemBlockHeader * pBlockHeader;
+        unsigned long lCounts[5];
+        unsigned long lSizes[5];
+        unsigned long lHighWaterCount;
+        unsigned long lTotalCount;
+} _CrtMemState;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ extern long _crtAssertBusy;
+
+ _CRT_REPORT_HOOK __cdecl _CrtSetReportHook(
+        _CRT_REPORT_HOOK
+        );
+
+ int __cdecl _CrtSetReportMode(
+        int,
+        int
+        );
+
+ _HFILE __cdecl _CrtSetReportFile(
+        int,
+        _HFILE
+        );
+
+ int __cdecl _CrtDbgReport(
+        int,
+        const char *,
+        int,
+        const char *,
+        const char *,
+        ...);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ extern long _crtBreakAlloc;      
+
+ long __cdecl _CrtSetBreakAlloc(
+        long
+        );
+
+
+
+
+
+ void * __cdecl _malloc_dbg(
+        size_t,
+        int,
+        const char *,
+        int
+        );
+
+ void * __cdecl _calloc_dbg(
+        size_t,
+        size_t,
+        int,
+        const char *,
+        int
+        );
+
+ void * __cdecl _realloc_dbg(
+        void *,
+        size_t,
+        int,
+        const char *,
+        int
+        );
+
+ void * __cdecl _expand_dbg(
+        void *,
+        size_t,
+        int,
+        const char *,
+        int
+        );
+
+ void __cdecl _free_dbg(
+        void *,
+        int
+        );
+
+ size_t __cdecl _msize_dbg (
+        void *,
+        int
+        );
+
+
+
+
+
+
+
+ _CRT_ALLOC_HOOK __cdecl _CrtSetAllocHook(
+        _CRT_ALLOC_HOOK
+        );
+
+
+
+
+
+
+
+
+
+
+
+
+ extern int _crtDbgFlag;
+
+ int __cdecl _CrtCheckMemory(
+        void
+        );
+
+ int __cdecl _CrtSetDbgFlag(
+        int
+        );
+
+ void __cdecl _CrtDoForAllClientObjects(
+        void (*pfn)(void *, void *),
+        void *
+        );
+
+ int __cdecl _CrtIsValidPointer(
+        const void *,
+        unsigned int,
+        int
+        );
+
+ int __cdecl _CrtIsValidHeapPointer(
+        const void *
+        );
+
+ int __cdecl _CrtIsMemoryBlock(
+        const void *,
+        unsigned int,
+        long *,
+        char **,
+        int *
+        );
+
+
+
+
+
+
+
+ _CRT_DUMP_CLIENT __cdecl _CrtSetDumpClient(
+        _CRT_DUMP_CLIENT
+        );
+
+ void __cdecl _CrtMemCheckpoint(
+        _CrtMemState *
+        );
+
+ int __cdecl _CrtMemDifference(
+        _CrtMemState *,
+        const _CrtMemState *,
+        const _CrtMemState *
+        );
+
+ void __cdecl _CrtMemDumpAllObjectsSince(
+        const _CrtMemState *
+        );
+
+ void __cdecl _CrtMemDumpStatistics(
+        const _CrtMemState *
+        );
+
+ int __cdecl _CrtDumpMemoryLeaks(
+        void
+        );
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ void * __cdecl operator new(
+        unsigned int,
+        int,
+        const char *,
+        int
+        );
+
+
+
+inline void __cdecl operator delete(void * _P, int, const char *, int)
+        { ::operator delete(_P); }
+
+
+
+
+inline void* __cdecl operator new(unsigned int s)
+        { return ::operator new(s, 1, "c:\\progra~1\\micros~1\\vc98\\include\\crtdbg.h", 552); };
+
+
+
+
+
+
+
+
+
+
+
+       
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef wchar_t wint_t;
+typedef wchar_t wctype_t;
+
+
+
+
+
+
+
+
+
+
+
+
+typedef char *  va_list;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+struct _iobuf {
+        char *_ptr;
+        int   _cnt;
+        char *_base;
+        int   _flag;
+        int   _file;
+        int   _charbuf;
+        int   _bufsiz;
+        char *_tmpfname;
+        };
+typedef struct _iobuf FILE;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ extern FILE _iob[];
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef __int64 fpos_t;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ int __cdecl _filbuf(FILE *);
+ int __cdecl _flsbuf(int, FILE *);
+
+
+
+
+ FILE * __cdecl _fsopen(const char *, const char *, int);
+
+
+ void __cdecl clearerr(FILE *);
+ int __cdecl fclose(FILE *);
+ int __cdecl _fcloseall(void);
+
+
+
+
+ FILE * __cdecl _fdopen(int, const char *);
+
+
+ int __cdecl feof(FILE *);
+ int __cdecl ferror(FILE *);
+ int __cdecl fflush(FILE *);
+ int __cdecl fgetc(FILE *);
+ int __cdecl _fgetchar(void);
+ int __cdecl fgetpos(FILE *, fpos_t *);
+ char * __cdecl fgets(char *, int, FILE *);
+
+
+
+
+ int __cdecl _fileno(FILE *);
+
+
+ int __cdecl _flushall(void);
+ FILE * __cdecl fopen(const char *, const char *);
+ int __cdecl fprintf(FILE *, const char *, ...);
+ int __cdecl fputc(int, FILE *);
+ int __cdecl _fputchar(int);
+ int __cdecl fputs(const char *, FILE *);
+ size_t __cdecl fread(void *, size_t, size_t, FILE *);
+ FILE * __cdecl freopen(const char *, const char *, FILE *);
+ int __cdecl fscanf(FILE *, const char *, ...);
+ int __cdecl fsetpos(FILE *, const fpos_t *);
+ int __cdecl fseek(FILE *, long, int);
+ long __cdecl ftell(FILE *);
+ size_t __cdecl fwrite(const void *, size_t, size_t, FILE *);
+ int __cdecl getc(FILE *);
+ int __cdecl getchar(void);
+ int __cdecl _getmaxstdio(void);
+ char * __cdecl gets(char *);
+ int __cdecl _getw(FILE *);
+ void __cdecl perror(const char *);
+ int __cdecl _pclose(FILE *);
+ FILE * __cdecl _popen(const char *, const char *);
+ int __cdecl printf(const char *, ...);
+ int __cdecl putc(int, FILE *);
+ int __cdecl putchar(int);
+ int __cdecl puts(const char *);
+ int __cdecl _putw(int, FILE *);
+ int __cdecl remove(const char *);
+ int __cdecl rename(const char *, const char *);
+ void __cdecl rewind(FILE *);
+ int __cdecl _rmtmp(void);
+ int __cdecl scanf(const char *, ...);
+ void __cdecl setbuf(FILE *, char *);
+ int __cdecl _setmaxstdio(int);
+ int __cdecl setvbuf(FILE *, char *, int, size_t);
+ int __cdecl _snprintf(char *, size_t, const char *, ...);
+ int __cdecl sprintf(char *, const char *, ...);
+ int __cdecl sscanf(const char *, const char *, ...);
+ char * __cdecl _tempnam(const char *, const char *);
+ FILE * __cdecl tmpfile(void);
+ char * __cdecl tmpnam(char *);
+ int __cdecl ungetc(int, FILE *);
+ int __cdecl _unlink(const char *);
+ int __cdecl vfprintf(FILE *, const char *, va_list);
+ int __cdecl vprintf(const char *, va_list);
+ int __cdecl _vsnprintf(char *, size_t, const char *, va_list);
+ int __cdecl vsprintf(char *, const char *, va_list);
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FILE * __cdecl _wfsopen(const wchar_t *, const wchar_t *, int);
+
+
+ wint_t __cdecl fgetwc(FILE *);
+ wint_t __cdecl _fgetwchar(void);
+ wint_t __cdecl fputwc(wint_t, FILE *);
+ wint_t __cdecl _fputwchar(wint_t);
+ wint_t __cdecl getwc(FILE *);
+ wint_t __cdecl getwchar(void);
+ wint_t __cdecl putwc(wint_t, FILE *);
+ wint_t __cdecl putwchar(wint_t);
+ wint_t __cdecl ungetwc(wint_t, FILE *);
+
+ wchar_t * __cdecl fgetws(wchar_t *, int, FILE *);
+ int __cdecl fputws(const wchar_t *, FILE *);
+ wchar_t * __cdecl _getws(wchar_t *);
+ int __cdecl _putws(const wchar_t *);
+
+ int __cdecl fwprintf(FILE *, const wchar_t *, ...);
+ int __cdecl wprintf(const wchar_t *, ...);
+ int __cdecl _snwprintf(wchar_t *, size_t, const wchar_t *, ...);
+ int __cdecl swprintf(wchar_t *, const wchar_t *, ...);
+ int __cdecl vfwprintf(FILE *, const wchar_t *, va_list);
+ int __cdecl vwprintf(const wchar_t *, va_list);
+ int __cdecl _vsnwprintf(wchar_t *, size_t, const wchar_t *, va_list);
+ int __cdecl vswprintf(wchar_t *, const wchar_t *, va_list);
+ int __cdecl fwscanf(FILE *, const wchar_t *, ...);
+ int __cdecl swscanf(const wchar_t *, const wchar_t *, ...);
+ int __cdecl wscanf(const wchar_t *, ...);
+
+
+
+
+
+
+ FILE * __cdecl _wfdopen(int, const wchar_t *);
+ FILE * __cdecl _wfopen(const wchar_t *, const wchar_t *);
+ FILE * __cdecl _wfreopen(const wchar_t *, const wchar_t *, FILE *);
+ void __cdecl _wperror(const wchar_t *);
+ FILE * __cdecl _wpopen(const wchar_t *, const wchar_t *);
+ int __cdecl _wremove(const wchar_t *);
+ wchar_t * __cdecl _wtempnam(const wchar_t *, const wchar_t *);
+ wchar_t * __cdecl _wtmpnam(wchar_t *);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ int __cdecl fcloseall(void);
+ FILE * __cdecl fdopen(int, const char *);
+ int __cdecl fgetchar(void);
+ int __cdecl fileno(FILE *);
+ int __cdecl flushall(void);
+ int __cdecl fputchar(int);
+ int __cdecl getw(FILE *);
+ int __cdecl putw(int, FILE *);
+ int __cdecl rmtmp(void);
+ char * __cdecl tempnam(const char *, const char *);
+ int __cdecl unlink(const char *);
+
+
+
+
+}
+
+
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        void *  __cdecl memcpy(void *, const void *, size_t);
+        int     __cdecl memcmp(const void *, const void *, size_t);
+        void *  __cdecl memset(void *, int, size_t);
+        char *  __cdecl _strset(char *, int);
+        char *  __cdecl strcpy(char *, const char *);
+        char *  __cdecl strcat(char *, const char *);
+        int     __cdecl strcmp(const char *, const char *);
+        size_t  __cdecl strlen(const char *);
+
+ void *  __cdecl _memccpy(void *, const void *, int, unsigned int);
+ void *  __cdecl memchr(const void *, int, size_t);
+ int     __cdecl _memicmp(const void *, const void *, unsigned int);
+
+
+
+
+
+ void *  __cdecl memmove(void *, const void *, size_t);
+
+
+
+ char *  __cdecl strchr(const char *, int);
+ int     __cdecl _strcmpi(const char *, const char *);
+ int     __cdecl _stricmp(const char *, const char *);
+ int     __cdecl strcoll(const char *, const char *);
+ int     __cdecl _stricoll(const char *, const char *);
+ int     __cdecl _strncoll(const char *, const char *, size_t);
+ int     __cdecl _strnicoll(const char *, const char *, size_t);
+ size_t  __cdecl strcspn(const char *, const char *);
+ char *  __cdecl _strdup(const char *);
+ char *  __cdecl _strerror(const char *);
+ char *  __cdecl strerror(int);
+ char *  __cdecl _strlwr(char *);
+ char *  __cdecl strncat(char *, const char *, size_t);
+ int     __cdecl strncmp(const char *, const char *, size_t);
+ int     __cdecl _strnicmp(const char *, const char *, size_t);
+ char *  __cdecl strncpy(char *, const char *, size_t);
+ char *  __cdecl _strnset(char *, int, size_t);
+ char *  __cdecl strpbrk(const char *, const char *);
+ char *  __cdecl strrchr(const char *, int);
+ char *  __cdecl _strrev(char *);
+ size_t  __cdecl strspn(const char *, const char *);
+ char *  __cdecl strstr(const char *, const char *);
+ char *  __cdecl strtok(char *, const char *);
+ char *  __cdecl _strupr(char *);
+ size_t  __cdecl strxfrm (char *, const char *, size_t);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ void * __cdecl memccpy(void *, const void *, int, unsigned int);
+ int __cdecl memicmp(const void *, const void *, unsigned int);
+ int __cdecl strcmpi(const char *, const char *);
+ int __cdecl stricmp(const char *, const char *);
+ char * __cdecl strdup(const char *);
+ char * __cdecl strlwr(char *);
+ int __cdecl strnicmp(const char *, const char *, size_t);
+ char * __cdecl strnset(char *, int, size_t);
+ char * __cdecl strrev(char *);
+        char * __cdecl strset(char *, int);
+ char * __cdecl strupr(char *);
+
+
+
+
+
+
+
+
+
+ wchar_t * __cdecl wcscat(wchar_t *, const wchar_t *);
+ wchar_t * __cdecl wcschr(const wchar_t *, wchar_t);
+ int __cdecl wcscmp(const wchar_t *, const wchar_t *);
+ wchar_t * __cdecl wcscpy(wchar_t *, const wchar_t *);
+ size_t __cdecl wcscspn(const wchar_t *, const wchar_t *);
+ size_t __cdecl wcslen(const wchar_t *);
+ wchar_t * __cdecl wcsncat(wchar_t *, const wchar_t *, size_t);
+ int __cdecl wcsncmp(const wchar_t *, const wchar_t *, size_t);
+ wchar_t * __cdecl wcsncpy(wchar_t *, const wchar_t *, size_t);
+ wchar_t * __cdecl wcspbrk(const wchar_t *, const wchar_t *);
+ wchar_t * __cdecl wcsrchr(const wchar_t *, wchar_t);
+ size_t __cdecl wcsspn(const wchar_t *, const wchar_t *);
+ wchar_t * __cdecl wcsstr(const wchar_t *, const wchar_t *);
+ wchar_t * __cdecl wcstok(wchar_t *, const wchar_t *);
+
+ wchar_t * __cdecl _wcsdup(const wchar_t *);
+ int __cdecl _wcsicmp(const wchar_t *, const wchar_t *);
+ int __cdecl _wcsnicmp(const wchar_t *, const wchar_t *, size_t);
+ wchar_t * __cdecl _wcsnset(wchar_t *, wchar_t, size_t);
+ wchar_t * __cdecl _wcsrev(wchar_t *);
+ wchar_t * __cdecl _wcsset(wchar_t *, wchar_t);
+
+ wchar_t * __cdecl _wcslwr(wchar_t *);
+ wchar_t * __cdecl _wcsupr(wchar_t *);
+ size_t __cdecl wcsxfrm(wchar_t *, const wchar_t *, size_t);
+ int __cdecl wcscoll(const wchar_t *, const wchar_t *);
+ int __cdecl _wcsicoll(const wchar_t *, const wchar_t *);
+ int __cdecl _wcsncoll(const wchar_t *, const wchar_t *, size_t);
+ int __cdecl _wcsnicoll(const wchar_t *, const wchar_t *, size_t);
+
+
+
+
+
+
+
+ wchar_t * __cdecl wcsdup(const wchar_t *);
+ int __cdecl wcsicmp(const wchar_t *, const wchar_t *);
+ int __cdecl wcsnicmp(const wchar_t *, const wchar_t *, size_t);
+ wchar_t * __cdecl wcsnset(wchar_t *, wchar_t, size_t);
+ wchar_t * __cdecl wcsrev(wchar_t *);
+ wchar_t * __cdecl wcsset(wchar_t *, wchar_t);
+ wchar_t * __cdecl wcslwr(wchar_t *);
+ wchar_t * __cdecl wcsupr(wchar_t *);
+ int __cdecl wcsicoll(const wchar_t *, const wchar_t *);
+
+
+
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef long time_t;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef unsigned long _fsize_t; 
+
+
+
+
+
+struct _wfinddata_t {
+        unsigned attrib;
+        time_t   time_create;   
+        time_t   time_access;   
+        time_t   time_write;
+        _fsize_t size;
+        wchar_t  name[260];
+};
+
+
+
+struct _wfinddatai64_t {
+        unsigned attrib;
+        time_t   time_create;   
+        time_t   time_access;   
+        time_t   time_write;
+        __int64  size;
+        wchar_t  name[260];
+};
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ extern unsigned short _ctype[];
+ extern unsigned short *_pctype;
+
+ extern wctype_t *_pwctype;
+
+
+
+
+
+
+
+
+
+
+                                
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ int __cdecl iswalpha(wint_t);
+ int __cdecl iswupper(wint_t);
+ int __cdecl iswlower(wint_t);
+ int __cdecl iswdigit(wint_t);
+ int __cdecl iswxdigit(wint_t);
+ int __cdecl iswspace(wint_t);
+ int __cdecl iswpunct(wint_t);
+ int __cdecl iswalnum(wint_t);
+ int __cdecl iswprint(wint_t);
+ int __cdecl iswgraph(wint_t);
+ int __cdecl iswcntrl(wint_t);
+ int __cdecl iswascii(wint_t);
+ int __cdecl isleadbyte(int);
+
+ wchar_t __cdecl towupper(wchar_t);
+ wchar_t __cdecl towlower(wchar_t);
+
+ int __cdecl iswctype(wint_t, wctype_t);
+
+
+ int __cdecl is_wctype(wint_t, wctype_t);
+
+
+
+
+
+
+
+
+
+ int __cdecl _wchdir(const wchar_t *);
+ wchar_t * __cdecl _wgetcwd(wchar_t *, int);
+ wchar_t * __cdecl _wgetdcwd(int, wchar_t *, int);
+ int __cdecl _wmkdir(const wchar_t *);
+ int __cdecl _wrmdir(const wchar_t *);
+
+
+
+
+
+
+
+
+ int __cdecl _waccess(const wchar_t *, int);
+ int __cdecl _wchmod(const wchar_t *, int);
+ int __cdecl _wcreat(const wchar_t *, int);
+ long __cdecl _wfindfirst(wchar_t *, struct _wfinddata_t *);
+ int __cdecl _wfindnext(long, struct _wfinddata_t *);
+ int __cdecl _wunlink(const wchar_t *);
+ int __cdecl _wrename(const wchar_t *, const wchar_t *);
+ int __cdecl _wopen(const wchar_t *, int, ...);
+ int __cdecl _wsopen(const wchar_t *, int, int, ...);
+ wchar_t * __cdecl _wmktemp(wchar_t *);
+
+
+ long __cdecl _wfindfirsti64(wchar_t *, struct _wfinddatai64_t *);
+ int __cdecl _wfindnexti64(long, struct _wfinddatai64_t *);
+
+
+
+
+
+
+
+
+
+ wchar_t * __cdecl _wsetlocale(int, const wchar_t *);
+
+
+
+
+
+
+
+
+ int __cdecl _wexecl(const wchar_t *, const wchar_t *, ...);
+ int __cdecl _wexecle(const wchar_t *, const wchar_t *, ...);
+ int __cdecl _wexeclp(const wchar_t *, const wchar_t *, ...);
+ int __cdecl _wexeclpe(const wchar_t *, const wchar_t *, ...);
+ int __cdecl _wexecv(const wchar_t *, const wchar_t * const *);
+ int __cdecl _wexecve(const wchar_t *, const wchar_t * const *, const wchar_t * const *);
+ int __cdecl _wexecvp(const wchar_t *, const wchar_t * const *);
+ int __cdecl _wexecvpe(const wchar_t *, const wchar_t * const *, const wchar_t * const *);
+ int __cdecl _wspawnl(int, const wchar_t *, const wchar_t *, ...);
+ int __cdecl _wspawnle(int, const wchar_t *, const wchar_t *, ...);
+ int __cdecl _wspawnlp(int, const wchar_t *, const wchar_t *, ...);
+ int __cdecl _wspawnlpe(int, const wchar_t *, const wchar_t *, ...);
+ int __cdecl _wspawnv(int, const wchar_t *, const wchar_t * const *);
+ int __cdecl _wspawnve(int, const wchar_t *, const wchar_t * const *,
+        const wchar_t * const *);
+ int __cdecl _wspawnvp(int, const wchar_t *, const wchar_t * const *);
+ int __cdecl _wspawnvpe(int, const wchar_t *, const wchar_t * const *,
+        const wchar_t * const *);
+ int __cdecl _wsystem(const wchar_t *);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+inline int __cdecl iswalpha(wint_t _C) {return (iswctype(_C,(0x0100|0x1|0x2))); }
+inline int __cdecl iswupper(wint_t _C) {return (iswctype(_C,0x1)); }
+inline int __cdecl iswlower(wint_t _C) {return (iswctype(_C,0x2)); }
+inline int __cdecl iswdigit(wint_t _C) {return (iswctype(_C,0x4)); }
+inline int __cdecl iswxdigit(wint_t _C) {return (iswctype(_C,0x80)); }
+inline int __cdecl iswspace(wint_t _C) {return (iswctype(_C,0x8)); }
+inline int __cdecl iswpunct(wint_t _C) {return (iswctype(_C,0x10)); }
+inline int __cdecl iswalnum(wint_t _C) {return (iswctype(_C,(0x0100|0x1|0x2)|0x4)); }
+inline int __cdecl iswprint(wint_t _C)
+        {return (iswctype(_C,0x40|0x10|(0x0100|0x1|0x2)|0x4)); }
+inline int __cdecl iswgraph(wint_t _C)
+        {return (iswctype(_C,0x10|(0x0100|0x1|0x2)|0x4)); }
+inline int __cdecl iswcntrl(wint_t _C) {return (iswctype(_C,0x20)); }
+inline int __cdecl iswascii(wint_t _C) {return ((unsigned)(_C) < 0x80); }
+
+
+inline int __cdecl isleadbyte(int _C)
+        {return (_pctype[(unsigned char)(_C)] & 0x8000); }
+
+
+
+
+
+
+
+
+
+
+
+typedef unsigned short _ino_t;      
+
+
+typedef unsigned short ino_t;
+
+
+
+
+
+typedef unsigned int _dev_t;        
+
+
+typedef unsigned int dev_t;
+
+
+
+
+
+typedef long _off_t;                
+
+
+typedef long off_t;
+
+
+
+
+
+
+struct _stat {
+        _dev_t st_dev;
+        _ino_t st_ino;
+        unsigned short st_mode;
+        short st_nlink;
+        short st_uid;
+        short st_gid;
+        _dev_t st_rdev;
+        _off_t st_size;
+        time_t st_atime;
+        time_t st_mtime;
+        time_t st_ctime;
+        };
+
+
+
+struct stat {
+        _dev_t st_dev;
+        _ino_t st_ino;
+        unsigned short st_mode;
+        short st_nlink;
+        short st_uid;
+        short st_gid;
+        _dev_t st_rdev;
+        _off_t st_size;
+        time_t st_atime;
+        time_t st_mtime;
+        time_t st_ctime;
+        };
+
+
+
+struct _stati64 {
+        _dev_t st_dev;
+        _ino_t st_ino;
+        unsigned short st_mode;
+        short st_nlink;
+        short st_uid;
+        short st_gid;
+        _dev_t st_rdev;
+        __int64 st_size;
+        time_t st_atime;
+        time_t st_mtime;
+        time_t st_ctime;
+        };
+
+
+
+
+
+
+
+
+
+
+ int __cdecl _wstat(const wchar_t *, struct _stat *);
+
+
+ int __cdecl _wstati64(const wchar_t *, struct _stati64 *);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+struct tm {
+        int tm_sec;     
+        int tm_min;     
+        int tm_hour;    
+        int tm_mday;    
+        int tm_mon;     
+        int tm_year;    
+        int tm_wday;    
+        int tm_yday;    
+        int tm_isdst;   
+        };
+
+
+
+
+
+
+
+ wchar_t * __cdecl _wasctime(const struct tm *);
+ wchar_t * __cdecl _wctime(const time_t *);
+ size_t __cdecl wcsftime(wchar_t *, size_t, const wchar_t *,
+        const struct tm *);
+ wchar_t * __cdecl _wstrdate(wchar_t *);
+ wchar_t * __cdecl _wstrtime(wchar_t *);
+
+
+
+
+
+
+typedef int mbstate_t;
+typedef wchar_t _Wint_t;
+
+ wint_t __cdecl btowc(int);
+ size_t __cdecl mbrlen(const char *, size_t, mbstate_t *);
+ size_t __cdecl mbrtowc(wchar_t *, const char *, size_t, mbstate_t *);
+ size_t __cdecl mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *);
+
+ size_t __cdecl wcrtomb(char *, wchar_t, mbstate_t *);
+ size_t __cdecl wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
+ int __cdecl wctob(wint_t);
+
+
+inline int fwide(FILE *, int _M)
+        {return (_M); }
+inline int mbsinit(const mbstate_t *)
+        {return (1); }
+inline const wchar_t *wmemchr(const wchar_t *_S, wchar_t _C, size_t _N)
+        {for (; 0 < _N; ++_S, --_N)
+                if (*_S == _C)
+                        return (_S);
+        return (0); }
+inline int wmemcmp(const wchar_t *_S1, const wchar_t *_S2, size_t _N)
+        {for (; 0 < _N; ++_S1, ++_S2, --_N)
+                if (*_S1 != *_S2)
+                        return (*_S1 < *_S2 ? -1 : +1);
+        return (0); }
+inline wchar_t *wmemcpy(wchar_t *_S1, const wchar_t *_S2, size_t _N)
+        {wchar_t *_Su1 = _S1;
+        for (; 0 < _N; ++_Su1, ++_S2, --_N)
+                *_Su1 = *_S2;
+        return (_S1); }
+inline wchar_t *wmemmove(wchar_t *_S1, const wchar_t *_S2, size_t _N)
+        {wchar_t *_Su1 = _S1;
+        if (_S2 < _Su1 && _Su1 < _S2 + _N)
+                for (_Su1 += _N, _S2 += _N; 0 < _N; --_N)
+                        *--_Su1 = *--_S2;
+        else
+                for (; 0 < _N; --_N)
+                        *_Su1++ = *_S2++;
+        return (_S1); }
+inline wchar_t *wmemset(wchar_t *_S, wchar_t _C, size_t _N)
+        {wchar_t *_Su = _S;
+        for (; 0 < _N; ++_Su, --_N)
+                *_Su = _C;
+        return (_S); }
+}       
+inline wchar_t *wmemchr(wchar_t *_S, wchar_t _C, size_t _N)
+        {return ((wchar_t *)wmemchr((const wchar_t *)_S, _C, _N)); }
+inline wchar_t *wcschr(wchar_t *_S, wchar_t _C)
+        {return ((wchar_t *)wcschr((const wchar_t *)_S, _C)); }
+inline wchar_t *wcspbrk(wchar_t *_S, const wchar_t *_P)
+        {return ((wchar_t *)wcspbrk((const wchar_t *)_S, _P)); }
+inline wchar_t *wcsrchr(wchar_t *_S, wchar_t _C)
+        {return ((wchar_t *)wcsrchr((const wchar_t *)_S, _C)); }
+inline wchar_t *wcsstr(wchar_t *_S, const wchar_t *_P)
+        {return ((wchar_t *)wcsstr((const wchar_t *)_S, _P)); }
+
+
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma comment(lib,"libcpmtd")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+
+ #pragma warning(4: 4018 4114 4146 4244 4245)
+ #pragma warning(4: 4663 4664 4665)
+ #pragma warning(disable: 4237 4284 4290 4514)
+               
+  
+  
+  
+  
+
+
+
+
+namespace std {
+               
+typedef bool _Bool;
+               
+
+
+
+               
+
+
+
+
+
+
+               
+  
+  
+
+
+
+
+               
+class  _Lockit
+       {       
+public:
+  
+   
+       _Lockit();
+       ~_Lockit();
+  
+
+
+
+
+
+
+       };
+               
+
+
+
+
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ extern int * __cdecl _errno(void);
+
+
+
+
+
+
+
+
+
+typedef int ptrdiff_t;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ extern unsigned long  __cdecl __threadid(void);
+
+ extern unsigned long  __cdecl __threadhandle(void);
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+               
+               
+               
+               
+
+
+               
+enum _Uninitialized {_Noinit};
+               
+ void __cdecl _Nomemory();
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+                
+typedef long streamoff;
+const streamoff _BADOFF = -1;
+typedef int streamsize;
+extern  const fpos_t _Fpz;
+                
+template<class _St>
+        class fpos {
+        typedef fpos<_St> _Myt;
+public:
+
+        fpos(streamoff _O = 0)
+                : _Off(_O), _Fpos(_Fpz)
+                {_Lockit _Lk;
+                _State = _Stz; }
+
+
+
+
+        fpos(_St _S, fpos_t _F)
+                : _Off(0), _Fpos(_F), _State(_S) {}
+        _St state() const
+                {return (_State); }
+        void state(_St _S)
+                {_State = _S; }
+        fpos_t get_fpos_t() const
+                {return (_Fpos); }
+        operator streamoff() const
+                {return (_Off + ((long)(_Fpos))); }
+        streamoff operator-(const _Myt& _R) const
+                {return ((streamoff)*this - (streamoff)_R); }
+        _Myt& operator+=(streamoff _O)
+                {_Off += _O;
+                return (*this); }
+        _Myt& operator-=(streamoff _O)
+                {_Off -= _O;
+                return (*this); }
+        _Myt operator+(streamoff _O) const
+                {_Myt _Tmp = *this;
+                return (_Tmp += _O); }
+        _Myt operator-(streamoff _O) const
+                {_Myt _Tmp = *this;
+                return (_Tmp -= _O); }
+        bool operator==(const _Myt& _R) const
+                {return ((streamoff)*this == (streamoff)_R); }
+        bool operator!=(const _Myt& _R) const
+                {return (!(*this == _R)); }
+private:
+        static _St _Stz;
+        streamoff _Off;
+        fpos_t _Fpos;
+        _St _State;
+        };
+template<class _St>
+        _St fpos<_St>::_Stz;
+typedef fpos<mbstate_t> streampos;
+typedef streampos wstreampos;
+                
+template<class _E>
+        struct char_traits {
+        typedef _E char_type;
+        typedef _E int_type;
+        typedef streampos pos_type;
+        typedef streamoff off_type;
+        typedef mbstate_t state_type;
+        static void __cdecl assign(_E& _X, const _E& _Y)
+                {_X = _Y; }
+        static bool __cdecl eq(const _E& _X, const _E& _Y)
+                {return (_X == _Y); }
+        static bool __cdecl lt(const _E& _X, const _E& _Y)
+                {return (_X < _Y); }
+        static int __cdecl compare(const _E *_U, const _E *_V, size_t _N)
+                {for (size_t _I = 0; _I < _N; ++_I, ++_U, ++_V)
+                        if (!eq(*_U, *_V))
+                                return (lt(*_U, *_V) ? -1 : +1);
+                return (0); }
+        static size_t __cdecl length(const _E *_U)
+                {size_t _N;
+                for (_N = 0; !eq(*_U, _E(0)); ++_U)
+                        ++_N;
+                return (_N); }
+        static _E * __cdecl copy(_E *_U, const _E *_V, size_t _N)
+                {_E *_S = _U;
+                for (; 0 < _N; --_N, ++_U, ++_V)
+                        assign(*_U, *_V);
+                return (_S); }
+        static const _E * __cdecl find(const _E *_U, size_t _N,
+                const _E& _C)
+                {for (; 0 < _N; --_N, ++_U)
+                        if (eq(*_U, _C))
+                                return (_U);
+                return (0); }
+        static _E * __cdecl move(_E *_U, const _E *_V, size_t _N)
+                {_E *_Ans = _U;
+                if (_V < _U && _U < _V + _N)
+                        for (_U += _N, _V += _N; 0 < _N; --_N)
+                                assign(*--_U, *--_V);
+                else
+                        for (; 0 < _N; --_N, ++_U, ++_V)
+                                assign(*_U, *_V);
+                return (_Ans); }
+        static _E * __cdecl assign(_E *_U, size_t _N, const _E& _C)
+                {_E *_Ans = _U;
+                for (; 0 < _N; --_N, ++_U)
+                        assign(*_U, _C);
+                return (_Ans); }
+        static _E __cdecl to_char_type(const int_type& _C)
+                {return ((_E)_C); }
+        static int_type __cdecl to_int_type(const _E& _C)
+                {return ((int_type)_C); }
+        static bool __cdecl eq_int_type(const int_type& _X,
+                const int_type& _Y)
+                {return (_X == _Y); }
+        static int_type __cdecl eof()
+                {return ((-1)); }
+        static int_type __cdecl not_eof(const int_type& _C)
+                {return (_C != eof() ? _C : !eof()); }
+        };
+                
+template<> struct  char_traits<wchar_t> {
+        typedef wchar_t _E;
+        typedef _E char_type;   
+        typedef wint_t int_type;
+        typedef streampos pos_type;
+        typedef streamoff off_type;
+        typedef mbstate_t state_type;
+        static void __cdecl assign(_E& _X, const _E& _Y)
+                {_X = _Y; }
+        static bool __cdecl eq(const _E& _X, const _E& _Y)
+                {return (_X == _Y); }
+        static bool __cdecl lt(const _E& _X, const _E& _Y)
+                {return (_X < _Y); }
+        static int __cdecl compare(const _E *_U, const _E *_V, size_t _N)
+                {return (wmemcmp(_U, _V, _N)); }
+        static size_t __cdecl length(const _E *_U)
+                {return (wcslen(_U)); }
+        static _E *__cdecl copy(_E *_U, const _E *_V, size_t _N)
+                {return (wmemcpy(_U, _V, _N)); }
+        static const _E * __cdecl find(const _E *_U, size_t _N,
+                const _E& _C)
+                {return ((const _E *)wmemchr(_U, _C, _N)); }
+        static _E * __cdecl move(_E *_U, const _E *_V, size_t _N)
+                {return (wmemmove(_U, _V, _N)); }
+        static _E * __cdecl assign(_E *_U, size_t _N, const _E& _C)
+                {return (wmemset(_U, _C, _N)); }
+        static _E __cdecl to_char_type(const int_type& _C)
+                {return ((_E)_C); }
+        static int_type __cdecl to_int_type(const _E& _C)
+                {return ((int_type)_C); }
+        static bool __cdecl eq_int_type(const int_type& _X,
+                const int_type& _Y)
+                {return (_X == _Y); }
+        static int_type __cdecl eof()
+                {return ((wint_t)(0xFFFF)); }
+        static int_type __cdecl not_eof(const int_type& _C)
+                {return (_C != eof() ? _C : !eof()); }
+        };
+                
+template<> struct  char_traits<char> {
+        typedef char _E;
+        typedef _E char_type;
+        typedef int int_type;
+        typedef streampos pos_type;
+        typedef streamoff off_type;
+        typedef mbstate_t state_type;
+        static void __cdecl assign(_E& _X, const _E& _Y)
+                {_X = _Y; }
+        static bool __cdecl eq(const _E& _X, const _E& _Y)
+                {return (_X == _Y); }
+        static bool __cdecl lt(const _E& _X, const _E& _Y)
+                {return (_X < _Y); }
+        static int __cdecl compare(const _E *_U, const _E *_V, size_t _N)
+                {return (memcmp(_U, _V, _N)); }
+        static size_t __cdecl length(const _E *_U)
+                {return (strlen(_U)); }
+        static _E * __cdecl copy(_E *_U, const _E *_V, size_t _N)
+                {return ((_E *)memcpy(_U, _V, _N)); }
+        static const _E * __cdecl find(const _E *_U, size_t _N,
+                const _E& _C)
+                {return ((const _E *)memchr(_U, _C, _N)); }
+        static _E * __cdecl move(_E *_U, const _E *_V, size_t _N)
+                {return ((_E *)memmove(_U, _V, _N)); }
+        static _E * __cdecl assign(_E *_U, size_t _N, const _E& _C)
+                {return ((_E *)memset(_U, _C, _N)); }
+        static _E __cdecl to_char_type(const int_type& _C)
+                {return ((_E)_C); }
+        static int_type __cdecl to_int_type(const _E& _C)
+                {return ((int_type)((unsigned char)_C)); }
+        static bool __cdecl eq_int_type(const int_type& _X,
+                const int_type& _Y)
+                {return (_X == _Y); }
+        static int_type __cdecl eof()
+                {return ((-1)); }
+        static int_type __cdecl not_eof(const int_type& _C)
+                {return (_C != eof() ? _C : !eof()); }
+        };
+                
+template<class T>
+        class allocator;
+class ios_base;
+template<class _E, class _Tr = char_traits<_E> >
+        class basic_ios;
+template<class _E, class _Tr = char_traits<_E> >
+        class istreambuf_iterator;
+template<class _E, class _Tr = char_traits<_E> >
+        class ostreambuf_iterator;
+template<class _E, class _Tr = char_traits<_E> >
+        class basic_streambuf;
+template<class _E, class _Tr = char_traits<_E> >
+        class basic_istream;
+template<class _E, class _Tr = char_traits<_E> >
+        class basic_ostream;
+template<class _E, class _Tr = char_traits<_E> >
+        class basic_iostream;
+template<class _E, class _Tr = char_traits<_E>,
+        class _A = allocator<_E> >
+        class basic_stringbuf;
+template<class _E, class _Tr = char_traits<_E>,
+        class _A = allocator<_E> >
+        class basic_istringstream;
+template<class _E, class _Tr = char_traits<_E>,
+        class _A = allocator<_E> >
+        class basic_ostringstream;
+template<class _E, class _Tr = char_traits<_E>,
+        class _A = allocator<_E> >
+        class basic_stringstream;
+template<class _E, class _Tr = char_traits<_E> >
+        class basic_filebuf;
+template<class _E, class _Tr = char_traits<_E> >
+        class basic_ifstream;
+template<class _E, class _Tr = char_traits<_E> >
+        class basic_ofstream;
+template<class _E, class _Tr = char_traits<_E> >
+        class basic_fstream;
+
+                
+typedef basic_ios<char, char_traits<char> > ios;
+typedef basic_streambuf<char, char_traits<char> > streambuf;
+typedef basic_istream<char, char_traits<char> > istream;
+typedef basic_ostream<char, char_traits<char> > ostream;
+typedef basic_iostream<char, char_traits<char> > iostream;
+typedef basic_stringbuf<char, char_traits<char>,
+        allocator<char> > stringbuf;
+typedef basic_istringstream<char, char_traits<char>,
+        allocator<char> > istringstream;
+typedef basic_ostringstream<char, char_traits<char>,
+        allocator<char> > ostringstream;
+typedef basic_stringstream<char, char_traits<char>,
+        allocator<char> > stringstream;
+typedef basic_filebuf<char, char_traits<char> > filebuf;
+typedef basic_ifstream<char, char_traits<char> > ifstream;
+typedef basic_ofstream<char, char_traits<char> > ofstream;
+typedef basic_fstream<char, char_traits<char> > fstream;
+                
+typedef basic_ios<wchar_t, char_traits<wchar_t> > wios;
+typedef basic_streambuf<wchar_t, char_traits<wchar_t> >
+        wstreambuf;
+typedef basic_istream<wchar_t, char_traits<wchar_t> > wistream;
+typedef basic_ostream<wchar_t, char_traits<wchar_t> > wostream;
+typedef basic_iostream<wchar_t, char_traits<wchar_t> > wiostream;
+typedef basic_stringbuf<wchar_t, char_traits<wchar_t>,
+        allocator<wchar_t> > wstringbuf;
+typedef basic_istringstream<wchar_t, char_traits<wchar_t>,
+        allocator<wchar_t> > wistringstream;
+typedef basic_ostringstream<wchar_t, char_traits<wchar_t>,
+        allocator<wchar_t> > wostringstream;
+typedef basic_stringstream<wchar_t, char_traits<wchar_t>,
+        allocator<wchar_t> > wstringstream;
+typedef basic_filebuf<wchar_t, char_traits<wchar_t> > wfilebuf;
+typedef basic_ifstream<wchar_t, char_traits<wchar_t> > wifstream;
+typedef basic_ofstream<wchar_t, char_traits<wchar_t> > wofstream;
+typedef basic_fstream<wchar_t, char_traits<wchar_t> > wfstream;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+               
+template<class _T1, class _T2> struct pair {
+       typedef _T1 first_type;
+       typedef _T2 second_type;
+       pair()
+               : first(_T1()), second(_T2()) {}
+       pair(const _T1& _V1, const _T2& _V2)
+               : first(_V1), second(_V2) {}
+       template<class U, class V> pair(const pair<U, V> &p)
+               : first(p.first), second(p.second) {}
+       _T1 first;
+       _T2 second;
+       };
+template<class _T1, class _T2> inline
+       bool __cdecl operator==(const pair<_T1, _T2>& _X,
+               const pair<_T1, _T2>& _Y)
+       {return (_X.first == _Y.first && _X.second == _Y.second); }
+template<class _T1, class _T2> inline
+       bool __cdecl operator!=(const pair<_T1, _T2>& _X,
+               const pair<_T1, _T2>& _Y)
+       {return (!(_X == _Y)); }
+template<class _T1, class _T2> inline
+       bool __cdecl operator<(const pair<_T1, _T2>& _X,
+               const pair<_T1, _T2>& _Y)
+       {return (_X.first < _Y.first ||
+               !(_Y.first < _X.first) && _X.second < _Y.second); }
+template<class _T1, class _T2> inline
+       bool __cdecl operator>(const pair<_T1, _T2>& _X,
+               const pair<_T1, _T2>& _Y)
+       {return (_Y < _X); }
+template<class _T1, class _T2> inline
+       bool __cdecl operator<=(const pair<_T1, _T2>& _X,
+               const pair<_T1, _T2>& _Y)
+       {return (!(_Y < _X)); }
+template<class _T1, class _T2> inline
+       bool __cdecl operator>=(const pair<_T1, _T2>& _X,
+               const pair<_T1, _T2>& _Y)
+       {return (!(_X < _Y)); }
+template<class _T1, class _T2> inline
+       pair<_T1, _T2> __cdecl make_pair(const _T1& _X, const _T2& _Y)
+       {return (pair<_T1, _T2>(_X, _Y)); }
+               
+struct input_iterator_tag {};
+struct output_iterator_tag {};
+struct forward_iterator_tag
+       : public input_iterator_tag {};
+struct bidirectional_iterator_tag
+       : public forward_iterator_tag {};
+struct random_access_iterator_tag
+       : public bidirectional_iterator_tag  {};
+               
+template<class _C, class _Ty, class _D = ptrdiff_t>
+       struct iterator {
+       typedef _C iterator_category;
+       typedef _Ty value_type;
+       typedef _D distance_type;
+       };
+template<class _Ty, class _D>
+       struct _Bidit : public iterator<bidirectional_iterator_tag,
+               _Ty, _D> {};
+template<class _Ty, class _D>
+       struct _Ranit : public iterator<random_access_iterator_tag,
+               _Ty, _D> {};
+               
+template<class _It>
+       struct iterator_traits {
+       typedef _It::iterator_category iterator_category;
+       typedef _It::value_type value_type;
+       typedef _It::distance_type distance_type;
+       };
+               
+template<class _C, class _Ty, class _D> inline
+       _C __cdecl _Iter_cat(const iterator<_C, _Ty, _D>&)
+       {_C _IterCatTag;
+        _C* _pIterCatTag;
+       _pIterCatTag = &_IterCatTag;    
+       return (_IterCatTag); }
+template<class _Ty> inline
+       random_access_iterator_tag __cdecl _Iter_cat(const _Ty *)
+       {random_access_iterator_tag _RandIterTag;
+        random_access_iterator_tag* _pRandIterTag;
+       _pRandIterTag = &_RandIterTag;  
+       return (_RandIterTag); }
+               
+template<class _II> inline
+       ptrdiff_t __cdecl distance(_II _F, _II _L)
+       {ptrdiff_t _N = 0;
+       _Distance(_F, _L, _N, _Iter_cat(_F));
+       return (_N); }
+template<class _II, class _D> inline
+       void __cdecl _Distance(_II _F, _II _L, _D& _N)
+       {_Distance(_F, _L, _N, _Iter_cat(_F)); }
+template<class _II, class _D> inline
+       void __cdecl _Distance(_II _F, _II _L, _D& _N, input_iterator_tag)
+       {for (; _F != _L; ++_F)
+               ++_N; }
+template<class _II, class _D> inline
+       void __cdecl _Distance(_II _F, _II _L, _D& _N, forward_iterator_tag)
+       {for (; _F != _L; ++_F)
+               ++_N; }
+template<class _II, class _D> inline
+       void __cdecl _Distance(_II _F, _II _L, _D& _N,
+               bidirectional_iterator_tag)
+       {for (; _F != _L; ++_F)
+               ++_N; }
+template<class _RI, class _D> inline
+       void __cdecl _Distance(_RI _F, _RI _L, _D& _N,
+               random_access_iterator_tag)
+       {_N += _L - _F; }
+               
+template<class _RI,
+       class _Ty,
+       class _Rt = _Ty&,
+       class _Pt = _Ty *,
+       class _D = ptrdiff_t>
+       class reverse_iterator : public _Ranit<_Ty, _D> {
+public:
+       typedef reverse_iterator<_RI, _Ty, _Rt, _Pt, _D> _Myt;
+       typedef _RI iter_type;
+       typedef _Rt reference_type;
+       typedef _Pt pointer_type;
+       reverse_iterator()
+               {}
+       explicit reverse_iterator(_RI _X)
+               : current(_X) {}
+       _RI base() const
+               {return (current); }
+       _Rt operator*() const
+               {return (*(current - 1)); }
+       _Pt operator->() const
+               {return (&**this); }
+       _Myt& operator++()
+               {--current;
+               return (*this); }
+       _Myt operator++(int)
+               {_Myt _Tmp = *this;
+               --current;
+               return (_Tmp); }
+       _Myt& operator--()
+               {++current;
+               return (*this); }
+       _Myt operator--(int)
+               {_Myt _Tmp = *this;
+               ++current;
+               return (_Tmp); }
+       _Myt& operator+=(_D _N)
+               {current -= _N;
+               return (*this); }
+       _Myt operator+(_D _N) const
+               {return (_Myt(current - _N)); }
+       _Myt& operator-=(_D _N)
+               {current += _N;
+               return (*this); }
+       _Myt operator-(_D _N) const
+               {return (_Myt(current + _N)); }
+       _Rt operator[](_D _N) const
+               {return (*(*this + _N)); }
+protected:
+       _RI current;
+       };
+template<class _RI, class _Ty, class _Rt, class _Pt,
+       class _D> inline
+       bool __cdecl operator==(
+               const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _X,
+               const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _Y)
+       {return (_X.base() == _Y.base()); }
+template<class _RI, class _Ty, class _Rt, class _Pt,
+       class _D> inline
+       bool __cdecl operator!=(
+               const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _X,
+               const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _Y)
+       {return (!(_X == _Y)); }
+template<class _RI, class _Ty, class _Rt, class _Pt,
+       class _D> inline
+       bool __cdecl operator<(
+               const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _X,
+               const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _Y)
+       {return (_Y.base() < _X.base()); }
+template<class _RI, class _Ty, class _Rt, class _Pt,
+       class _D> inline
+       bool __cdecl operator>(
+               const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _X,
+               const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _Y)
+       {return (_Y < _X); }
+template<class _RI, class _Ty, class _Rt, class _Pt,
+       class _D> inline
+       bool __cdecl operator<=(
+               const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _X,
+               const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _Y)
+       {return (!(_Y < _X)); }
+template<class _RI, class _Ty, class _Rt, class _Pt,
+       class _D> inline
+       bool __cdecl operator>=(
+               const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _X,
+               const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _Y)
+       {return (!(_X < _Y)); }
+template<class _RI, class _Ty, class _Rt, class _Pt,
+       class _D> inline
+       _D __cdecl operator-(
+               const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _X,
+               const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _Y)
+       {return (_Y.base() - _X.base()); }
+template<class _RI, class _Ty, class _Rt, class _Pt,
+       class _D> inline
+       reverse_iterator<_RI, _Ty, _Rt, _Pt, _D> __cdecl operator+(_D _N,
+               const reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>& _Y)
+       {return (reverse_iterator<_RI, _Ty, _Rt, _Pt, _D>(
+               _Y.base() - _N)); }
+               
+template<class _E, class _Tr = char_traits<_E> >
+       class istreambuf_iterator
+               : public iterator<input_iterator_tag, _E, _Tr::off_type> {
+public:
+       typedef istreambuf_iterator<_E, _Tr> _Myt;
+       typedef _E char_type;
+       typedef _Tr traits_type;
+       typedef _Tr::int_type int_type;
+       typedef basic_streambuf<_E, _Tr> streambuf_type;
+       typedef basic_istream<_E, _Tr> istream_type;
+       istreambuf_iterator(streambuf_type *_Sb = 0) throw ()
+               : _Sbuf(_Sb), _Got(_Sb == 0) {}
+       istreambuf_iterator(istream_type& _I) throw ()
+               : _Sbuf(_I.rdbuf()), _Got(_I.rdbuf() == 0) {}
+       const _E& operator*() const
+               {if (!_Got)
+                       ((_Myt *)this)->_Peek();
+               return (_Val); }
+       const _E *operator->() const
+               {return (&**this); }
+       _Myt& operator++()
+               {_Inc();
+               return (*this); }
+       _Myt operator++(int)
+               {if (!_Got)
+                       _Peek();
+               _Myt _Tmp = *this;
+               _Inc();
+               return (_Tmp); }
+       bool equal(const _Myt& _X) const
+               {if (!_Got)
+                       ((_Myt *)this)->_Peek();
+               if (!_X._Got)
+                       ((_Myt *)&_X)->_Peek();
+               return (_Sbuf == 0 && _X._Sbuf == 0
+                       || _Sbuf != 0 && _X._Sbuf != 0); }
+private:
+       void _Inc()
+               {if (_Sbuf == 0
+                       || _Tr::eq_int_type(_Tr::eof(), _Sbuf->sbumpc()))
+                       _Sbuf = 0, _Got = true;
+               else
+                       _Got = false; }
+       _E _Peek()
+               {int_type _C;
+               if (_Sbuf == 0
+                       || _Tr::eq_int_type(_Tr::eof(), _C = _Sbuf->sgetc()))
+                       _Sbuf = 0;
+               else
+                       _Val = _Tr::to_char_type(_C);
+               _Got = true;
+               return (_Val); }
+       streambuf_type *_Sbuf;
+       bool _Got;
+       _E _Val;
+       };
+template<class _E, class _Tr> inline
+       bool __cdecl operator==(const istreambuf_iterator<_E, _Tr>& _X,
+               const istreambuf_iterator<_E, _Tr>& _Y)
+       {return (_X.equal(_Y)); }
+template<class _E, class _Tr> inline
+       bool __cdecl operator!=(const istreambuf_iterator<_E, _Tr>& _X,
+               const istreambuf_iterator<_E, _Tr>& _Y)
+       {return (!(_X == _Y)); }
+               
+template<class _E, class _Tr = char_traits<_E> >
+       class ostreambuf_iterator
+               : public iterator<output_iterator_tag, void, void> {
+       typedef ostreambuf_iterator<_E, _Tr> _Myt;
+public:
+       typedef _E char_type;
+       typedef _Tr traits_type;
+       typedef basic_streambuf<_E, _Tr> streambuf_type;
+       typedef basic_ostream<_E, _Tr> ostream_type;
+       ostreambuf_iterator(streambuf_type *_Sb) throw ()
+               : _Failed(false), _Sbuf(_Sb) {}
+       ostreambuf_iterator(ostream_type& _O) throw ()
+               : _Failed(false), _Sbuf(_O.rdbuf()) {}
+       _Myt& operator=(_E _X)
+               {if (_Sbuf == 0
+                       || _Tr::eq_int_type(_Tr::eof(), _Sbuf->sputc(_X)))
+                       _Failed = true;
+               return (*this); }
+       _Myt& operator*()
+               {return (*this); }
+       _Myt& operator++()
+               {return (*this); }
+       _Myt& operator++(int)
+               {return (*this); }
+       bool failed() const throw ()
+               {return (_Failed); }
+private:
+       bool _Failed;
+       streambuf_type *_Sbuf;
+       };
+               
+       namespace rel_ops {
+template<class _Ty> inline
+       bool __cdecl operator!=(const _Ty& _X, const _Ty& _Y)
+       {return (!(_X == _Y)); }
+template<class _Ty> inline
+       bool __cdecl operator>(const _Ty& _X, const _Ty& _Y)
+       {return (_Y < _X); }
+template<class _Ty> inline
+       bool __cdecl operator<=(const _Ty& _X, const _Ty& _Y)
+       {return (!(_Y < _X)); }
+template<class _Ty> inline
+       bool __cdecl operator>=(const _Ty& _X, const _Ty& _Y)
+       {return (!(_X < _Y)); }
+       };
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+               
+template<class _BI,
+       class _Ty,
+       class _Rt = _Ty&,
+       class _Pt = _Ty *,
+       class _D = ptrdiff_t>
+       class reverse_bidirectional_iterator
+               : public _Bidit<_Ty, _D> {
+public:
+       typedef reverse_bidirectional_iterator<_BI,
+               _Ty, _Rt, _Pt, _D> _Myt;
+       typedef _BI iter_type;
+       typedef _Rt reference_type;
+       typedef _Pt pointer_type;
+       reverse_bidirectional_iterator()
+               {}
+       explicit reverse_bidirectional_iterator(_BI _X)
+               : current(_X) {}
+       _BI base() const
+               {return (current); }
+       _Rt operator*() const
+               {_BI _Tmp = current;
+               return (*--_Tmp); }
+       _Pt operator->() const
+               {return (&**this); }
+       _Myt& operator++()
+               {--current;
+               return (*this); }
+       _Myt operator++(int)
+               {_Myt _Tmp = *this;
+               --current;
+               return (_Tmp); }
+       _Myt& operator--()
+               {++current;
+               return (*this); }
+       _Myt operator--(int)
+               {_Myt _Tmp = *this;
+               ++current;
+               return (_Tmp); }
+protected:
+       _BI current;
+       };
+template<class _BI, class _Ty, class _Rt, class _Pt,
+       class _D> inline
+       bool operator==(const reverse_bidirectional_iterator<_BI,
+                       _Ty, _Rt, _Pt, _D>& _X,
+               const reverse_bidirectional_iterator<_BI,
+                       _Ty, _Rt, _Pt, _D>& _Y)
+       {return (_X.base() == _Y.base()); }
+template<class _BI, class _Ty, class _Rt, class _Pt,
+       class _D> inline
+       bool operator!=(const reverse_bidirectional_iterator<_BI,
+                       _Ty, _Rt, _Pt, _D>& _X,
+               const reverse_bidirectional_iterator<_BI,
+                       _Ty, _Rt, _Pt, _D>& _Y)
+       {return (!(_X == _Y)); }
+               
+template<class _C>
+       class back_insert_iterator
+               : public iterator<output_iterator_tag, void, void> {
+public:
+       typedef _C container_type;
+       typedef _C::value_type value_type;
+       explicit back_insert_iterator(_C& _X)
+               : container(_X) {}
+       back_insert_iterator<_C>& operator=(
+               const value_type& _V)
+               {container.push_back(_V);
+               return (*this); }
+       back_insert_iterator<_C>& operator*()
+               {return (*this); }
+       back_insert_iterator<_C>& operator++()
+               {return (*this); }
+       back_insert_iterator<_C> operator++(int)
+               {return (*this); }
+protected:
+       _C& container;
+       };
+template<class _C> inline
+       back_insert_iterator<_C> back_inserter(_C& _X)
+       {return (back_insert_iterator<_C>(_X)); }
+               
+template<class _C>
+       class front_insert_iterator
+               : public iterator<output_iterator_tag, void, void> {
+public:
+       typedef _C container_type;
+       typedef _C::value_type value_type;
+       explicit front_insert_iterator(_C& _X)
+               : container(_X) {}
+       front_insert_iterator<_C>& operator=(
+               const value_type& _V)
+               {container.push_front(_V);
+               return (*this); }
+       front_insert_iterator<_C>& operator*()
+               {return (*this); }
+       front_insert_iterator<_C>& operator++()
+               {return (*this); }
+       front_insert_iterator<_C> operator++(int)
+               {return (*this); }
+protected:
+       _C& container;
+       };
+template<class _C> inline
+       front_insert_iterator<_C> front_inserter(_C& _X)
+       {return (front_insert_iterator<_C>(_X)); }
+               
+template<class _C>
+       class insert_iterator
+               : public iterator<output_iterator_tag, void, void> {
+public:
+       typedef _C container_type;
+       typedef _C::value_type value_type;
+       insert_iterator(_C& _X, _C::iterator _I)
+               : container(_X), iter(_I) {}
+       insert_iterator<_C>& operator=(
+               const value_type& _V)
+               {iter = container.insert(iter, _V);
+               ++iter;
+               return (*this); }
+       insert_iterator<_C>& operator*()
+               {return (*this); }
+       insert_iterator<_C>& operator++()
+               {return (*this); }
+       insert_iterator<_C>& operator++(int)
+               {return (*this); }
+protected:
+       _C& container;
+       _C::iterator iter;
+       };
+template<class _C, class _XI> inline
+       insert_iterator<_C> inserter(_C& _X, _XI _I)
+       {return (insert_iterator<_C>(_X, _C::iterator(_I))); }
+               
+template<class _U, class _E = char,
+       class _Tr = char_traits<_E> >
+       class istream_iterator
+               : public iterator<input_iterator_tag, _U, ptrdiff_t> {
+public:
+       typedef _E char_type;
+       typedef _Tr traits_type;
+       typedef basic_istream<_E, _Tr> istream_type;
+       istream_iterator()
+               : _Istr(0) {}
+       istream_iterator(istream_type& _I)
+               : _Istr(&_I) {_Getval(); }
+       const _U& operator*() const
+               {return (_Val); }
+       const _U *operator->() const
+               {return (&**this); }
+       istream_iterator<_U, _E, _Tr>& operator++()
+               {_Getval();
+               return (*this); }
+       istream_iterator<_U, _E, _Tr> operator++(int)
+               {istream_iterator<_U, _E, _Tr> _Tmp = *this;
+               _Getval();
+               return (_Tmp); }
+       bool _Equal(const istream_iterator<_U, _E, _Tr>& _X) const
+               {return (_Istr == _X._Istr); }
+protected:
+       void _Getval()
+               {if (_Istr != 0 && !(*_Istr >> _Val))
+                       _Istr = 0; }
+       istream_type *_Istr;
+       _U _Val;
+       };
+template<class _U, class _E, class _Tr> inline
+       bool operator==(const istream_iterator<_U, _E, _Tr>& _X,
+               const istream_iterator<_U, _E, _Tr>& _Y)
+       {return (_X._Equal(_Y)); }
+template<class _U, class _E, class _Tr> inline
+       bool operator!=(const istream_iterator<_U, _E, _Tr>& _X,
+               const istream_iterator<_U, _E, _Tr>& _Y)
+       {return (!(_X == _Y)); }
+               
+template<class _U, class _E = char,
+       class _Tr = char_traits<_E> >
+       class ostream_iterator
+               : public iterator<output_iterator_tag, void, void> {
+public:
+       typedef _U value_type;
+       typedef _E char_type;
+       typedef _Tr traits_type;
+       typedef basic_ostream<_E, _Tr> ostream_type;
+       ostream_iterator(ostream_type& _O,
+               const _E *_D = 0)
+               : _Ostr(&_O), _Delim(_D) {}
+       ostream_iterator<_U, _E, _Tr>& operator=(const _U& _X)
+               {*_Ostr << _X;
+               if (_Delim != 0)
+                       *_Ostr << _Delim;
+               return (*this); }
+       ostream_iterator<_U, _E, _Tr>& operator*()
+               {return (*this); }
+       ostream_iterator<_U, _E, _Tr>& operator++()
+               {return (*this); }
+       ostream_iterator<_U, _E, _Tr> operator++(int)
+               {return (*this); }
+protected:
+       const _E *_Delim;
+       ostream_type *_Ostr;
+       };
+               
+template<class _C, class _Ty, class _D> inline
+       _Ty *_Val_type(const iterator<_C, _Ty, _D>&)
+       {return ((_Ty *)0); }
+template<class _Ty> inline
+       _Ty *_Val_type(const _Ty *)
+       {return ((_Ty *)0); }
+               
+template<class _II, class _D> inline
+       void advance(_II& _I, _D _N)
+       {_Advance(_I, _N, _Iter_cat(_I)); }
+template<class _II, class _D> inline
+       void _Advance(_II& _I, _D _N, input_iterator_tag)
+       {for (; 0 < _N; --_N)
+               ++_I; }
+template<class _FI, class _D> inline
+       void _Advance(_FI& _I, _D _N, forward_iterator_tag)
+       {for (; 0 < _N; --_N)
+               ++_I; }
+template<class _BI, class _D> inline
+       void _Advance(_BI& _I, _D _N, bidirectional_iterator_tag)
+       {for (; 0 < _N; --_N)
+               ++_I;
+       for (; _N < 0; ++_N)
+               --_I; }
+template<class _RI, class _D> inline
+       void _Advance(_RI& _I, _D _N, random_access_iterator_tag)
+       {_I += _N; }
+               
+template<class _C, class _Ty, class _D> inline
+       _D *_Dist_type(const iterator<_C, _Ty, _D>&)
+       {return ((_D *)0); }
+template<class _Ty> inline
+       ptrdiff_t *_Dist_type(const _Ty *)
+       {return ((ptrdiff_t *)0); }
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef void (__cdecl *terminate_function)();
+typedef void (__cdecl *unexpected_function)();
+typedef void (__cdecl *terminate_handler)();
+typedef void (__cdecl *unexpected_handler)();
+
+
+struct _EXCEPTION_POINTERS;
+typedef void (__cdecl *_se_translator_function)(unsigned int, struct _EXCEPTION_POINTERS*);
+
+
+
+ __declspec(noreturn) void __cdecl terminate(void);
+ __declspec(noreturn) void __cdecl unexpected(void);
+
+
+
+
+
+ terminate_function __cdecl set_terminate(terminate_function);
+ unexpected_function __cdecl set_unexpected(unexpected_function);
+
+ _se_translator_function __cdecl _set_se_translator(_se_translator_function);
+
+
+
+#pragma pack(pop)
+
+
+
+
+
+
+#pragma pack(push,8)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef const char *__exString;
+
+class  exception
+{
+public:
+    exception();
+    exception(const __exString&);
+    exception(const exception&);
+    exception& operator= (const exception&);
+    virtual ~exception();
+    virtual __exString what() const;
+private:
+    __exString _m_what;
+    int _m_doFree;
+};
+namespace std {
+using ::exception;
+
+               
+class  bad_exception : public exception {
+public:
+       bad_exception(const char *_S = "bad exception") throw ()
+               : exception(_S) {}
+       virtual ~bad_exception() throw ()
+               {}
+protected:
+       virtual void _Doraise() const
+               {throw (*this); }
+       };
+
+ bool __cdecl uncaught_exception();
+
+};
+
+
+
+
+
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+               
+class  bad_alloc : public exception {
+public:
+       bad_alloc(const char *_S = "bad allocation") throw ()
+               : exception(_S) {}
+       virtual ~bad_alloc() throw ()
+               {}
+protected:
+       virtual void _Doraise() const
+               {throw (*this); }
+       };
+               
+struct nothrow_t {};
+extern  const nothrow_t nothrow;
+};
+
+typedef void (__cdecl *new_handler)();
+
+               
+void __cdecl operator delete(void *) throw ();
+void *__cdecl operator new(size_t) throw (std::bad_alloc);
+void *__cdecl operator new(size_t, const std::nothrow_t&)
+       throw ();
+
+
+
+inline void *__cdecl operator new(size_t, void *_P)
+       {return (_P); }
+
+inline void __cdecl operator delete(void *, void *)
+       {return; }
+
+
+
+
+
+
+       new_handler __cdecl set_new_handler(new_handler) throw ();
+
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+
+
+namespace std {
+               
+template<class _Ty> inline
+       _Ty  *_Allocate(ptrdiff_t _N, _Ty  *)
+       {if (_N < 0)
+               _N = 0;
+       return ((_Ty  *)operator new(
+               (size_t)_N * sizeof (_Ty))); }
+               
+template<class _T1, class _T2> inline
+       void _Construct(_T1  *_P, const _T2& _V)
+       {new ((void  *)_P) _T1(_V); }
+               
+template<class _Ty> inline
+       void _Destroy(_Ty  *_P)
+       {(_P)->~_Ty(); }
+inline void _Destroy(char  *_P)
+       {}
+inline void _Destroy(wchar_t  *_P)
+       {}
+               
+template<class _Ty>
+       class allocator {
+public:
+       typedef size_t size_type;
+       typedef ptrdiff_t difference_type;
+       typedef _Ty  *pointer;
+       typedef const _Ty  *const_pointer;
+       typedef _Ty & reference;
+       typedef const _Ty & const_reference;
+       typedef _Ty value_type;
+       pointer address(reference _X) const
+               {return (&_X); }
+       const_pointer address(const_reference _X) const
+               {return (&_X); }
+       pointer allocate(size_type _N, const void *)
+               {return (_Allocate((difference_type)_N, (pointer)0)); }
+       char  *_Charalloc(size_type _N)
+               {return (_Allocate((difference_type)_N,
+                       (char  *)0)); }
+       void deallocate(void  *_P, size_type)
+               {operator delete(_P); }
+       void construct(pointer _P, const _Ty& _V)
+               {_Construct(_P, _V); }
+       void destroy(pointer _P)
+               {_Destroy(_P); }
+       size_t max_size() const
+               {size_t _N = (size_t)(-1) / sizeof (_Ty);
+               return (0 < _N ? _N : 1); }
+       };
+template<class _Ty, class _U> inline
+       bool operator==(const allocator<_Ty>&, const allocator<_U>&)
+       {return (true); }
+template<class _Ty, class _U> inline
+       bool operator!=(const allocator<_Ty>&, const allocator<_U>&)
+       {return (false); }
+               
+template<> class  allocator<void> {
+public:
+       typedef void _Ty;
+       typedef _Ty  *pointer;
+       typedef const _Ty  *const_pointer;
+       typedef _Ty value_type;
+       };
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+               
+template<class _Ty>
+       inline void *operator new(size_t _N, std::allocator<_Ty>& _Al)
+       {return (_Al._Charalloc(_N)); }
+namespace std {
+               
+template<class _Ty> inline
+       pair<_Ty  *, ptrdiff_t>
+               get_temporary_buffer(ptrdiff_t _N, _Ty  *)
+       {_Ty  *_P;
+       for (_P = 0; 0 < _N; _N /= 2)
+               if ((_P = (_Ty  *)operator new(
+                       (size_t)_N * sizeof (_Ty), nothrow)) != 0)
+                       break;
+       return (pair<_Ty  *, ptrdiff_t>(_P, _N)); }
+               
+template<class _Ty> inline
+       void return_temporary_buffer(_Ty *_P)
+       {operator delete(_P); }
+               
+template<class _II, class _FI> inline
+       _FI uninitialized_copy(_II _F, _II _L, _FI _X)
+       {for (; _F != _L; ++_X, ++_F)
+               _Construct(&*_X, *_F);
+       return (_X); }
+               
+template<class _FI, class _Ty> inline
+       void uninitialized_fill(_FI _F, _FI _L, const _Ty& _X)
+       {for (; _F != _L; ++_F)
+               _Construct(&*_F, _X); }
+               
+template<class _FI, class _S, class _Ty> inline
+       void uninitialized_fill_n(_FI _F, _S _N, const _Ty& _X)
+       {for (; 0 < _N; --_N, ++_F)
+               _Construct(&*_F, _X); }
+               
+template<class _OI, class _Ty>
+       class raw_storage_iterator
+               : public iterator<output_iterator_tag, void, void> {
+public:
+       typedef _OI iterator_type;
+       typedef _Ty element_type;
+       explicit raw_storage_iterator(_OI _X)
+               : _Next(_X) {}
+       raw_storage_iterator<_OI, _Ty>& operator*()
+               {return (*this); }
+       raw_storage_iterator<_OI, _Ty>& operator=(const _Ty& _X)
+               {_Construct(&*_Next, _X);
+               return (*this); }
+       raw_storage_iterator<_OI, _Ty>& operator++()
+               {++_Next;
+               return (*this); }
+       raw_storage_iterator<_OI, _Ty> operator++(int)
+               {raw_storage_iterator<_OI, _Ty> _Ans = *this;
+               ++_Next;
+               return (_Ans); }
+private:
+       _OI _Next;
+       };
+               
+template<class _Ty>
+       class _Temp_iterator
+               : public iterator<output_iterator_tag, void, void> {
+public:
+       typedef _Ty  *_Pty;
+       _Temp_iterator(ptrdiff_t _N = 0)
+               {pair<_Pty, ptrdiff_t> _Pair =
+                       get_temporary_buffer(_N, (_Pty)0);
+               _Buf._Begin = _Pair.first;
+               _Buf._Cur = _Pair.first;
+               _Buf._Hiwater = _Pair.first;
+               _Buf._Len = _Pair.second;
+               _Pb = &_Buf; }
+       _Temp_iterator(const _Temp_iterator<_Ty>& _X)
+               {_Buf._Begin = 0;
+               _Buf._Cur = 0;
+               _Buf._Hiwater = 0;
+               _Buf._Len = 0;
+               *this = _X; }
+       ~_Temp_iterator()
+               {if (_Buf._Begin != 0)
+                       {for (_Pty _F = _Buf._Begin;
+                               _F != _Buf._Hiwater; ++_F)
+                               _Destroy(&*_F);
+                       return_temporary_buffer(_Buf._Begin); }}
+       _Temp_iterator<_Ty>& operator=(const _Temp_iterator<_Ty>& _X)
+               {_Pb = _X._Pb;
+               return (*this); }
+       _Temp_iterator<_Ty>& operator=(const _Ty& _V)
+               {if (_Pb->_Cur < _Pb->_Hiwater)
+                       *_Pb->_Cur++ = _V;
+               else
+                       {_Construct(&*_Pb->_Cur, _V);
+                       _Pb->_Hiwater = ++_Pb->_Cur; }
+               return (*this); }
+       _Temp_iterator<_Ty>& operator*()
+               {return (*this); }
+       _Temp_iterator<_Ty>& operator++()
+               {return (*this); }
+       _Temp_iterator<_Ty>& operator++(int)
+               {return (*this); }
+       _Temp_iterator<_Ty>& _Init()
+               {_Pb->_Cur = _Pb->_Begin;
+               return (*this); }
+       _Pty _First() const
+               {return (_Pb->_Begin); }
+       _Pty _Last() const
+               {return (_Pb->_Cur); }
+       ptrdiff_t _Maxlen() const
+               {return (_Pb->_Len); }
+private:
+       struct _Bufpar {
+               _Pty _Begin;
+               _Pty _Cur;
+               _Pty _Hiwater;
+               ptrdiff_t _Len;
+               } _Buf, *_Pb;
+       };
+               
+template<class _Ty>
+       class auto_ptr {
+public:
+       typedef _Ty element_type;
+       explicit auto_ptr(_Ty *_P = 0) throw ()
+               : _Owns(_P != 0), _Ptr(_P) {}
+       auto_ptr(const auto_ptr<_Ty>& _Y) throw ()
+               : _Owns(_Y._Owns), _Ptr(_Y.release()) {}
+       auto_ptr<_Ty>& operator=(const auto_ptr<_Ty>& _Y) throw ()
+               {if (this != &_Y)
+                       {if (_Ptr != _Y.get())
+                               {if (_Owns)
+                                       delete _Ptr;
+                               _Owns = _Y._Owns; }
+                       else if (_Y._Owns)
+                               _Owns = true;
+                       _Ptr = _Y.release(); }
+               return (*this); }
+       ~auto_ptr()
+               {if (_Owns)
+                       delete _Ptr; }
+       _Ty& operator*() const throw ()
+               {return (*get()); }
+       _Ty *operator->() const throw ()
+               {return (get()); }
+       _Ty *get() const throw ()
+               {return (_Ptr); }
+       _Ty *release() const throw ()
+               {((auto_ptr<_Ty> *)this)->_Owns = false;
+               return (_Ptr); }
+private:
+       bool _Owns;
+       _Ty *_Ptr;
+       };
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+               
+template<class _II, class _OI> inline
+       _OI copy(_II _F, _II _L, _OI _X)
+       {for (; _F != _L; ++_X, ++_F)
+               *_X = *_F;
+       return (_X); }
+               
+template<class _BI1, class _BI2> inline
+       _BI2 copy_backward(_BI1 _F, _BI1 _L, _BI2 _X)
+       {while (_F != _L)
+               *--_X = *--_L;
+       return (_X); }
+               
+template<class _II1, class _II2> inline
+       bool equal(_II1 _F, _II1 _L, _II2 _X)
+       {return (mismatch(_F, _L, _X).first == _L); }
+               
+template<class _II1, class _II2, class _Pr> inline
+       bool equal(_II1 _F, _II1 _L, _II2 _X, _Pr _P)
+       {return (mismatch(_F, _L, _X, _P).first == _L); }
+               
+template<class _FI, class _Ty> inline
+       void fill(_FI _F, _FI _L, const _Ty& _X)
+       {for (; _F != _L; ++_F)
+               *_F = _X; }
+               
+template<class _OI, class _Sz, class _Ty> inline
+       void fill_n(_OI _F, _Sz _N, const _Ty& _X)
+       {for (; 0 < _N; --_N, ++_F)
+               *_F = _X; }
+               
+template<class _II1, class _II2> inline
+       bool lexicographical_compare(_II1 _F1, _II1 _L1,
+               _II2 _F2, _II2 _L2)
+       {for (; _F1 != _L1 && _F2 != _L2; ++_F1, ++_F2)
+               if (*_F1 < *_F2)
+                       return (true);
+               else if (*_F2 < *_F1)
+                       return (false);
+       return (_F1 == _L1 && _F2 != _L2); }
+               
+template<class _II1, class _II2, class _Pr> inline
+       bool lexicographical_compare(_II1 _F1, _II1 _L1,
+               _II2 _F2, _II2 _L2, _Pr _P)
+       {for (; _F1 != _L1 && _F2 != _L2; ++_F1, ++_F2)
+               if (_P(*_F1, *_F2))
+                       return (true);
+               else if (_P(*_F2, *_F1))
+                       return (false);
+       return (_F1 == _L1 && _F2 != _L2); }
+               
+
+
+
+
+template<class _Ty> inline
+       const _Ty& _cpp_max(const _Ty& _X, const _Ty& _Y)
+       {return (_X < _Y ? _Y : _X); }
+               
+template<class _Ty, class _Pr> inline
+       const _Ty& _cpp_max(const _Ty& _X, const _Ty& _Y, _Pr _P)
+       {return (_P(_X, _Y) ? _Y : _X); }
+               
+template<class _Ty> inline
+       const _Ty& _cpp_min(const _Ty& _X, const _Ty& _Y)
+       {return (_Y < _X ? _Y : _X); }
+               
+template<class _Ty, class _Pr> inline
+       const _Ty& _cpp_min(const _Ty& _X, const _Ty& _Y, _Pr _P)
+       {return (_P(_Y, _X) ? _Y : _X); }
+               
+template<class _II1, class _II2> inline
+       pair<_II1, _II2> mismatch(_II1 _F, _II1 _L, _II2 _X)
+       {for (; _F != _L && *_F == *_X; ++_F, ++_X)
+               ;
+       return (pair<_II1, _II2>(_F, _X)); }
+               
+template<class _II1, class _II2, class _Pr> inline
+       pair<_II1, _II2> mismatch(_II1 _F, _II1 _L, _II2 _X, _Pr _P)
+       {for (; _F != _L && _P(*_F, *_X); ++_F, ++_X)
+               ;
+       return (pair<_II1, _II2>(_F, _X)); }
+               
+template<class _Ty> inline
+       void swap(_Ty& _X, _Ty& _Y)
+       {_Ty _Tmp = _X;
+       _X = _Y, _Y = _Tmp; }
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+namespace std {
+ void __cdecl _Xlen();
+ void __cdecl _Xran();
+               
+template<class _E,
+       class _Tr = char_traits<_E>,
+       class _A = allocator<_E> >
+       class basic_string {
+public:
+       typedef basic_string<_E, _Tr, _A> _Myt;
+       typedef _A::size_type size_type;
+       typedef _A::difference_type difference_type;
+       typedef _A::pointer pointer;
+       typedef _A::const_pointer const_pointer;
+       typedef _A::reference reference;
+       typedef _A::const_reference const_reference;
+       typedef _A::value_type value_type;
+       typedef _A::pointer iterator;
+       typedef _A::const_pointer const_iterator;
+       typedef reverse_iterator<const_iterator, value_type,
+               const_reference, const_pointer, difference_type>
+                       const_reverse_iterator;
+       typedef reverse_iterator<iterator, value_type,
+               reference, pointer, difference_type>
+                       reverse_iterator;
+       explicit basic_string(const _A& _Al = _A())
+               : allocator(_Al) {_Tidy(); }
+       basic_string(const _Myt& _X)
+               : allocator(_X.allocator)
+               {_Tidy(), assign(_X, 0, npos); }
+       basic_string(const _Myt& _X, size_type _P, size_type _M,
+               const _A& _Al = _A())
+               : allocator(_Al) {_Tidy(), assign(_X, _P, _M); }
+       basic_string(const _E *_S, size_type _N,
+               const _A& _Al = _A())
+               : allocator(_Al) {_Tidy(), assign(_S, _N); }
+       basic_string(const _E *_S, const _A& _Al = _A())
+               : allocator(_Al) {_Tidy(), assign(_S); }
+       basic_string(size_type _N, _E _C, const _A& _Al = _A())
+               : allocator(_Al) {_Tidy(), assign(_N, _C); }
+       typedef const_iterator _It;
+       basic_string(_It _F, _It _L, const _A& _Al = _A())
+               : allocator(_Al) {_Tidy(); assign(_F, _L); }
+       ~basic_string()
+               {_Tidy(true); }
+       typedef _Tr traits_type;
+       typedef _A allocator_type;
+       enum _Mref {_FROZEN = 255};
+       static const size_type npos;
+       _Myt& operator=(const _Myt& _X)
+               {return (assign(_X)); }
+       _Myt& operator=(const _E *_S)
+               {return (assign(_S)); }
+       _Myt& operator=(_E _C)
+               {return (assign(1, _C)); }
+       _Myt& operator+=(const _Myt& _X)
+               {return (append(_X)); }
+       _Myt& operator+=(const _E *_S)
+               {return (append(_S)); }
+       _Myt& operator+=(_E _C)
+               {return (append(1, _C)); }
+       _Myt& append(const _Myt& _X)
+               {return (append(_X, 0, npos)); }
+       _Myt& append(const _Myt& _X, size_type _P, size_type _M)
+               {if (_X.size() < _P)
+                       _Xran();
+               size_type _N = _X.size() - _P;
+               if (_N < _M)
+                       _M = _N;
+               if (npos - _Len <= _M)
+                       _Xlen();
+               if (0 < _M && _Grow(_N = _Len + _M))
+                       {_Tr::copy(_Ptr + _Len, &_X.c_str()[_P], _M);
+                       _Eos(_N); }
+               return (*this); }
+       _Myt& append(const _E *_S, size_type _M)
+               {if (npos - _Len <= _M)
+                       _Xlen();
+               size_type _N;
+               if (0 < _M && _Grow(_N = _Len + _M))
+                       {_Tr::copy(_Ptr + _Len, _S, _M);
+                       _Eos(_N); }
+               return (*this); }
+       _Myt& append(const _E *_S)
+               {return (append(_S, _Tr::length(_S))); }
+       _Myt& append(size_type _M, _E _C)
+               {if (npos - _Len <= _M)
+                       _Xlen();
+               size_type _N;
+               if (0 < _M && _Grow(_N = _Len + _M))
+                       {_Tr::assign(_Ptr + _Len, _M, _C);
+                       _Eos(_N); }
+               return (*this); }
+       _Myt& append(_It _F, _It _L)
+               {return (replace(end(), end(), _F, _L)); }
+       _Myt& assign(const _Myt& _X)
+               {return (assign(_X, 0, npos)); }
+       _Myt& assign(const _Myt& _X, size_type _P, size_type _M)
+               {if (_X.size() < _P)
+                       _Xran();
+               size_type _N = _X.size() - _P;
+               if (_M < _N)
+                       _N = _M;
+               if (this == &_X)
+                       erase((size_type)(_P + _N)), erase(0, _P);
+               else if (0 < _N && _N == _X.size()
+                       && _Refcnt(_X.c_str()) < _FROZEN - 1
+                       && allocator == _X.allocator)
+                       {_Tidy(true);
+                       _Ptr = (_E *)_X.c_str();
+                       _Len = _X.size();
+                       _Res = _X.capacity();
+                       ++_Refcnt(_Ptr); }
+               else if (_Grow(_N, true))
+                       {_Tr::copy(_Ptr, &_X.c_str()[_P], _N);
+                       _Eos(_N); }
+               return (*this); }
+       _Myt& assign(const _E *_S, size_type _N)
+               {if (_Grow(_N, true))
+                       {_Tr::copy(_Ptr, _S, _N);
+                       _Eos(_N); }
+               return (*this); }
+       _Myt& assign(const _E *_S)
+               {return (assign(_S, _Tr::length(_S))); }
+       _Myt& assign(size_type _N, _E _C)
+               {if (_N == npos)
+                       _Xlen();
+               if (_Grow(_N, true))
+                       {_Tr::assign(_Ptr, _N, _C);
+                       _Eos(_N); }
+               return (*this); }
+       _Myt& assign(_It _F, _It _L)
+               {return (replace(begin(), end(), _F, _L)); }
+       _Myt& insert(size_type _P0, const _Myt& _X)
+               {return (insert(_P0, _X, 0, npos)); }
+       _Myt& insert(size_type _P0, const _Myt& _X, size_type _P,
+               size_type _M)
+               {if (_Len < _P0 || _X.size() < _P)
+                       _Xran();
+               size_type _N = _X.size() - _P;
+               if (_N < _M)
+                       _M = _N;
+               if (npos - _Len <= _M)
+                       _Xlen();
+               if (0 < _M && _Grow(_N = _Len + _M))
+                       {_Tr::move(_Ptr + _P0 + _M, _Ptr + _P0, _Len - _P0);
+                       _Tr::copy(_Ptr + _P0, &_X.c_str()[_P], _M);
+                       _Eos(_N); }
+               return (*this); }
+       _Myt& insert(size_type _P0, const _E *_S, size_type _M)
+               {if (_Len < _P0)
+                       _Xran();
+               if (npos - _Len <= _M)
+                       _Xlen();
+               size_type _N;
+               if (0 < _M && _Grow(_N = _Len + _M))
+                       {_Tr::move(_Ptr + _P0 + _M, _Ptr + _P0, _Len - _P0);
+                       _Tr::copy(_Ptr + _P0, _S, _M);
+                       _Eos(_N); }
+               return (*this); }
+       _Myt& insert(size_type _P0, const _E *_S)
+               {return (insert(_P0, _S, _Tr::length(_S))); }
+       _Myt& insert(size_type _P0, size_type _M, _E _C)
+               {if (_Len < _P0)
+                       _Xran();
+               if (npos - _Len <= _M)
+                       _Xlen();
+               size_type _N;
+               if (0 < _M && _Grow(_N = _Len + _M))
+                       {_Tr::move(_Ptr + _P0 + _M, _Ptr + _P0, _Len - _P0);
+                       _Tr::assign(_Ptr + _P0, _M, _C);
+                       _Eos(_N); }
+               return (*this); }
+       iterator insert(iterator _P, _E _C)
+               {size_type _P0 = _Pdif(_P, begin());
+               insert(_P0, 1, _C);
+               return (begin() + _P0); }
+       void insert(iterator _P, size_type _M, _E _C)
+               {size_type _P0 = _Pdif(_P, begin());
+               insert(_P0, _M, _C); }
+       void insert(iterator _P, _It _F, _It _L)
+               {replace(_P, _P, _F, _L); }
+       _Myt& erase(size_type _P0 = 0, size_type _M = npos)
+               {if (_Len < _P0)
+                       _Xran();
+               _Split();
+               if (_Len - _P0 < _M)
+                       _M = _Len - _P0;
+               if (0 < _M)
+                       {_Tr::move(_Ptr + _P0, _Ptr + _P0 + _M,
+                               _Len - _P0 - _M);
+                       size_type _N = _Len - _M;
+                       if (_Grow(_N))
+                               _Eos(_N); }
+               return (*this); }
+       iterator erase(iterator _P)
+               {size_t _M = _Pdif(_P, begin());
+               erase(_M, 1);
+               return (_Psum(_Ptr, _M)); }
+       iterator erase(iterator _F, iterator _L)
+               {size_t _M = _Pdif(_F, begin());
+               erase(_M, _Pdif(_L, _F));
+               return (_Psum(_Ptr, _M)); }
+       _Myt& replace(size_type _P0, size_type _N0, const _Myt& _X)
+               {return (replace(_P0, _N0, _X, 0, npos)); }
+       _Myt& replace(size_type _P0, size_type _N0, const _Myt& _X,
+               size_type _P, size_type _M)
+               {if (_Len < _P0 || _X.size() < _P)
+                       _Xran();
+               if (_Len - _P0 < _N0)
+                       _N0 = _Len - _P0;
+               size_type _N = _X.size() - _P;
+               if (_N < _M)
+                       _M = _N;
+               if (npos - _M <= _Len - _N0)
+                       _Xlen();
+               _Split();
+               size_type _Nm = _Len - _N0 - _P0;
+               if (_M < _N0)
+                       _Tr::move(_Ptr + _P0 + _M, _Ptr + _P0 + _N0, _Nm);
+               if ((0 < _M || 0 < _N0) && _Grow(_N = _Len + _M - _N0))
+                       {if (_N0 < _M)
+                               _Tr::move(_Ptr + _P0 + _M, _Ptr + _P0 + _N0, _Nm);
+                       _Tr::copy(_Ptr + _P0, &_X.c_str()[_P], _M);
+                       _Eos(_N); }
+               return (*this); }
+       _Myt& replace(size_type _P0, size_type _N0, const _E *_S,
+               size_type _M)
+               {if (_Len < _P0)
+                       _Xran();
+               if (_Len - _P0 < _N0)
+                       _N0 = _Len - _P0;
+               if (npos - _M <= _Len - _N0)
+                       _Xlen();
+               _Split();
+               size_type _Nm = _Len - _N0 - _P0;
+               if (_M < _N0)
+                       _Tr::move(_Ptr + _P0 + _M, _Ptr + _P0 + _N0, _Nm);
+               size_type _N;
+               if ((0 < _M || 0 < _N0) && _Grow(_N = _Len + _M - _N0))
+                       {if (_N0 < _M)
+                               _Tr::move(_Ptr + _P0 + _M, _Ptr + _P0 + _N0, _Nm);
+                       _Tr::copy(_Ptr + _P0, _S, _M);
+                       _Eos(_N); }
+               return (*this); }
+       _Myt& replace(size_type _P0, size_type _N0, const _E *_S)
+               {return (replace(_P0, _N0, _S, _Tr::length(_S))); }
+       _Myt& replace(size_type _P0, size_type _N0,
+               size_type _M, _E _C)
+               {if (_Len < _P0)
+                       _Xran();
+               if (_Len - _P0 < _N0)
+                       _N0 = _Len - _P0;
+               if (npos - _M <= _Len - _N0)
+                       _Xlen();
+               _Split();
+               size_type _Nm = _Len - _N0 - _P0;
+               if (_M < _N0)
+                       _Tr::move(_Ptr + _P0 + _M, _Ptr + _P0 + _N0, _Nm);
+               size_type _N;
+               if ((0 < _M || 0 < _N0) && _Grow(_N = _Len + _M - _N0))
+                       {if (_N0 < _M)
+                               _Tr::move(_Ptr + _P0 + _M, _Ptr + _P0 + _N0,
+                                       _Nm);
+                       _Tr::assign(_Ptr + _P0, _M, _C);
+                       _Eos(_N); }
+               return (*this); }
+       _Myt& replace(iterator _F, iterator _L, const _Myt& _X)
+               {return (replace(
+                       _Pdif(_F, begin()), _Pdif(_L, _F), _X)); }
+       _Myt& replace(iterator _F, iterator _L, const _E *_S,
+               size_type _M)
+               {return (replace(
+                       _Pdif(_F, begin()), _Pdif(_L, _F), _S, _M)); }
+       _Myt& replace(iterator _F, iterator _L, const _E *_S)
+               {return (replace(
+                       _Pdif(_F, begin()), _Pdif(_L, _F), _S)); }
+       _Myt& replace(iterator _F, iterator _L, size_type _M, _E _C)
+               {return (replace(
+                       _Pdif(_F, begin()), _Pdif(_L, _F), _M, _C)); }
+       _Myt& replace(iterator _F1, iterator _L1,
+               _It _F2, _It _L2)
+               {size_type _P0 = _Pdif(_F1, begin());
+               size_type _M = 0;
+               _Distance(_F2, _L2, _M);
+               replace(_P0, _Pdif(_L1, _F1), _M, _E(0));
+               for (_F1 = begin() + _P0; 0 < _M; ++_F1, ++_F2, --_M)
+                       *_F1 = *_F2;
+               return (*this); }
+       iterator begin()
+               {_Freeze();
+               return (_Ptr); }
+       const_iterator begin() const
+               {return (_Ptr); }
+       iterator end()
+               {_Freeze();
+               return ((iterator)_Psum(_Ptr, _Len)); }
+       const_iterator end() const
+               {return ((const_iterator)_Psum(_Ptr, _Len)); }
+       reverse_iterator rbegin()
+               {return (reverse_iterator(end())); }
+       const_reverse_iterator rbegin() const
+               {return (const_reverse_iterator(end())); }
+       reverse_iterator rend()
+               {return (reverse_iterator(begin())); }
+       const_reverse_iterator rend() const
+               {return (const_reverse_iterator(begin())); }
+       reference at(size_type _P0)
+               {if (_Len <= _P0)
+                       _Xran();
+               _Freeze();
+               return (_Ptr[_P0]); }
+       const_reference at(size_type _P0) const
+               {if (_Len <= _P0)
+                       _Xran();
+               return (_Ptr[_P0]); }
+       reference operator[](size_type _P0)
+               {if (_Len < _P0 || _Ptr == 0)
+                       return ((reference)*_Nullstr());
+               _Freeze();
+               return (_Ptr[_P0]); }
+       const_reference operator[](size_type _P0) const
+               {if (_Ptr == 0)
+                       return (*_Nullstr());
+               else
+                       return (_Ptr[_P0]); }
+       const _E *c_str() const
+               {return (_Ptr == 0 ? _Nullstr() : _Ptr); }
+       const _E *data() const
+               {return (c_str()); }
+       size_type length() const
+               {return (_Len); }
+       size_type size() const
+               {return (_Len); }
+       size_type max_size() const
+               {size_type _N = allocator.max_size();
+               return (_N <= 2 ? 1 : _N - 2); }
+       void resize(size_type _N, _E _C)
+               {_N <= _Len ? erase(_N) : append(_N - _Len, _C); }
+       void resize(size_type _N)
+               {_N <= _Len ? erase(_N) : append(_N - _Len, _E(0)); }
+       size_type capacity() const
+               {return (_Res); }
+       void reserve(size_type _N = 0)
+               {if (_Res < _N)
+                       _Grow(_N); }
+       bool empty() const
+               {return (_Len == 0); }
+       size_type copy(_E *_S, size_type _N, size_type _P0 = 0) const
+               {if (_Len < _P0)
+                       _Xran();
+               if (_Len - _P0 < _N)
+                       _N = _Len - _P0;
+               if (0 < _N)
+                       _Tr::copy(_S, _Ptr + _P0, _N);
+               return (_N); }
+       void swap(_Myt& _X)
+               {if (allocator == _X.allocator)
+                       {std::swap(_Ptr, _X._Ptr);
+                       std::swap(_Len, _X._Len);
+                       std::swap(_Res, _X._Res); }
+               else
+                       {_Myt _Ts = *this; *this = _X, _X = _Ts; }}
+       friend void swap(_Myt& _X, _Myt& _Y)
+               {_X.swap(_Y); }
+       size_type find(const _Myt& _X, size_type _P = 0) const
+               {return (find(_X.c_str(), _P, _X.size())); }
+       size_type find(const _E *_S, size_type _P,
+               size_type _N) const
+               {if (_N == 0 && _P <= _Len)
+                       return (_P);
+               size_type _Nm;
+               if (_P < _Len && _N <= (_Nm = _Len - _P))
+                       {const _E *_U, *_V;
+                       for (_Nm -= _N - 1, _V = _Ptr + _P;
+                               (_U = _Tr::find(_V, _Nm, *_S)) != 0;
+                               _Nm -= _U - _V + 1, _V = _U + 1)
+                               if (_Tr::compare(_U, _S, _N) == 0)
+                                       return (_U - _Ptr); }
+               return (npos); }
+       size_type find(const _E *_S, size_type _P = 0) const
+               {return (find(_S, _P, _Tr::length(_S))); }
+       size_type find(_E _C, size_type _P = 0) const
+               {return (find((const _E *)&_C, _P, 1)); }
+       size_type rfind(const _Myt& _X, size_type _P = npos) const
+               {return (rfind(_X.c_str(), _P, _X.size())); }
+       size_type rfind(const _E *_S, size_type _P,
+               size_type _N) const
+               {if (_N == 0)
+                       return (_P < _Len ? _P : _Len);
+               if (_N <= _Len)
+                       for (const _E *_U = _Ptr +
+                               + (_P < _Len - _N ? _P : _Len - _N); ; --_U)
+                               if (_Tr::eq(*_U, *_S)
+                                       && _Tr::compare(_U, _S, _N) == 0)
+                                       return (_U - _Ptr);
+                               else if (_U == _Ptr)
+                                       break;
+               return (npos); }
+       size_type rfind(const _E *_S, size_type _P = npos) const
+               {return (rfind(_S, _P, _Tr::length(_S))); }
+       size_type rfind(_E _C, size_type _P = npos) const
+               {return (rfind((const _E *)&_C, _P, 1)); }
+       size_type find_first_of(const _Myt& _X,
+               size_type _P = 0) const
+               {return (find_first_of(_X.c_str(), _P, _X.size())); }
+       size_type find_first_of(const _E *_S, size_type _P,
+               size_type _N) const
+               {if (0 < _N && _P < _Len)
+                       {const _E *const _V = _Ptr + _Len;
+                       for (const _E *_U = _Ptr + _P; _U < _V; ++_U)
+                               if (_Tr::find(_S, _N, *_U) != 0)
+                                       return (_U - _Ptr); }
+               return (npos); }
+       size_type find_first_of(const _E *_S, size_type _P = 0) const
+               {return (find_first_of(_S, _P, _Tr::length(_S))); }
+       size_type find_first_of(_E _C, size_type _P = 0) const
+               {return (find((const _E *)&_C, _P, 1)); }
+       size_type find_last_of(const _Myt& _X,
+               size_type _P = npos) const
+               {return (find_last_of(_X.c_str(), _P, _X.size())); }
+       size_type find_last_of(const _E *_S, size_type _P,
+               size_type _N) const
+               {if (0 < _N && 0 < _Len)
+                       for (const _E *_U = _Ptr
+                               + (_P < _Len ? _P : _Len - 1); ; --_U)
+                               if (_Tr::find(_S, _N, *_U) != 0)
+                                       return (_U - _Ptr);
+                               else if (_U == _Ptr)
+                                       break;
+               return (npos); }
+       size_type find_last_of(const _E *_S,
+               size_type _P = npos) const
+               {return (find_last_of(_S, _P, _Tr::length(_S))); }
+       size_type find_last_of(_E _C, size_type _P = npos) const
+               {return (rfind((const _E *)&_C, _P, 1)); }
+       size_type find_first_not_of(const _Myt& _X,
+               size_type _P = 0) const
+               {return (find_first_not_of(_X.c_str(), _P,
+                       _X.size())); }
+       size_type find_first_not_of(const _E *_S, size_type _P,
+               size_type _N) const
+               {if (_P < _Len)
+                       {const _E *const _V = _Ptr + _Len;
+                       for (const _E *_U = _Ptr + _P; _U < _V; ++_U)
+                               if (_Tr::find(_S, _N, *_U) == 0)
+                                       return (_U - _Ptr); }
+               return (npos); }
+       size_type find_first_not_of(const _E *_S,
+               size_type _P = 0) const
+               {return (find_first_not_of(_S, _P, _Tr::length(_S))); }
+       size_type find_first_not_of(_E _C, size_type _P = 0) const
+               {return (find_first_not_of((const _E *)&_C, _P, 1)); }
+       size_type find_last_not_of(const _Myt& _X,
+               size_type _P = npos) const
+               {return (find_last_not_of(_X.c_str(), _P, _X.size())); }
+       size_type find_last_not_of(const _E *_S, size_type _P,
+                size_type _N) const
+               {if (0 < _Len)
+                       for (const _E *_U = _Ptr
+                               + (_P < _Len ? _P : _Len - 1); ; --_U)
+                               if (_Tr::find(_S, _N, *_U) == 0)
+                                       return (_U - _Ptr);
+                               else if (_U == _Ptr)
+                                       break;
+               return (npos); }
+       size_type find_last_not_of(const _E *_S,
+               size_type _P = npos) const
+               {return (find_last_not_of(_S, _P, _Tr::length(_S))); }
+       size_type find_last_not_of(_E _C, size_type _P = npos) const
+               {return (find_last_not_of((const _E *)&_C, _P, 1)); }
+       _Myt substr(size_type _P = 0, size_type _M = npos) const
+               {return (_Myt(*this, _P, _M)); }
+       int compare(const _Myt& _X) const
+               {return (compare(0, _Len, _X.c_str(), _X.size())); }
+       int compare(size_type _P0, size_type _N0,
+               const _Myt& _X) const
+               {return (compare(_P0, _N0, _X, 0, npos)); }
+       int compare(size_type _P0, size_type _N0, const _Myt& _X,
+               size_type _P, size_type _M) const
+               {if (_X.size() < _P)
+                       _Xran();
+               if (_X._Len - _P < _M)
+                       _M = _X._Len - _P;
+               return (compare(_P0, _N0, _X.c_str() + _P, _M)); }
+       int compare(const _E *_S) const
+               {return (compare(0, _Len, _S, _Tr::length(_S))); }
+       int compare(size_type _P0, size_type _N0, const _E *_S) const
+               {return (compare(_P0, _N0, _S, _Tr::length(_S))); }
+       int compare(size_type _P0, size_type _N0, const _E *_S,
+               size_type _M) const
+               {if (_Len < _P0)
+                       _Xran();
+               if (_Len - _P0 < _N0)
+                       _N0 = _Len - _P0;
+               size_type _Ans = _Tr::compare(_Psum(_Ptr, _P0), _S,
+                       _N0 < _M ? _N0 : _M);
+               return (_Ans != 0 ? _Ans : _N0 < _M ? -1
+                       : _N0 == _M ? 0 : +1); }
+       _A get_allocator() const
+               {return (allocator); }
+protected:
+       _A allocator;
+private:
+       enum {_MIN_SIZE = sizeof (_E) <= 32 ? 31 : 7};
+       void _Copy(size_type _N)
+               {size_type _Ns = _N | _MIN_SIZE;
+               if (max_size() < _Ns)
+                       _Ns = _N;
+               _E *_S;
+               try {
+                       _S = allocator.allocate(_Ns + 2, (void *)0);
+               } catch (...) {
+                       _Ns = _N;
+                       _S = allocator.allocate(_Ns + 2, (void *)0);
+               }
+               if (0 < _Len)
+                       _Tr::copy(_S + 1, _Ptr,_Len>_Ns?_Ns:_Len);
+               size_type _Olen = _Len;
+               _Tidy(true);
+               _Ptr = _S + 1;
+               _Refcnt(_Ptr) = 0;
+               _Res = _Ns;
+               _Eos(_Olen>_Ns?_Ns:_Olen); }
+       void _Eos(size_type _N)
+               {_Tr::assign(_Ptr[_Len = _N], _E(0)); }
+       void _Freeze()
+               {if (_Ptr != 0
+                       && _Refcnt(_Ptr) != 0 && _Refcnt(_Ptr) != _FROZEN)
+                       _Grow(_Len);
+               if (_Ptr != 0)
+                       _Refcnt(_Ptr) = _FROZEN; }
+       bool _Grow(size_type _N, bool _Trim = false)
+               {if (max_size() < _N)
+                       _Xlen();
+               if (_Ptr != 0
+                       && _Refcnt(_Ptr) != 0 && _Refcnt(_Ptr) != _FROZEN)
+                       if (_N == 0)
+                               {--_Refcnt(_Ptr), _Tidy();
+                               return (false); }
+                       else
+                               {_Copy(_N);
+                               return (true); }
+               if (_N == 0)
+                       {if (_Trim)
+                               _Tidy(true);
+                       else if (_Ptr != 0)
+                               _Eos(0);
+                       return (false); }
+               else
+                       {if (_Trim && (_MIN_SIZE < _Res || _Res < _N))
+                               {_Tidy(true);
+                               _Copy(_N); }
+                       else if (!_Trim && _Res < _N)
+                               _Copy(_N);
+                       return (true); }}
+       static const _E * __cdecl _Nullstr()
+               {static const _E _C = _E(0);
+               return (&_C); }
+       static size_type _Pdif(const_pointer _P2, const_pointer _P1)
+               {return (_P2 == 0 ? 0 : _P2 - _P1); }
+       static const_pointer _Psum(const_pointer _P, size_type _N)
+               {return (_P == 0 ? 0 : _P + _N); }
+       static pointer _Psum(pointer _P, size_type _N)
+               {return (_P == 0 ? 0 : _P + _N); }
+       unsigned char& _Refcnt(const _E *_U)
+               {return (((unsigned char *)_U)[-1]); }
+       void _Split()
+               {if (_Ptr != 0 && _Refcnt(_Ptr) != 0 && _Refcnt(_Ptr) != _FROZEN)
+                       {_E *_Temp = _Ptr;
+                       _Tidy(true);
+                       assign(_Temp); }}
+       void _Tidy(bool _Built = false)
+               {if (!_Built || _Ptr == 0)
+                       ;
+               else if (_Refcnt(_Ptr) == 0 || _Refcnt(_Ptr) == _FROZEN)
+                       allocator.deallocate(_Ptr - 1, _Res + 2);
+               else
+                       --_Refcnt(_Ptr);
+               _Ptr = 0, _Len = 0, _Res = 0; }
+       _E *_Ptr;
+       size_type _Len, _Res;
+       };
+template<class _E, class _Tr, class _A>
+       const basic_string<_E, _Tr, _A>::size_type
+               basic_string<_E, _Tr, _A>::npos = -1;
+
+
+
+
+
+
+
+
+
+
+typedef basic_string<char, char_traits<char>, allocator<char> >
+       string;
+
+typedef basic_string<wchar_t, char_traits<wchar_t>,
+       allocator<wchar_t> > wstring;
+
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+               
+class  logic_error : public exception {
+public:
+       explicit logic_error(const string& _S)
+               : exception(""), _Str(_S) {}
+       virtual ~logic_error()
+               {}
+       virtual const char *what() const
+               {return (_Str.c_str()); }
+protected:
+       virtual void _Doraise() const
+               {throw (*this); }
+private:
+       string _Str;
+       };
+               
+class  domain_error : public logic_error {
+public:
+       explicit domain_error(const string& _S)
+               : logic_error(_S) {}
+       virtual ~domain_error()
+               {}
+protected:
+       virtual void _Doraise() const
+               {throw (*this); }
+       };
+               
+class invalid_argument : public logic_error {
+public:
+       explicit invalid_argument(const string& _S)
+               : logic_error(_S) {}
+       virtual ~invalid_argument()
+               {}
+protected:
+       virtual void _Doraise() const
+               {throw (*this); }
+       };
+               
+class  length_error : public logic_error {
+public:
+       explicit length_error(const string& _S)
+               : logic_error(_S) {}
+       virtual ~length_error()
+               {}
+protected:
+       virtual void _Doraise() const
+               {throw (*this); }
+       };
+               
+class  out_of_range : public logic_error {
+public:
+       explicit out_of_range(const string& _S)
+               : logic_error(_S) {}
+       virtual ~out_of_range()
+               {}
+protected:
+       virtual void _Doraise() const
+               {throw (*this); }
+       };
+               
+class  runtime_error : public exception {
+public:
+       explicit runtime_error(const string& _S)
+               : exception(""), _Str(_S) {}
+       virtual ~runtime_error()
+               {}
+       virtual const char *what() const
+               {return (_Str.c_str()); }
+protected:
+       virtual void _Doraise() const
+               {throw (*this); }
+private:
+       string _Str;
+       };
+               
+class  overflow_error : public runtime_error {
+public:
+       explicit overflow_error(const string& _S)
+               : runtime_error(_S) {}
+       virtual ~overflow_error()
+               {}
+protected:
+       virtual void _Doraise() const
+               {throw (*this); }
+       };
+               
+class  underflow_error : public runtime_error {
+public:
+       explicit underflow_error(const string& _S)
+               : runtime_error(_S) {}
+       virtual ~underflow_error()
+               {}
+protected:
+       virtual void _Doraise() const
+               {throw (*this); }
+       };
+               
+class  range_error : public runtime_error {
+public:
+       explicit range_error(const string& _S)
+               : runtime_error(_S) {}
+       virtual ~range_error()
+               {}
+protected:
+       virtual void _Doraise() const
+               {throw (*this); }
+       };
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+
+
+               
+template<class _Ty, class _A = allocator<_Ty> >
+       class deque {
+public:
+       typedef deque<_Ty, _A> _Myt;
+       typedef _A allocator_type;
+       typedef _A::size_type size_type;
+       typedef _A::difference_type difference_type;
+       typedef _A::pointer _Tptr;
+       typedef _A::const_pointer _Ctptr;
+       typedef _Tptr  * _Mapptr;
+       typedef _A::reference reference;
+       typedef _A::const_reference const_reference;
+       typedef _A::value_type value_type;
+               
+       class iterator;
+       class const_iterator : public _Ranit<_Ty, difference_type> {
+       public:
+               friend class deque<_Ty, _A>;
+               const_iterator()
+                       : _First(0), _Last(0), _Next(0), _Map(0) {}
+               const_iterator(_Tptr _P, _Mapptr _M)
+                       : _First(*_M), _Last(*_M + (4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty))),
+                               _Next(_P), _Map(_M) {}
+               const_iterator(const iterator& _X)
+                       : _First(_X._First), _Last(_X._Last), _Next(_X._Next), 
+                         _Map(_X._Map) {}
+               const_reference operator*() const
+                       {return (*_Next); }
+               _Ctptr operator->() const
+                       {return (&**this); }
+               const_iterator& operator++()
+                       {if (++_Next == _Last)
+                               {_First = *++_Map;
+                               _Last = _First + (4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty));
+                               _Next = _First; }
+                       return (*this); }
+               const_iterator operator++(int)
+                       {const_iterator _Tmp = *this;
+                       ++*this;
+                       return (_Tmp); }
+               const_iterator& operator--()
+                       {if (_Next == _First)
+                               {_First = *--_Map;
+                               _Last = _First + (4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty));
+                               _Next = _Last; }
+                       --_Next;
+                       return (*this); }
+               const_iterator operator--(int)
+                       {const_iterator _Tmp = *this;
+                       --*this;
+                       return (_Tmp); }
+               const_iterator& operator+=(difference_type _N)
+                       {_Add(_N);
+                       return (*this); }
+               const_iterator& operator-=(difference_type _N)
+                       {return (*this += -_N); }
+               const_iterator operator+(difference_type _N) const
+                       {const_iterator _Tmp = *this;
+                       return (_Tmp += _N); }
+               const_iterator operator-(difference_type _N) const
+                       {const_iterator _Tmp = *this;
+                       return (_Tmp -= _N); }
+               difference_type operator-(const const_iterator& _X) const
+                       {return (_Map == _X._Map ? _Next - _X._Next
+                               : (4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty)) * (_Map - _X._Map - 1)
+                               + (_Next - _First) + (_X._Last - _X._Next)); }
+               const_reference operator[](difference_type _N) const
+                       {return (*(*this + _N)); }
+               bool operator==(const const_iterator& _X) const
+                       {return (_Next == _X._Next); }
+               bool operator!=(const const_iterator& _X) const
+                       {return (!(*this == _X)); }
+               bool operator<(const const_iterator& _X) const
+                       {return (_Map < _X._Map
+                               || _Map == _X._Map && _Next < _X._Next); }
+               bool operator<=(const const_iterator& _X) const
+                       {return (!(_X < *this)); }
+               bool operator>(const const_iterator& _X) const
+                       {return (_X < *this); }
+               bool operator>=(const const_iterator& _X) const
+                       {return (!(*this < _X)); }
+       protected:
+               void _Add(difference_type _N)
+                       {difference_type _Off = _N + _Next - _First;
+                       difference_type _Moff = (0 <= _Off)
+                               ? _Off / (4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty))
+                               : -(((4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty)) - 1 - _Off) / (4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty)));
+                       if (_Moff == 0)
+                               _Next += _N;
+                       else
+                               {_Map += _Moff;
+                               _First = *_Map;
+                               _Last = _First + (4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty));
+                               _Next = _First + (_Off - _Moff * (4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty))); }}
+       public:
+               _Tptr _First, _Last, _Next;
+               _Mapptr _Map;
+               };
+               
+       class iterator : public const_iterator {
+       public:
+               iterator()
+                       {}
+               iterator(_Tptr _P, _Mapptr _M)
+                       : const_iterator(_P, _M) {}
+               reference operator*() const
+                       {return (*_Next); }
+               _Tptr operator->() const
+                       {return (&**this); }
+               iterator& operator++()
+                       {if (++_Next == _Last)
+                               {_First = *++_Map;
+                               _Last = _First + (4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty));
+                               _Next = _First; }
+                       return (*this); }
+               iterator operator++(int)
+                       {iterator _Tmp = *this;
+                       ++*this;
+                       return (_Tmp); }
+               iterator& operator--()
+                       {if (_Next == _First)
+                               {_First = *--_Map;
+                               _Last = _First + (4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty));
+                               _Next = _Last; }
+                       --_Next;
+                       return (*this); }
+               iterator operator--(int)
+                       {iterator _Tmp = *this;
+                       --*this;
+                       return (_Tmp); }
+               iterator& operator+=(difference_type _N)
+                       {_Add(_N);
+                       return (*this); }
+               iterator& operator-=(difference_type _N)
+                       {return (*this += -_N); }
+               iterator operator+(difference_type _N) const
+                       {iterator _Tmp = *this;
+                       return (_Tmp += _N); }
+               iterator operator-(difference_type _N) const
+                       {iterator _Tmp = *this;
+                       return (_Tmp -= _N); }
+               difference_type operator-(const iterator& _X) const
+                       {return (_Map == _X._Map ? _Next - _X._Next
+                               : (4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty)) * (_Map - _X._Map - 1)
+                               + (_Next - _First) + (_X._Last - _X._Next)); }
+               reference operator[](difference_type _N) const
+                       {return (*(*this + _N)); }
+               bool operator==(const iterator& _X) const
+                       {return (_Next == _X._Next); }
+               bool operator!=(const iterator& _X) const
+                       {return (!(*this == _X)); }
+               bool operator<(const iterator& _X) const
+                       {return (_Map < _X._Map
+                               || _Map == _X._Map && _Next < _X._Next); }
+               bool operator<=(const iterator& _X) const
+                       {return (!(_X < *this)); }
+               bool operator>(const iterator& _X) const
+                       {return (_X < *this); }
+               bool operator>=(const iterator& _X) const
+                       {return (!(*this < _X)); }
+               };
+       typedef reverse_iterator<const_iterator, value_type,
+               const_reference, _Ctptr, difference_type>
+                       const_reverse_iterator;
+       typedef reverse_iterator<iterator, value_type,
+               reference, _Tptr, difference_type>
+                       reverse_iterator;
+       explicit deque(const _A& _Al = _A())
+               : allocator(_Al),
+                       _First(), _Last(), _Map(0), _Mapsize(0), _Size(0)
+               {}
+       explicit deque(size_type _N, const _Ty& _V = _Ty(),
+               const _A& _Al = _A())
+               : allocator(_Al),
+                       _First(), _Last(), _Map(0), _Mapsize(0), _Size(0)
+               {insert(begin(), _N, _V); }
+       deque(const _Myt& _X)
+               : allocator(_X.allocator),
+                       _First(), _Last(), _Map(0), _Mapsize(0), _Size(0)
+               {copy(_X.begin(), _X.end(), back_inserter(*this)); }
+       typedef const_iterator _It;
+               deque(_It _F, _It _L, const _A& _Al = _A())
+               : allocator(_Al),
+                       _First(), _Last(), _Map(0), _Mapsize(0), _Size(0)
+               {copy(_F, _L, back_inserter(*this)); }
+       ~deque()
+               {while (!empty())
+                       pop_front(); }
+       _Myt& operator=(const _Myt& _X)
+               {if (this != &_X)
+                       {iterator _S;
+                       if (_X.size() <= size())
+                               {_S = copy(_X.begin(), _X.end(), begin());
+                               erase(_S, end()); }
+                       else
+                               {const_iterator _Sx = _X.begin() + size();
+                               _S = copy(_X.begin(), _Sx, begin());
+                               copy(_Sx, _X.end(), inserter(*this, _S)); }}
+               return (*this); }
+       iterator begin()
+               {return (_First); }
+       const_iterator begin() const
+               {return ((const_iterator)_First); }
+       iterator end()
+               {return (_Last); }
+       const_iterator end() const
+               {return ((const_iterator)_Last); }
+       reverse_iterator rbegin()
+               {return (reverse_iterator(end())); }
+       const_reverse_iterator rbegin() const
+               {return (const_reverse_iterator(end())); }
+       reverse_iterator rend()
+               {return (reverse_iterator(begin())); }
+       const_reverse_iterator rend() const
+               {return (const_reverse_iterator(begin())); }
+       void resize(size_type _N, _Ty _X = _Ty())
+               {if (size() < _N)
+                       insert(end(), _N - size(), _X);
+               else if (_N < size())
+                       erase(begin() + _N, end()); }
+       size_type size() const
+               {return (_Size); }
+       size_type max_size() const
+               {return (allocator.max_size()); }
+       bool empty() const
+               {return (size() == 0); }
+       _A get_allocator() const
+               {return (allocator); }
+       const_reference at(size_type _P) const
+               {if (size() <= _P)
+                       _Xran();
+               return (*(begin() + _P)); }
+       reference at(size_type _P)
+               {if (size() <= _P)
+                       _Xran();
+               return (*(begin() + _P)); }
+       const_reference operator[](size_type _P) const
+               {return (*(begin() + _P)); }
+       reference operator[](size_type _P)
+               {return (*(begin() + _P)); }
+       reference front()
+               {return (*begin()); }
+       const_reference front() const
+               {return (*begin()); }
+       reference back()
+               {return (*(end() - 1)); }
+       const_reference back() const
+               {return (*(end() - 1)); }
+       void push_front(const _Ty& _X)
+               {if (empty() || _First._Next == _First._First)
+                       _Buyfront();
+               allocator.construct(--_First._Next, _X);
+               ++_Size; }
+       void pop_front()
+               {allocator.destroy(_First._Next++);
+               --_Size;
+               if (empty() || _First._Next == _First._Last)
+                       _Freefront(); }
+       void push_back(const _Ty& _X)
+               {
+               if (empty() || (_Last._Next == _Last._Last))
+        {
+            _Buyback();
+            allocator.construct(_Last._Next++, _X);
+        }
+        else if (_Last._Next + 1 == _Last._Last)
+        {
+            allocator.construct(_Last._Next++, _X);
+            _Buyback();
+        }
+        else
+            allocator.construct(_Last._Next++, _X);
+        ++_Size; }
+       void pop_back()
+               {
+        if (_Last._Next == _Last._First)
+                       _Freeback();
+               if (!empty())
+                       allocator.destroy(--_Last._Next);
+               --_Size;
+               if (empty())
+                       _Freeback(); }
+       void assign(_It _F, _It _L)
+               {erase(begin(), end());
+               insert(begin(), _F, _L); }
+       void assign(size_type _N, const _Ty& _X = _Ty())
+               {erase(begin(), end());
+               insert(begin(), _N, _X); }
+       iterator insert(iterator _P, const _Ty& _X = _Ty())
+               {if (_P == begin())
+                       {push_front(_X);
+                       return (begin()); }
+               else if (_P == end())
+                       {push_back(_X);
+                       return (end() - 1); }
+               else
+                       {iterator _S;
+                       size_type _Off = _P - begin();
+                       if (_Off < size() / 2)
+                               {push_front(front());
+                               _S = begin() + _Off;
+                               copy(begin() + 2, _S + 1, begin() + 1); }
+                       else
+                               {push_back(back());
+                               _S = begin() + _Off;
+                               copy_backward(_S, end() - 2, end() - 1); }
+                       *_S = _X;
+                       return (_S); }}
+       void insert(iterator _P, size_type _M, const _Ty& _X)
+               {iterator _S;
+               size_type _I;
+               size_type _Off = _P - begin();
+               size_type _Rem = _Size - _Off;
+               if (_Off < _Rem)
+                       if (_Off < _M)
+                               {for (_I = _M - _Off; 0 < _I; --_I)
+                                       push_front(_X);
+                               for (_I = _Off; 0 < _I; --_I)
+                                       push_front(begin()[_M - 1]);
+                               _S = begin() + _M;
+                               fill(_S, _S + _Off, _X); }
+                       else
+                               {for (_I = _M; 0 < _I; --_I)
+                                       push_front(begin()[_M - 1]);
+                               _S = begin() + _M;
+                               copy(_S + _M, _S + _Off, _S);
+                               fill(begin() + _Off, _S + _Off, _X); }
+               else
+                       if (_Rem < _M)
+                               {for (_I = _M - _Rem; 0 < _I; --_I)
+                                       push_back(_X);
+                               for (_I = 0; _I < _Rem; ++_I)
+                                       push_back(begin()[_Off + _I]);
+                               _S = begin() + _Off;
+                               fill(_S, _S + _Rem, _X); }
+                       else
+                               {for (_I = 0; _I < _M; ++_I)
+                                       push_back(begin()[_Off + _Rem - _M + _I]);
+                               _S = begin() + _Off;
+                               copy_backward(_S, _S + _Rem - _M, _S + _Rem);
+                               fill(_S, _S + _M, _X); }}
+       void insert(iterator _P, _It _F, _It _L)
+               {size_type _M = 0;
+               _Distance(_F, _L, _M);
+               size_type _I;
+               size_type _Off = _P - begin();
+               size_type _Rem = _Size - _Off;
+               if (_Off < _Rem)
+                       if (_Off < _M)
+                               {_It _Qx = _F;
+                               advance(_Qx, _M - _Off);
+                               for (_It _Q = _Qx; _F != _Q; )
+                                       push_front(*--_Q);
+                               for (_I = _Off; 0 < _I; --_I)
+                                       push_front(begin()[_M - 1]);
+                               copy(_Qx, _L, begin() + _M); }
+                       else
+                               {for (_I = _M; 0 < _I; --_I)
+                                       push_front(begin()[_M - 1]);
+                               iterator _S = begin() + _M;
+                               copy(_S + _M, _S + _Off, _S);
+                               copy(_F, _L, begin() + _Off); }
+               else
+                       if (_Rem < _M)
+                               {_It _Qx = _F;
+                               advance(_Qx, _Rem);
+                               for (_It _Q = _Qx; _Q != _L; ++_Q)
+                                       push_back(*_Q);
+                               for (_I = 0; _I < _Rem; ++_I)
+                                       push_back(begin()[_Off + _I]);
+                               copy(_F, _Qx, begin() + _Off); }
+                       else
+                               {for (_I = 0; _I < _M; ++_I)
+                                       push_back(begin()[_Off + _Rem - _M + _I]);
+                               iterator _S = begin() + _Off;
+                               copy_backward(_S, _S + _Rem - _M, _S + _Rem);
+                               copy(_F, _L, _S); }}
+       iterator erase(iterator _P)
+               {return (erase(_P, _P + 1)); }
+       iterator erase(iterator _F, iterator _L)
+               {size_type _N = _L - _F;
+               size_type _M = _F - begin();
+               if (_M < end() - _L)
+                       {copy_backward(begin(), _F, _L);
+                       for (; 0 < _N; --_N)
+                               pop_front(); }
+               else
+                       {copy(_L, end(), _F);
+                       for (; 0 < _N; --_N)
+                               pop_back(); }
+               return (_M == 0 ? begin() : begin() + _M); }
+       void clear()
+               {erase(begin(), end()); }
+       void swap(_Myt& _X)
+               {if (allocator == _X.allocator)
+                       {std::swap(_First, _X._First);
+                       std::swap(_Last, _X._Last);
+                       std::swap(_Map, _X._Map);
+                       std::swap(_Mapsize, _X._Mapsize);
+                       std::swap(_Size, _X._Size); }
+               else
+                       {_Myt _Ts = *this; *this = _X, _X = _Ts; }}
+       friend void swap(_Myt& _X, _Myt& _Y)
+               {_X.swap(_Y); }
+protected:
+       void _Buyback()
+               {_Tptr _P = allocator.allocate((4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty)), (void *)0);
+               if (empty())
+                       {_Mapsize = 2;
+                       size_type _N = _Mapsize / 2;
+                       _Getmap();
+                       _Setptr(_Map + _N, _P);
+                       _First = iterator(_P + (4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty)) / 2, _Map + _N);
+                       _Last = _First; }
+               else if (_Last._Map < _Map + (_Mapsize - 1))
+                       {_Setptr(++_Last._Map, _P);
+                       _Last = iterator(_P, _Last._Map); }
+               else
+                       {difference_type _I = _Last._Map - _First._Map + 1;
+                       _Mapptr _M = _Growmap(2 * _I);
+                       _Setptr(_M + _I, _P);
+                       _First = iterator(_First._Next, _M);
+                       _Last = iterator(_P, _M + _I); }}
+       void _Buyfront()
+               {_Tptr _P = allocator.allocate((4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty)), (void *)0);
+               if (empty())
+                       {_Mapsize = 2;
+                       size_type _N = _Mapsize / 2;
+                       _Getmap();
+                       _Setptr(_Map + _N, _P);
+                       _First = iterator(_P + ((4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty)) / 2 + 1),
+                               _Map + _N);
+                       _Last = _First; }
+               else if (_Map < _First._Map)
+                       {_Setptr(--_First._Map, _P);
+                       _First = iterator(_P + (4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty)), _First._Map); }
+               else if (_Last._Map == _First._Map)
+                       {_Setptr(_Last._Map++, *_First._Map);
+                       _Setptr(_First._Map+1, *_First._Map);
+                       _Setptr(_First._Map, _P);
+                       _First = iterator(_P + (4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty)), _First._Map); }
+               else
+                       {difference_type _I = _Last._Map - _First._Map + 1;
+                       _Mapptr _M = _Growmap(2 * _I);
+                       _Setptr(--_M, _P);
+                       _First = iterator(_P + (4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty)), _M);
+                       _Last = iterator(_Last._Next, _M + _I); }}
+       void _Freeback()
+               {_Freeptr(_Last._Map--);
+               if (empty())
+                       {if (_First._Map == _Last._Map)
+                _Freeptr(_First._Map);
+                       _First = iterator();
+                       _Last = _First;
+                       _Freemap(); }
+               else
+                       _Last = iterator(*_Last._Map + (4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty)),
+                               _Last._Map); }
+       void _Freefront()
+               {_Freeptr(_First._Map++);
+               if (empty())
+                       {_First = iterator();
+                       _Last = _First;
+                       _Freemap(); }
+               else
+                       _First = iterator(*_First._Map, _First._Map); }
+       void _Xran() const
+               {throw out_of_range("invalid deque<T> subscript"); }
+       void _Freemap()
+               {allocator.deallocate(_Map, _Mapsize); }
+       void _Freeptr(_Mapptr _M)
+               {allocator.deallocate(*_M, (4096 < sizeof (_Ty) ? 1 : 4096 / sizeof (_Ty))); }
+       void _Getmap()
+               {_Map = (_Mapptr)allocator._Charalloc(
+                       _Mapsize * sizeof (_Tptr)); }
+       _Mapptr _Growmap(size_type _Newsize)
+               {_Mapptr _M = (_Mapptr)allocator._Charalloc(
+                       _Newsize * sizeof (_Tptr));
+               copy(_First._Map, _Last._Map + 1,
+                       _M + _Newsize / 4);
+               allocator.deallocate(_Map, _Mapsize);
+               _Map = _M;
+               _Mapsize = _Newsize;
+               return (_M + _Newsize / 4); }
+       void _Setptr(_Mapptr _M, _Tptr _P)
+               {*_M = _P; }
+       _A allocator;
+       iterator _First, _Last;
+       _Mapptr _Map;
+       size_type _Mapsize, _Size;
+       };
+               
+template<class _Ty, class _A> inline
+       bool operator==(const deque<_Ty, _A>& _X,
+               const deque<_Ty, _A>& _Y)
+       {return (_X.size() == _Y.size()
+               && equal(_X.begin(), _X.end(), _Y.begin())); }
+template<class _Ty, class _A> inline
+       bool operator!=(const deque<_Ty, _A>& _X,
+               const deque<_Ty, _A>& _Y)
+       {return (!(_X == _Y)); }
+template<class _Ty, class _A> inline
+       bool operator<(const deque<_Ty, _A>& _X,
+               const deque<_Ty, _A>& _Y)
+       {return (lexicographical_compare(_X.begin(), _X.end(),
+               _Y.begin(), _Y.end())); }
+template<class _Ty, class _A> inline
+       bool operator<=(const deque<_Ty, _A>& _X,
+               const deque<_Ty, _A>& _Y)
+       {return (!(_Y < _X)); }
+template<class _Ty, class _A> inline
+       bool operator>(const deque<_Ty, _A>& _X,
+               const deque<_Ty, _A>& _Y)
+       {return (_Y < _X); }
+template<class _Ty, class _A> inline
+       bool operator>=(const deque<_Ty, _A>& _X,
+               const deque<_Ty, _A>& _Y)
+       {return (!(_X < _Y)); }
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+               
+template<class _Ty, class _C = deque<_Ty> >
+       class stack {
+public:
+       typedef _C::allocator_type allocator_type;
+       typedef _C::value_type value_type;
+       typedef _C::size_type size_type;
+       explicit stack(const allocator_type& _Al = allocator_type())
+               : c(_Al) {}
+       allocator_type get_allocator() const
+               {return (c.get_allocator()); }
+       bool empty() const
+               {return (c.empty()); }
+       size_type size() const
+               {return (c.size()); }
+       value_type& top()
+               {return (c.back()); }
+       const value_type& top() const
+               {return (c.back()); }
+       void push(const value_type& _X)
+               {c.push_back(_X); }
+       void pop()
+               {c.pop_back(); }
+       bool operator==(const stack<_Ty, _C>& _X) const
+               {return (c == _X.c); }
+       bool operator!=(const stack<_Ty, _C>& _X) const
+               {return (!(*this == _X)); }
+       bool operator<(const stack<_Ty, _C>& _X) const
+               {return (c < _X.c); }
+       bool operator>(const stack<_Ty, _C>& _X) const
+               {return (_X < *this); }
+       bool operator<=(const stack<_Ty, _C>& _X) const
+               {return (!(_X < *this)); }
+       bool operator>=(const stack<_Ty, _C>& _X) const
+               {return (!(*this < _X)); }
+protected:
+       _C c;
+       };
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+               
+template<class _A, class _R>
+       struct unary_function {
+       typedef _A argument_type;
+       typedef _R result_type;
+       };
+               
+template<class _A1, class _A2, class _R>
+       struct binary_function {
+       typedef _A1 first_argument_type;
+       typedef _A2 second_argument_type;
+       typedef _R result_type;
+       };
+               
+template<class _Ty>
+       struct plus : binary_function<_Ty, _Ty, _Ty> {
+       _Ty operator()(const _Ty& _X, const _Ty& _Y) const
+               {return (_X + _Y); }
+       };
+               
+template<class _Ty>
+       struct minus : binary_function<_Ty, _Ty, _Ty> {
+       _Ty operator()(const _Ty& _X, const _Ty& _Y) const
+               {return (_X - _Y); }
+       };
+               
+template<class _Ty>
+       struct multiplies : binary_function<_Ty, _Ty, _Ty> {
+       _Ty operator()(const _Ty& _X, const _Ty& _Y) const
+               {return (_X * _Y); }
+       };
+               
+template<class _Ty>
+       struct divides : binary_function<_Ty, _Ty, _Ty> {
+       _Ty operator()(const _Ty& _X, const _Ty& _Y) const
+               {return (_X / _Y); }
+       };
+               
+template<class _Ty>
+       struct modulus : binary_function<_Ty, _Ty, _Ty> {
+       _Ty operator()(const _Ty& _X, const _Ty& _Y) const
+               {return (_X % _Y); }
+       };
+               
+template<class _Ty>
+       struct negate : unary_function<_Ty, _Ty> {
+       _Ty operator()(const _Ty& _X) const
+               {return (-_X); }
+       };
+               
+template<class _Ty>
+       struct equal_to : binary_function<_Ty, _Ty, bool> {
+       bool operator()(const _Ty& _X, const _Ty& _Y) const
+               {return (_X == _Y); }
+       };
+               
+template<class _Ty>
+       struct not_equal_to : binary_function<_Ty, _Ty, bool> {
+       bool operator()(const _Ty& _X, const _Ty& _Y) const
+               {return (_X != _Y); }
+       };
+               
+template<class _Ty>
+       struct greater : binary_function<_Ty, _Ty, bool> {
+       bool operator()(const _Ty& _X, const _Ty& _Y) const
+               {return (_X > _Y); }
+       };
+               
+template<class _Ty>
+       struct less : binary_function<_Ty, _Ty, bool> {
+       bool operator()(const _Ty& _X, const _Ty& _Y) const
+               {return (_X < _Y); }
+       };
+               
+template<class _Ty>
+       struct greater_equal : binary_function<_Ty, _Ty, bool> {
+       bool operator()(const _Ty& _X, const _Ty& _Y) const
+               {return (_X >= _Y); }
+       };
+               
+template<class _Ty>
+       struct less_equal : binary_function<_Ty, _Ty, bool> {
+       bool operator()(const _Ty& _X, const _Ty& _Y) const
+               {return (_X <= _Y); }
+       };
+               
+template<class _Ty>
+       struct logical_and : binary_function<_Ty, _Ty, bool> {
+       bool operator()(const _Ty& _X, const _Ty& _Y) const
+               {return (_X && _Y); }
+       };
+               
+template<class _Ty>
+       struct logical_or : binary_function<_Ty, _Ty, bool> {
+       bool operator()(const _Ty& _X, const _Ty& _Y) const
+               {return (_X || _Y); }
+       };
+               
+template<class _Ty>
+       struct logical_not : unary_function<_Ty, bool> {
+       bool operator()(const _Ty& _X) const
+               {return (!_X); }
+       };
+               
+template<class _Ufn>
+       class unary_negate
+       : public unary_function<_Ufn::argument_type, bool> {
+public:
+       explicit unary_negate(const _Ufn& _X)
+               : _Fn(_X) {}
+       bool operator()(const _Ufn::argument_type& _X) const
+               {return (!_Fn(_X)); }
+protected:
+       _Ufn _Fn;
+       };
+               
+template<class _Ufn> inline
+       unary_negate<_Ufn> not1(const _Ufn& _X)
+               {return (unary_negate<_Ufn>(_X)); }
+               
+template<class _Bfn>
+       class binary_negate
+       : public binary_function<_Bfn::first_argument_type,
+               _Bfn::second_argument_type, bool> {
+public:
+       explicit binary_negate(const _Bfn& _X)
+               : _Fn(_X) {}
+       bool operator()(const _Bfn::first_argument_type& _X,
+               const _Bfn::second_argument_type& _Y) const
+               {return (!_Fn(_X, _Y)); }
+protected:
+       _Bfn _Fn;
+       };
+               
+template<class _Bfn> inline
+       binary_negate<_Bfn> not2(const _Bfn& _X)
+               {return (binary_negate<_Bfn>(_X)); }
+               
+template<class _Bfn>
+       class binder1st
+       : public unary_function<_Bfn::second_argument_type,
+               _Bfn::result_type> {
+public:
+       binder1st(const _Bfn& _X,
+               const _Bfn::first_argument_type& _Y)
+               : op(_X), value(_Y) {}
+       result_type operator()(const argument_type& _X) const
+               {return (op(value, _X)); }
+protected:
+       _Bfn op;
+       _Bfn::first_argument_type value;
+       };
+               
+template<class _Bfn, class _Ty> inline
+       binder1st<_Bfn> bind1st(const _Bfn& _X, const _Ty& _Y)
+               {return (binder1st<_Bfn>(_X,
+                       _Bfn::first_argument_type(_Y))); }
+               
+template<class _Bfn>
+       class binder2nd
+       : public unary_function<_Bfn::first_argument_type,
+               _Bfn::result_type> {
+public:
+       binder2nd(const _Bfn& _X,
+               const _Bfn::second_argument_type& _Y)
+               : op(_X), value(_Y) {}
+       result_type operator()(const argument_type& _X) const
+               {return (op(_X, value)); }
+protected:
+       _Bfn op;
+       _Bfn::second_argument_type value;
+       };
+               
+template<class _Bfn, class _Ty> inline
+       binder2nd<_Bfn> bind2nd(const _Bfn& _X, const _Ty& _Y)
+               {return (binder2nd<_Bfn>(_X,
+                       _Bfn::second_argument_type(_Y))); }
+               
+template<class _A, class _R>
+       class pointer_to_unary_function
+               : public unary_function<_A, _R> {
+public:
+       explicit pointer_to_unary_function(_R (__cdecl *_X)(_A))
+               : _Fn(_X) {}
+       _R operator()(_A _X) const
+               {return (_Fn(_X)); }
+protected:
+       _R (__cdecl *_Fn)(_A);
+       };
+               
+template<class _A1, class _A2, class _R>
+       class pointer_to_binary_function
+               : public binary_function<_A1, _A2, _R> {
+public:
+       explicit pointer_to_binary_function(
+               _R (__cdecl *_X)(_A1, _A2))
+               : _Fn(_X) {}
+       _R operator()(_A1 _X, _A2 _Y) const
+               {return (_Fn(_X, _Y)); }
+protected:
+       _R (__cdecl *_Fn)(_A1, _A2);
+       };
+               
+template<class _A, class _R> inline
+       pointer_to_unary_function<_A, _R>
+               ptr_fun(_R (__cdecl *_X)(_A))
+               {return (pointer_to_unary_function<_A, _R>(_X)); }
+template<class _A1, class _A2, class _R> inline
+       pointer_to_binary_function<_A1, _A2, _R>
+               ptr_fun(_R (__cdecl *_X)(_A1, _A2))
+               {return (pointer_to_binary_function<_A1, _A2, _R>(_X)); }
+               
+template<class _R, class _Ty>
+       class mem_fun_t : public unary_function<_Ty *, _R> {
+public:
+       explicit mem_fun_t(_R (_Ty::*_Pm)())
+               : _Ptr(_Pm) {}
+       _R operator()(_Ty *_P) const
+               {return ((_P->*_Ptr)()); }
+private:
+       _R (_Ty::*_Ptr)();
+       };
+               
+template<class _R, class _Ty> inline
+       mem_fun_t<_R, _Ty> mem_fun(_R (_Ty::*_Pm)())
+       {return (mem_fun_t<_R, _Ty>(_Pm)); }
+               
+template<class _R, class _Ty, class _A>
+       class mem_fun1_t : public binary_function<_Ty *, _A, _R> {
+public:
+       explicit mem_fun1_t(_R (_Ty::*_Pm)(_A))
+               : _Ptr(_Pm) {}
+       _R operator()(_Ty *_P, _A _Arg) const
+               {return ((_P->*_Ptr)(_Arg)); }
+private:
+       _R (_Ty::*_Ptr)(_A);
+       };
+               
+template<class _R, class _Ty, class _A> inline
+       mem_fun1_t<_R, _Ty, _A> mem_fun1(_R (_Ty::*_Pm)(_A))
+       {return (mem_fun1_t<_R, _Ty, _A>(_Pm)); }
+               
+template<class _R, class _Ty>
+       class mem_fun_ref_t : public unary_function<_Ty, _R> {
+public:
+       explicit mem_fun_ref_t(_R (_Ty::*_Pm)())
+               : _Ptr(_Pm) {}
+       _R operator()(_Ty& _X) const
+               {return ((_X.*_Ptr)()); }
+private:
+       _R (_Ty::*_Ptr)();
+       };
+               
+template<class _R, class _Ty> inline
+       mem_fun_ref_t<_R, _Ty> mem_fun_ref(_R (_Ty::*_Pm)())
+       {return (mem_fun_ref_t<_R, _Ty>(_Pm)); }
+               
+template<class _R, class _Ty, class _A>
+       class mem_fun1_ref_t : public binary_function<_Ty *, _A, _R> {
+public:
+       explicit mem_fun1_ref_t(_R (_Ty::*_Pm)(_A))
+               : _Ptr(_Pm) {}
+       _R operator()(_Ty& _X, _A _Arg) const
+               {return ((_X.*_Ptr)(_Arg)); }
+private:
+       _R (_Ty::*_Ptr)(_A);
+       };
+               
+template<class _R, class _Ty, class _A> inline
+       mem_fun1_ref_t<_R, _Ty, _A> mem_fun1_ref(_R (_Ty::*_Pm)(_A))
+       {return (mem_fun1_ref_t<_R, _Ty, _A>(_Pm)); }
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+               
+template<class _Ty, class _A = allocator<_Ty> >
+       class list {
+protected:
+       struct _Node;
+       friend struct _Node;
+       typedef _Node  * _Nodeptr;
+       struct _Node {
+               _Nodeptr _Next, _Prev;
+               _Ty _Value;
+               };
+       struct _Acc;
+       friend struct _Acc;
+       struct _Acc {
+               typedef _Nodeptr  & _Nodepref;
+               typedef _A::reference _Vref;
+               static _Nodepref _Next(_Nodeptr _P)
+                       {return ((_Nodepref)(*_P)._Next); }
+               static _Nodepref _Prev(_Nodeptr _P)
+                       {return ((_Nodepref)(*_P)._Prev); }
+               static _Vref _Value(_Nodeptr _P)
+                       {return ((_Vref)(*_P)._Value); }
+               };
+public:
+       typedef list<_Ty, _A> _Myt;
+       typedef _A allocator_type;
+       typedef _A::size_type size_type;
+       typedef _A::difference_type difference_type;
+       typedef _A::pointer _Tptr;
+       typedef _A::const_pointer _Ctptr;
+       typedef _A::reference reference;
+       typedef _A::const_reference const_reference;
+       typedef _A::value_type value_type;
+               
+       class iterator;
+       class const_iterator;
+       friend class const_iterator;
+       class const_iterator : public _Bidit<_Ty, difference_type> {
+       public:
+               const_iterator()
+                       {}
+               const_iterator(_Nodeptr _P)
+                       : _Ptr(_P) {}
+               const_iterator(const iterator& _X)
+                       : _Ptr(_X._Ptr) {}
+               const_reference operator*() const
+                       {return (_Acc::_Value(_Ptr)); }
+               _Ctptr operator->() const
+                       {return (&**this); }
+               const_iterator& operator++()
+                       {_Ptr = _Acc::_Next(_Ptr);
+                       return (*this); }
+               const_iterator operator++(int)
+                       {const_iterator _Tmp = *this;
+                       ++*this;
+                       return (_Tmp); }
+               const_iterator& operator--()
+                       {_Ptr = _Acc::_Prev(_Ptr);
+                       return (*this); }
+               const_iterator operator--(int)
+                       {const_iterator _Tmp = *this;
+                       --*this;
+                       return (_Tmp); }
+               bool operator==(const const_iterator& _X) const
+                       {return (_Ptr == _X._Ptr); }
+               bool operator!=(const const_iterator& _X) const
+                       {return (!(*this == _X)); }
+               _Nodeptr _Mynode() const
+                       {return (_Ptr); }
+       protected:
+               _Nodeptr _Ptr;
+               };
+               
+       friend class iterator;
+       class iterator : public const_iterator {
+       public:
+               iterator()
+                       {}
+               iterator(_Nodeptr _P)
+                       : const_iterator(_P) {}
+               reference operator*() const
+                       {return (_Acc::_Value(_Ptr)); }
+               _Tptr operator->() const
+                       {return (&**this); }
+               iterator& operator++()
+                       {_Ptr = _Acc::_Next(_Ptr);
+                       return (*this); }
+               iterator operator++(int)
+                       {iterator _Tmp = *this;
+                       ++*this;
+                       return (_Tmp); }
+               iterator& operator--()
+                       {_Ptr = _Acc::_Prev(_Ptr);
+                       return (*this); }
+               iterator operator--(int)
+                       {iterator _Tmp = *this;
+                       --*this;
+                       return (_Tmp); }
+               bool operator==(const iterator& _X) const
+                       {return (_Ptr == _X._Ptr); }
+               bool operator!=(const iterator& _X) const
+                       {return (!(*this == _X)); }
+               };
+       typedef reverse_bidirectional_iterator<iterator,
+               value_type, reference, _Tptr, difference_type>
+                       reverse_iterator;
+       typedef reverse_bidirectional_iterator<const_iterator,
+               value_type, const_reference, _Ctptr, difference_type>
+                       const_reverse_iterator;
+       explicit list(const _A& _Al = _A())
+               : allocator(_Al),
+               _Head(_Buynode()), _Size(0) {}
+       explicit list(size_type _N, const _Ty& _V = _Ty(),
+               const _A& _Al = _A())
+               : allocator(_Al),
+               _Head(_Buynode()), _Size(0)
+               {insert(begin(), _N, _V); }
+       list(const _Myt& _X)
+               : allocator(_X.allocator),
+               _Head(_Buynode()), _Size(0)
+               {insert(begin(), _X.begin(), _X.end()); }
+       list(const _Ty *_F, const _Ty *_L, const _A& _Al = _A())
+               : allocator(_Al),
+               _Head(_Buynode()), _Size(0)
+               {insert(begin(), _F, _L); }
+       typedef const_iterator _It;
+       list(_It _F, _It _L, const _A& _Al = _A())
+               : allocator(_Al),
+               _Head(_Buynode()), _Size(0)
+               {insert(begin(), _F, _L); }
+       ~list()
+               {erase(begin(), end());
+               _Freenode(_Head);
+               _Head = 0, _Size = 0; }
+       _Myt& operator=(const _Myt& _X)
+               {if (this != &_X)
+                       {iterator _F1 = begin();
+                       iterator _L1 = end();
+                       const_iterator _F2 = _X.begin();
+                       const_iterator _L2 = _X.end();
+                       for (; _F1 != _L1 && _F2 != _L2; ++_F1, ++_F2)
+                               *_F1 = *_F2;
+                       erase(_F1, _L1);
+                       insert(_L1, _F2, _L2); }
+               return (*this); }
+       iterator begin()
+               {return (iterator(_Acc::_Next(_Head))); }
+       const_iterator begin() const
+               {return (const_iterator(_Acc::_Next(_Head))); }
+       iterator end()
+               {return (iterator(_Head)); }
+       const_iterator end() const
+               {return (const_iterator(_Head)); }
+       reverse_iterator rbegin()
+               {return (reverse_iterator(end())); }
+       const_reverse_iterator rbegin() const
+               {return (const_reverse_iterator(end())); }
+       reverse_iterator rend()
+               {return (reverse_iterator(begin())); }
+       const_reverse_iterator rend() const
+               {return (const_reverse_iterator(begin())); }
+       void resize(size_type _N, _Ty _X = _Ty())
+               {if (size() < _N)
+                       insert(end(), _N - size(), _X);
+               else
+                       while (_N < size())
+                               pop_back(); }
+       size_type size() const
+               {return (_Size); }
+       size_type max_size() const
+               {return (allocator.max_size()); }
+       bool empty() const
+               {return (size() == 0); }
+       _A get_allocator() const
+               {return (allocator); }
+       reference front()
+               {return (*begin()); }
+       const_reference front() const
+               {return (*begin()); }
+       reference back()
+               {return (*(--end())); }
+       const_reference back() const
+               {return (*(--end())); }
+       void push_front(const _Ty& _X)
+               {insert(begin(), _X); }
+       void pop_front()
+               {erase(begin()); }
+       void push_back(const _Ty& _X)
+               {insert(end(), _X); }
+       void pop_back()
+               {erase(--end()); }
+       void assign(_It _F, _It _L)
+               {erase(begin(), end());
+               insert(begin(), _F, _L); }
+       void assign(size_type _N, const _Ty& _X = _Ty())
+               {erase(begin(), end());
+               insert(begin(), _N, _X); }
+       iterator insert(iterator _P, const _Ty& _X = _Ty())
+               {_Nodeptr _S = _P._Mynode();
+               _Acc::_Prev(_S) = _Buynode(_S, _Acc::_Prev(_S));
+               _S = _Acc::_Prev(_S);
+               _Acc::_Next(_Acc::_Prev(_S)) = _S;
+               allocator.construct(&_Acc::_Value(_S), _X);
+               ++_Size;
+               return (iterator(_S)); }
+       void insert(iterator _P, size_type _M, const _Ty& _X)
+               {for (; 0 < _M; --_M)
+                       insert(_P, _X); }
+       void insert(iterator _P, const _Ty *_F, const _Ty *_L)
+               {for (; _F != _L; ++_F)
+                       insert(_P, *_F); }
+       void insert(iterator _P, _It _F, _It _L)
+               {for (; _F != _L; ++_F)
+                       insert(_P, *_F); }
+       iterator erase(iterator _P)
+               {_Nodeptr _S = (_P++)._Mynode();
+               _Acc::_Next(_Acc::_Prev(_S)) = _Acc::_Next(_S);
+               _Acc::_Prev(_Acc::_Next(_S)) = _Acc::_Prev(_S);
+               allocator.destroy(&_Acc::_Value(_S));
+               _Freenode(_S);
+               --_Size;
+               return (_P); }
+       iterator erase(iterator _F, iterator _L)
+               {while (_F != _L)
+                       erase(_F++);
+               return (_F); }
+       void clear()
+               {erase(begin(), end()); }
+       void swap(_Myt& _X)
+               {if (allocator == _X.allocator)
+                       {std::swap(_Head, _X._Head);
+                       std::swap(_Size, _X._Size); }
+               else
+                       {iterator _P = begin();
+                       splice(_P, _X);
+                       _X.splice(_X.begin(), *this, _P, end()); }}
+       friend void swap(_Myt& _X, _Myt& _Y)
+               {_X.swap(_Y); }
+       void splice(iterator _P, _Myt& _X)
+               {if (!_X.empty())
+                       {_Splice(_P, _X, _X.begin(), _X.end());
+                       _Size += _X._Size;
+                       _X._Size = 0; }}
+       void splice(iterator _P, _Myt& _X, iterator _F)
+               {iterator _L = _F;
+               if (_P != _F && _P != ++_L)
+                       {_Splice(_P, _X, _F, _L);
+                       ++_Size;
+                       --_X._Size; }}
+       void splice(iterator _P, _Myt& _X, iterator _F, iterator _L)
+               {if (_F != _L)
+                       {if (&_X != this)
+                               {difference_type _N = 0;
+                               _Distance(_F, _L, _N);
+                               _Size += _N;
+                               _X._Size -= _N; }
+                       _Splice(_P, _X, _F, _L); }}
+       void remove(const _Ty& _V)
+               {iterator _L = end();
+               for (iterator _F = begin(); _F != _L; )
+                       if (*_F == _V)
+                               erase(_F++);
+                       else
+                               ++_F; }
+       typedef binder2nd<not_equal_to<_Ty> > _Pr1;
+       void remove_if(_Pr1 _Pr)
+               {iterator _L = end();
+               for (iterator _F = begin(); _F != _L; )
+                       if (_Pr(*_F))
+                               erase(_F++);
+                       else
+                               ++_F; }
+       void unique()
+               {iterator _F = begin(), _L = end();
+               if (_F != _L)
+                       for (iterator _M = _F; ++_M != _L; _M = _F)
+                               if (*_F == *_M)
+                                       erase(_M);
+                               else
+                                       _F = _M; }
+       typedef not_equal_to<_Ty> _Pr2;
+       void unique(_Pr2 _Pr)
+               {iterator _F = begin(), _L = end();
+               if (_F != _L)
+                       for (iterator _M = _F; ++_M != _L; _M = _F)
+                               if (_Pr(*_F, *_M))
+                                       erase(_M);
+                               else
+                                       _F = _M; }
+       void merge(_Myt& _X)
+               {if (&_X != this)
+                       {iterator _F1 = begin(), _L1 = end();
+                       iterator _F2 = _X.begin(), _L2 = _X.end();
+                       while (_F1 != _L1 && _F2 != _L2)
+                               if (*_F2 < *_F1)
+                                       {iterator _Mid2 = _F2;
+                                       _Splice(_F1, _X, _F2, ++_Mid2);
+                                       _F2 = _Mid2; }
+                               else
+                                       ++_F1;
+                       if (_F2 != _L2)
+                               _Splice(_L1, _X, _F2, _L2);
+                       _Size += _X._Size;
+                       _X._Size = 0; }}
+       typedef greater<_Ty> _Pr3;
+       void merge(_Myt& _X, _Pr3 _Pr)
+               {if (&_X != this)
+                       {iterator _F1 = begin(), _L1 = end();
+                       iterator _F2 = _X.begin(), _L2 = _X.end();
+                       while (_F1 != _L1 && _F2 != _L2)
+                               if (_Pr(*_F2, *_F1))
+                                       {iterator _Mid2 = _F2;
+                                       _Splice(_F1, _X, _F2, ++_Mid2);
+                                       _F2 = _Mid2; }
+                               else
+                                       ++_F1;
+                       if (_F2 != _L2)
+                               _Splice(_L1, _X, _F2, _L2);
+                       _Size += _X._Size;
+                       _X._Size = 0; }}
+       void sort()
+               {if (2 <= size())
+                       {const size_t _MAXN = 15;
+                       _Myt _X(allocator), _A[_MAXN + 1];
+                       size_t _N = 0;
+                       while (!empty())
+                               {_X.splice(_X.begin(), *this, begin());
+                               size_t _I;
+                               for (_I = 0; _I < _N && !_A[_I].empty(); ++_I)
+                                       {_A[_I].merge(_X);
+                                       _A[_I].swap(_X); }
+                               if (_I == _MAXN)
+                                       _A[_I].merge(_X);
+                               else
+                                       {_A[_I].swap(_X);
+                                       if (_I == _N)
+                                               ++_N; }}
+                       while (0 < _N)
+                               merge(_A[--_N]); }}
+       void sort(_Pr3 _Pr)
+               {if (2 <= size())
+                       {const size_t _MAXN = 15;
+                       _Myt _X(allocator), _A[_MAXN + 1];
+                       size_t _N = 0;
+                       while (!empty())
+                               {_X.splice(_X.begin(), *this, begin());
+                               size_t _I;
+                               for (_I = 0; _I < _N && !_A[_I].empty(); ++_I)
+                                       {_A[_I].merge(_X, _Pr);
+                                       _A[_I].swap(_X); }
+                               if (_I == _MAXN)
+                                       _A[_I].merge(_X, _Pr);
+                               else
+                                       {_A[_I].swap(_X);
+                                       if (_I == _N)
+                                               ++_N; }}
+                       while (0 < _N)
+                               merge(_A[--_N], _Pr); }}
+       void reverse()
+               {if (2 <= size())
+                       {iterator _L = end();
+                       for (iterator _F = ++begin(); _F != _L; )
+                               {iterator _M = _F;
+                               _Splice(begin(), *this, _M, ++_F); }}}
+protected:
+       _Nodeptr _Buynode(_Nodeptr _Narg = 0, _Nodeptr _Parg = 0)
+               {_Nodeptr _S = (_Nodeptr)allocator._Charalloc(
+                       1 * sizeof (_Node));
+               _Acc::_Next(_S) = _Narg != 0 ? _Narg : _S;
+               _Acc::_Prev(_S) = _Parg != 0 ? _Parg : _S;
+               return (_S); }
+       void _Freenode(_Nodeptr _S)
+               {allocator.deallocate(_S, 1); }
+       void _Splice(iterator _P, _Myt& _X, iterator _F, iterator _L)
+               {if (allocator == _X.allocator)
+                       {_Acc::_Next(_Acc::_Prev(_L._Mynode())) =
+                               _P._Mynode();
+                       _Acc::_Next(_Acc::_Prev(_F._Mynode())) =
+                               _L._Mynode();
+                       _Acc::_Next(_Acc::_Prev(_P._Mynode())) =
+                               _F._Mynode();
+                       _Nodeptr _S = _Acc::_Prev(_P._Mynode());
+                       _Acc::_Prev(_P._Mynode()) =
+                               _Acc::_Prev(_L._Mynode());
+                       _Acc::_Prev(_L._Mynode()) =
+                               _Acc::_Prev(_F._Mynode());
+                       _Acc::_Prev(_F._Mynode()) = _S; }
+               else
+                       {insert(_P, _F, _L);
+                       _X.erase(_F, _L); }}
+       void _Xran() const
+               {throw out_of_range("invalid list<T> subscript"); }
+       _A allocator;
+       _Nodeptr _Head;
+       size_type _Size;
+       };
+               
+template<class _Ty, class _A> inline
+       bool operator==(const list<_Ty, _A>& _X,
+               const list<_Ty, _A>& _Y)
+       {return (_X.size() == _Y.size()
+               && equal(_X.begin(), _X.end(), _Y.begin())); }
+template<class _Ty, class _A> inline
+       bool operator!=(const list<_Ty, _A>& _X,
+               const list<_Ty, _A>& _Y)
+       {return (!(_X == _Y)); }
+template<class _Ty, class _A> inline
+       bool operator<(const list<_Ty, _A>& _X,
+               const list<_Ty, _A>& _Y)
+       {return (lexicographical_compare(_X.begin(), _X.end(),
+               _Y.begin(), _Y.end())); }
+template<class _Ty, class _A> inline
+       bool operator>(const list<_Ty, _A>& _X,
+               const list<_Ty, _A>& _Y)
+       {return (_Y < _X); }
+template<class _Ty, class _A> inline
+       bool operator<=(const list<_Ty, _A>& _X,
+               const list<_Ty, _A>& _Y)
+       {return (!(_Y < _X)); }
+template<class _Ty, class _A> inline
+       bool operator>=(const list<_Ty, _A>& _X,
+               const list<_Ty, _A>& _Y)
+       {return (!(_X < _Y)); }
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+       
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ extern int * __cdecl _errno(void);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+
+class type_info {
+public:
+     virtual ~type_info();
+     int operator==(const type_info& rhs) const;
+     int operator!=(const type_info& rhs) const;
+     int before(const type_info& rhs) const;
+     const char* name() const;
+     const char* raw_name() const;
+private:
+    void *_m_data;
+    char _m_d_name[1];
+    type_info(const type_info& rhs);
+    type_info& operator=(const type_info& rhs);
+};
+
+
+
+
+ namespace std {
+               
+class  bad_cast : public exception {
+public:
+       bad_cast(const char *_S = "bad cast") throw ()
+               : exception(_S) {}
+       virtual ~bad_cast() throw ()
+               {}
+protected:
+       virtual void _Doraise() const
+               {throw (*this); }
+       };
+               
+class  bad_typeid : public exception {
+public:
+       bad_typeid(const char *_S = "bad typeid") throw ()
+               : exception(_S) {}
+       virtual ~bad_typeid() throw ()
+               {}
+protected:
+       virtual void _Doraise() const
+               {throw (*this); }
+       };
+
+class  __non_rtti_object : public bad_typeid {
+public:
+    __non_rtti_object(const char * what_arg) : bad_typeid(what_arg) {}
+};
+using ::type_info;
+ };
+using std::__non_rtti_object;
+
+
+
+
+
+
+
+
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ extern unsigned short _ctype[];
+ extern unsigned short *_pctype;
+
+ extern wctype_t *_pwctype;
+
+
+
+
+
+
+
+
+
+
+                                
+
+
+
+
+
+
+
+
+
+
+
+
+
+ int __cdecl _isctype(int, int);
+ int __cdecl isalpha(int);
+ int __cdecl isupper(int);
+ int __cdecl islower(int);
+ int __cdecl isdigit(int);
+ int __cdecl isxdigit(int);
+ int __cdecl isspace(int);
+ int __cdecl ispunct(int);
+ int __cdecl isalnum(int);
+ int __cdecl isprint(int);
+ int __cdecl isgraph(int);
+ int __cdecl iscntrl(int);
+ int __cdecl toupper(int);
+ int __cdecl tolower(int);
+ int __cdecl _tolower(int);
+ int __cdecl _toupper(int);
+ int __cdecl __isascii(int);
+ int __cdecl __toascii(int);
+ int __cdecl __iscsymf(int);
+ int __cdecl __iscsym(int);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+
+
+extern "C" {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+struct lconv {
+        char *decimal_point;
+        char *thousands_sep;
+        char *grouping;
+        char *int_curr_symbol;
+        char *currency_symbol;
+        char *mon_decimal_point;
+        char *mon_thousands_sep;
+        char *mon_grouping;
+        char *positive_sign;
+        char *negative_sign;
+        char int_frac_digits;
+        char frac_digits;
+        char p_cs_precedes;
+        char p_sep_by_space;
+        char n_cs_precedes;
+        char n_sep_by_space;
+        char p_sign_posn;
+        char n_sign_posn;
+        };
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ char * __cdecl setlocale(int, const char *);
+ struct lconv * __cdecl localeconv(void);
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+               
+
+
+
+
+
+
+
+
+
+
+
+               
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct _Collvec {
+       unsigned long _Hand;    
+       unsigned int _Page;             
+       } _Collvec;
+
+typedef struct _Ctypevec {
+       unsigned long _Hand;    
+       unsigned int _Page;             
+       const short *_Table;
+       int _Delfl;
+       } _Ctypevec;
+
+typedef struct _Cvtvec {
+       unsigned long _Hand;    
+       unsigned int _Page;             
+       } _Cvtvec;
+
+               
+extern "C" {
+ _Collvec __cdecl _Getcoll();
+ _Ctypevec __cdecl _Getctype();
+ _Cvtvec __cdecl _Getcvt();
+char *__cdecl _Getdays();
+char *__cdecl _Getmonths();
+void *__cdecl _Gettnames();
+ int __cdecl _Mbrtowc(wchar_t *, const char *, size_t,
+       mbstate_t *, const _Cvtvec *);
+extern float __cdecl _Stof(const char *, char **, long);
+extern double __cdecl _Stod(const char *, char **, long);
+extern long double __cdecl _Stold(const char *, char **, long);
+ int __cdecl _Strcoll(const char *, const char *,
+       const char *, const char *, const _Collvec *);
+size_t __cdecl _Strftime(char *, size_t, const char *,
+       const struct tm *, void *);
+ size_t __cdecl _Strxfrm(char *, char *,
+       const char *, const char *, const _Collvec *);
+ int __cdecl _Tolower(int, const _Ctypevec *);
+ int __cdecl _Toupper(int, const _Ctypevec *);
+ int __cdecl _Wcrtomb(char *, wchar_t, mbstate_t *,
+       const _Cvtvec *);
+ int __cdecl _Wcscoll(const wchar_t *, const wchar_t *,
+       const wchar_t *, const wchar_t *, const _Collvec *);
+ size_t __cdecl _Wcsxfrm(wchar_t *, wchar_t *,
+       const wchar_t *, const wchar_t *, const _Collvec *);
+}
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+
+               
+class  _Timevec {
+public:
+       _Timevec(void *_P = 0)
+               : _Ptr(_P) {}
+       _Timevec(const _Timevec& _Rhs)
+               {*this = _Rhs; }
+       ~_Timevec()
+               {_free_dbg(_Ptr, 1); }
+       _Timevec& operator=(const _Timevec& _Rhs)
+               {_Ptr = _Rhs._Ptr;
+               ((_Timevec *)&_Rhs)->_Ptr = 0;
+               return (*this); }
+       void *_Getptr() const
+               {return (_Ptr); }
+private:
+       void *_Ptr;
+       };
+               
+class  _Locinfo {
+public:
+       typedef ::_Collvec _Collvec;
+       typedef ::_Ctypevec _Ctypevec;
+       typedef ::_Cvtvec _Cvtvec;
+       typedef std::_Timevec _Timevec;
+       _Locinfo(const char * = "C");
+       _Locinfo(int, const char *);
+       ~_Locinfo();
+       _Locinfo& _Addcats(int, const char *);
+       string _Getname() const
+               {return (_Nname); }
+       _Collvec _Getcoll() const
+               {return (::_Getcoll()); }
+       _Ctypevec _Getctype() const
+               {return (::_Getctype()); }
+       _Cvtvec _Getcvt() const
+               {return (::_Getcvt()); }
+       const lconv *_Getlconv() const
+               {return (localeconv()); }
+       _Timevec _Gettnames() const
+               {return (_Timevec(::_Gettnames())); }
+       const char *_Getdays() const
+               {char *_S = ::_Getdays();
+               if (_S != 0)
+                       {((_Locinfo *)this)->_Days = _S, _free_dbg(_S, 1); }
+               return (_Days.size() != 0 ? _Days.c_str()
+                               : ":Sun:Sunday:Mon:Monday:Tue:Tuesday"
+                               ":Wed:Wednesday:Thu:Thursday:Fri:Friday"
+                               ":Sat:Saturday"); }
+       const char *_Getmonths() const
+               {char *_S = ::_Getmonths();
+               if (_S != 0)
+                       {((_Locinfo *)this)->_Months = _S, _free_dbg(_S, 1); }
+               return (_Months.size() != 0 ? _Months.c_str()
+                               : ":Jan:January:Feb:February:Mar:March"
+                               ":Apr:April:May:May:Jun:June"
+                               ":Jul:July:Aug:August:Sep:September"
+                               ":Oct:October:Nov:November:Dec:December"); }
+       const char *_Getfalse() const
+               {return ("false"); }
+       const char *_Gettrue() const
+               {return ("true"); }
+       const char *_Getno() const
+               {return ("no"); }
+       const char *_Getyes() const
+               {return ("yes"); }
+private:
+       string _Days, _Months, _Oname, _Nname;
+       };
+               
+template<class _E> inline
+       int __cdecl _Strcoll(const _E *_F1, const _E *_L1,
+               const _E *_F2, const _E *_L2, const _Locinfo::_Collvec *)
+       {for (; _F1 != _L1 && _F2 != _L2; ++_F1, ++_F2)
+               if (*_F1 < *_F2)
+                       return (-1);
+               else if (*_F2 < *_F1)
+                       return (+1);
+       return (_F2 != _L2 ? -1 : _F1 != _L1 ? +1 : 0); }
+template<class _E> inline
+       size_t __cdecl _Strxfrm(_E *_F1, _E *_L1,
+               const _E *_F2, const _E *_L2, const _Locinfo::_Collvec *)
+       {size_t _N = _L2 - _F2;
+       if (_N <= _L1 - _F1)
+               memcpy(_F1, _F2, _N * sizeof (_E));
+       return (_N); }
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+                
+class  locale {
+public:
+        enum _Category {collate = ((1 << (1)) >> 1), ctype = ((1 << (2)) >> 1),
+                monetary = ((1 << (3)) >> 1), numeric = ((1 << (4)) >> 1),
+                time = ((1 << (5)) >> 1), messages = ((1 << (6)) >> 1),
+                all = (((1 << (7)) >> 1) - 1), none = 0};
+        typedef int category;
+                        
+        class  id {
+        public:
+                operator size_t()
+                        {_Lockit _Lk;
+                        if (_Id == 0)
+                                _Id = ++_Id_cnt;
+                        return (_Id); }
+        private:
+                size_t _Id;
+                static int _Id_cnt;
+                };
+        class _Locimp;
+                        
+        class  facet {
+                friend class locale;
+                friend class _Locimp;
+        public:
+                static size_t __cdecl _Getcat()
+                        {return ((size_t)(-1)); }
+                void _Incref()
+                        {_Lockit _Lk;
+                        if (_Refs < (size_t)(-1))
+                                ++_Refs; }
+                facet *_Decref()
+                        {_Lockit _Lk;
+                        if (0 < _Refs && _Refs < (size_t)(-1))
+                                --_Refs;
+                        return (_Refs == 0 ? this : 0); }
+        public:
+                virtual ~facet()
+                        {}
+        protected:
+                explicit facet(size_t _R = 0)
+                        : _Refs(_R) {}
+        private:
+                facet(const facet&);    
+                const facet& operator=(const facet&);   
+                size_t _Refs;
+                };
+                        
+        class _Locimp : public facet {
+        public:
+                ~_Locimp();
+        private:
+                friend class locale;
+                _Locimp(bool _Xp = false);
+                _Locimp(const _Locimp&);
+                void _Addfac(facet *, size_t);
+                static _Locimp *__cdecl _Makeloc(const _Locinfo&,
+                        category, _Locimp *, const locale *);
+                static void __cdecl _Makewloc(const _Locinfo&,
+                        category, _Locimp *, const locale *);
+                static void __cdecl _Makexloc(const _Locinfo&,
+                        category, _Locimp *, const locale *);
+                facet **_Fv;
+                size_t _Nfv;
+                category _Cat;
+                bool _Xpar;
+                string _Name;
+                static  _Locimp *_Clocptr, *_Global;
+                };
+        locale& _Addfac(facet *, size_t, size_t);
+        bool operator()(const string&, const string&) const;
+        locale() throw ()
+                : _Ptr(_Init())
+                {_Lockit _lk;
+                _Locimp::_Global->_Incref(); }
+        locale(_Uninitialized)
+                {}
+        locale(const locale& _X) throw ()
+                : _Ptr(_X._Ptr)
+                {_Ptr->_Incref(); }
+        locale(const locale&, const locale&, category);
+        explicit locale(const char *, category = all);
+        locale(const locale&, const char *, category);
+        ~locale() throw ()
+                {if (_Ptr != 0)
+                        delete _Ptr->_Decref(); }
+        locale& operator=(const locale& _X) throw ()
+                {if (_Ptr != _X._Ptr)
+                        {delete _Ptr->_Decref();
+                        _Ptr = _X._Ptr;
+                        _Ptr->_Incref(); }
+                return (*this); }
+        string name() const
+                {return (_Ptr->_Name); }
+        const facet *_Getfacet(size_t _Id, bool _Xp = false) const;
+        bool _Iscloc() const;
+        bool operator==(const locale& _X) const;
+        bool operator!=(const locale& _X) const
+                {return (!(*this == _X)); }
+        static const locale& __cdecl classic();
+        static locale __cdecl global(const locale&);
+        static locale __cdecl empty();
+private:
+        locale(_Locimp *_P)
+                : _Ptr(_P) {}
+        static _Locimp *__cdecl _Init();
+        static void __cdecl _Tidy();
+        _Locimp *_Ptr;
+        };
+;
+                
+template<class _F>
+        class _Tidyfac {
+public:
+        static _F *__cdecl _Save(_F *_Fac)
+                {_Lockit _Lk;
+                _Facsav = _Fac;
+                _Facsav->_Incref();
+                atexit(_Tidy);
+                return (_Fac); }
+        static void __cdecl _Tidy()
+                {_Lockit _Lk;
+                delete _Facsav->_Decref();
+                _Facsav = 0; }
+private:
+        static _F *_Facsav;
+        };
+template<class _F>
+        _F *_Tidyfac<_F>::_Facsav = 0;
+template<class _F> inline
+        locale _Addfac(locale _X, _F *_Fac)
+                {_Lockit _Lk;
+                return (_X._Addfac(_Fac, _F::id, _F::_Getcat())); }
+template<class _F> inline
+        const _F& __cdecl use_facet(const locale& _L, const _F *,
+                bool _Cfacet)
+        {static const locale::facet *_Psave = 0;
+        _Lockit _Lk;
+        size_t _Id = _F::id;
+        const locale::facet *_Pf = _L._Getfacet(_Id, true);
+        if (_Pf != 0)
+                ;
+        else if (!_Cfacet || !_L._Iscloc())
+                throw bad_cast("missing locale facet");
+        else if (_Psave == 0)
+                _Pf = _Psave = _Tidyfac<_F>::_Save(new _F);
+        else
+                _Pf = _Psave;
+        return (*(const _F *)_Pf); }
+                
+
+template<class _E> inline
+        int _Narrow(_E _C)      
+        {return ((unsigned char)(char)_C); }
+inline int _Narrow(wchar_t _C)
+        {return (wctob(_C)); }
+                
+
+template<class _E> inline
+        _E _Widen(char _Ch, _E *)       
+        {return (_Ch); }
+inline wchar_t _Widen(char _Ch, wchar_t *)
+        {return (btowc(_Ch)); }
+                
+template<class _E, class _II> inline
+        int __cdecl _Getloctxt(_II& _F, _II& _L, size_t _N,
+                const _E *_S)
+        {for (size_t _I = 0; _S[_I] != (_E)0; ++_I)
+                if (_S[_I] == _S[0])
+                        ++_N;
+        string _Str(_N, '\0');
+        int _Ans = -2;
+        for (size_t _J = 1; ; ++_J, ++_F, _Ans = -1)
+                {bool  _Pfx;
+                size_t _I, _K;
+                for (_I = 0, _K = 0, _Pfx = false; _K < _N; ++_K)
+                        {for (; _S[_I] != (_E)0 && _S[_I] != _S[0]; ++_I)
+                                ;
+                        if (_Str[_K] != '\0')
+                                _I += _Str[_K];
+                        else if (_S[_I += _J] == _S[0] || _S[_I] == (_E)0)
+                                {_Str[_K] = _J < 127 ? _J : 127;
+                                _Ans = _K; }
+                        else if (_F == _L || _S[_I] != *_F)
+                                _Str[_K] = _J < 127 ? _J : 127;
+                        else
+                                _Pfx = true; }
+                if (!_Pfx || _F == _L)
+                        break; }
+        return (_Ans); }
+                
+
+template<class _E> inline
+        _E *__cdecl _Maklocstr(const char *_S, _E *)
+        {size_t _L = strlen(_S) + 1;
+        _E *_X = new _E[_L];
+        for (_E *_P = _X; 0 < _L; --_L, ++_P, ++_S)
+                *_P = _Widen(*_S, (_E *)0);
+        return (_X); }
+                
+class  codecvt_base : public locale::facet {
+public:
+        enum _Result {ok, partial, error, noconv};
+        typedef int result;
+        codecvt_base(size_t _R = 0)
+                : locale::facet(_R) {}
+        bool always_noconv() const throw ()
+                {return (do_always_noconv()); }
+        int max_length() const throw ()
+                {return (do_max_length()); }
+        int encoding() const throw ()
+                {return (do_encoding()); }
+protected:
+        virtual bool do_always_noconv() const throw ()
+                {return (true); }
+        virtual int do_max_length() const throw ()
+                {return (1); }
+        virtual int do_encoding() const throw ()
+                {return (1); }
+        };
+;
+                
+template<class _E, class _To, class _St>
+        class codecvt : public codecvt_base {
+public:
+        typedef _E from_type;
+        typedef _To to_type;
+        typedef _St state_type;
+        result in(_St& _State,
+                const _To *_F1, const _To *_L1, const _To *& _Mid1,
+                _E *_F2, _E *_L2, _E *& _Mid2) const
+                {return (do_in(_State,
+                        _F1, _L1, _Mid1, _F2, _L2, _Mid2)); }
+        result out(_St& _State,
+                const _E *_F1, const _E *_L1, const _E *& _Mid1,
+                _To *_F2, _To *_L2, _To *& _Mid2) const
+                {return (do_out(_State,
+                        _F1, _L1, _Mid1, _F2, _L2, _Mid2)); }
+        int length(_St& _State, const _E *_F1,
+                const _E *_L1, size_t _N2) const throw ()
+                {return (do_length(_State, _F1, _L1, _N2)); }
+        static locale::id id;
+        explicit codecvt(size_t _R = 0)
+                : codecvt_base(_R) {_Init(_Locinfo()); }
+        codecvt(const _Locinfo& _Lobj, size_t _R = 0)
+                : codecvt_base(_R) {_Init(_Lobj); }
+        static size_t __cdecl _Getcat()
+                {return (2); }
+public:
+        virtual ~codecvt()
+                {};
+protected:
+        void _Init(const _Locinfo& _Lobj)
+                {_Cvt = _Lobj._Getcvt(); }
+        virtual result do_in(_St& _State,
+                const _To *_F1, const _To *, const _To *& _Mid1,
+                _E *_F2, _E *, _E *& _Mid2) const
+                {_Mid1 = _F1, _Mid2 = _F2;
+                return (noconv); }
+        virtual result do_out(_St& _State,
+                const _E *_F1, const _E *, const _E *& _Mid1,
+                _To *_F2, _To *, _To *& _Mid2) const
+                {_Mid1 = _F1, _Mid2 = _F2;
+                return (noconv); }
+        virtual int do_length(_St& _State, const _E *_F1,
+                const _E *_L1, size_t _N2) const throw ()
+                {return (_N2 < _L1 - _F1 ? _N2 : _L1 - _F1); }
+private:
+        _Locinfo::_Cvtvec _Cvt;
+        };
+template<class _E, class _To, class _St>
+        locale::id codecvt<_E, _To, _St>::id;
+                
+class  codecvt<wchar_t, char, mbstate_t> : public codecvt_base {
+public:
+        typedef wchar_t _E;
+        typedef char _To;
+        typedef mbstate_t _St;
+        typedef _E from_type;
+        typedef _To to_type;
+        typedef _St state_type;
+        result in(_St& _State,
+                const _To *_F1, const _To *_L1, const _To *& _Mid1,
+                _E *_F2, _E *_L2, _E *& _Mid2) const
+                {return (do_in(_State,
+                        _F1, _L1, _Mid1, _F2, _L2, _Mid2)); }
+        result out(_St& _State,
+                const _E *_F1, const _E *_L1, const _E *& _Mid1,
+                _To *_F2, _To *_L2, _To *& _Mid2) const
+                {return (do_out(_State,
+                        _F1, _L1, _Mid1, _F2, _L2, _Mid2)); }
+        int length(_St& _State, const _E *_F1,
+                const _E *_L1, size_t _N2) const throw ()
+                {return (do_length(_State, _F1, _L1, _N2)); }
+        static locale::id id;
+        explicit codecvt(size_t _R = 0)
+                : codecvt_base(_R) {_Init(_Locinfo()); }
+        codecvt(const _Locinfo& _Lobj, size_t _R = 0)
+                : codecvt_base(_R) {_Init(_Lobj); }
+        static size_t __cdecl _Getcat()
+                {return (2); }
+public:
+        virtual ~codecvt()
+                {};
+protected:
+        void _Init(const _Locinfo& _Lobj)
+                {_Cvt = _Lobj._Getcvt(); }
+        virtual result do_in(_St& _State,
+                const _To *_F1, const _To *_L1, const _To *& _Mid1,
+                _E *_F2, _E *_L2, _E *& _Mid2) const
+                {_Mid1 = _F1, _Mid2 = _F2;
+                result _Ans = _Mid1 == _L1 ? ok : partial;
+                int _N;
+                while (_Mid1 != _L1 && _Mid2 != _L2)
+                        switch (_N =
+                                _Mbrtowc(_Mid2, _Mid1, _L1 - _Mid1,
+                                        &_State, &_Cvt))
+                        {case -2:
+                                _Mid1 = _L1;
+                                return (_Ans);
+                        case -1:
+                                return (error);
+                        case 0:
+                                _N = strlen(_Mid1) + 1;
+                        default:        
+                                _Mid1 += _N, ++_Mid2, _Ans = ok; }
+                return (_Ans); }
+        virtual result do_out(_St& _State,
+                const _E *_F1, const _E *_L1, const _E *& _Mid1,
+                _To *_F2, _To *_L2, _To *& _Mid2) const
+                {_Mid1 = _F1, _Mid2 = _F2;
+                result _Ans = _Mid1 == _L1 ? ok : partial;
+                int _N;
+                while (_Mid1 != _L1 && _Mid2 != _L2)
+                        if (__mb_cur_max <= _L2 - _Mid2)
+                                if ((_N =
+                                        _Wcrtomb(_Mid2, *_Mid1, &_State,
+                                                &_Cvt)) <= 0)
+                                        return (error);
+                                else
+                                        ++_Mid1, _Mid2 += _N, _Ans = ok;
+                        else
+                                {_To _Buf[2];
+                                _St _Stsave = _State;
+                                if ((_N =
+                                        _Wcrtomb(_Buf, *_Mid1, &_State,
+                                                &_Cvt)) <= 0)
+                                        return (error);
+                                else if (_L2 - _Mid2 < _N)
+                                        {_State = _Stsave;
+                                        return (_Ans); }
+                                else
+                                        {memcpy(_Mid2, _Buf, _N);
+                                        ++_Mid1, _Mid2 += _N, _Ans = ok; }}
+                return (_Ans); }
+        virtual int do_length(_St& _State, const _E *_F1,
+                const _E *_L1, size_t _N2) const throw ()
+                {const _E *_Mid1;
+                _To _Buf[2];
+                int _N;
+                for (_Mid1 = _F1; _Mid1 != _L1 && 0 < _N2;
+                        ++_Mid1, _N2 -= _N)
+                        if ((_N =
+                                _Wcrtomb(_Buf, *_Mid1, &_State, &_Cvt)) <= 0
+                                        || _N2 < _N)
+                                break;
+                return (_Mid1 - _F1); }
+        virtual bool do_always_noconv() const throw ()
+                {return (false); }
+        virtual int do_max_length() const throw ()
+                {return (2); }
+        virtual int do_encoding() const throw ()
+                {return (0); }
+private:
+        _Locinfo::_Cvtvec _Cvt;
+        };
+                
+template<class _E, class _To, class _St>
+        class codecvt_byname : public codecvt<_E, _To, _St> {
+public:
+        explicit codecvt_byname(const char *_S, size_t _R = 0)
+                : codecvt<_E, _To, _St>(_Locinfo(_S), _R) {}
+public:
+        virtual ~codecvt_byname()
+                {}
+        };
+                
+struct  ctype_base : public locale::facet {
+        enum _Mask {alnum = 0x4|0x2|0x1|0x100, alpha = 0x2|0x1|0x100,
+                cntrl = 0x20, digit = 0x4, graph = 0x4|0x2|0x10|0x1|0x100,
+                lower = 0x2, print = 0x4|0x2|0x10|0x40|0x1|0x100|0x80,
+                punct = 0x10, space = 0x8|0x40|0x000, upper = 0x1,
+                xdigit = 0x80};
+
+        typedef short mask;     
+        ctype_base(size_t _R = 0)
+                : locale::facet(_R) {}
+        };
+                
+template<class _E>
+        class ctype : public ctype_base {
+public:
+        typedef _E char_type;
+        bool is(mask _M, _E _C) const
+                {return (do_is(_M, _C)); }
+        const _E *is(const _E *_F, const _E *_L, mask *_V) const
+                {return (do_is(_F, _L, _V)); }
+        const _E *scan_is(mask _M, const _E *_F,
+                const _E *_L) const
+                {return (do_scan_is(_M, _F, _L)); }
+        const _E *scan_not(mask _M, const _E *_F,
+                const _E *_L) const
+                {return (do_scan_not(_M, _F, _L)); }
+        _E tolower(_E _C) const
+                {return (do_tolower(_C)); }
+        const _E *tolower(_E *_F, const _E *_L) const
+                {return (do_tolower(_F, _L)); }
+        _E toupper(_E _C) const
+                {return (do_toupper(_C)); }
+        const _E *toupper(_E *_F, const _E *_L) const
+                {return (do_toupper(_F, _L)); }
+        _E widen(char _X) const
+                {return (do_widen(_X)); }
+        const char *widen(const char *_F, const char *_L,
+                _E *_V) const
+                {return (do_widen(_F, _L, _V)); }
+        char narrow(_E _C, char _D = '\0') const
+                {return (do_narrow(_C, _D)); }
+        const _E *narrow(const _E *_F, const _E *_L, char _D,
+                char *_V) const
+                {return (do_narrow(_F, _L, _D, _V)); }
+        static locale::id id;
+        explicit ctype(size_t _R = 0)
+                : ctype_base(_R) {_Init(_Locinfo()); }
+        ctype(const _Locinfo& _Lobj, size_t _R = 0)
+                : ctype_base(_R) {_Init(_Lobj); }
+        static size_t __cdecl _Getcat()
+                {return (2); }
+public:
+        virtual ~ctype()
+                {if (_Ctype._Delfl)
+                        _free_dbg((void *)_Ctype._Table, 1); }
+protected:
+        void _Init(const _Locinfo& _Lobj)
+                {_Ctype = _Lobj._Getctype(); }
+        virtual bool do_is(mask _M, _E _C) const
+                {return ((_Ctype._Table[narrow(_C)] & _M) != 0); }
+        virtual const _E *do_is(const _E *_F, const _E *_L,
+                mask *_V) const
+                {for (; _F != _L; ++_F, ++_V)
+                        *_V = _Ctype._Table[narrow(*_F)];
+                return (_F); }
+        virtual const _E *do_scan_is(mask _M, const _E *_F,
+                const _E *_L) const
+                {for (; _F != _L && !is(_M, *_F); ++_F)
+                        ;
+                return (_F); }
+        virtual const _E *do_scan_not(mask _M, const _E *_F,
+                const _E *_L) const
+                {for (; _F != _L && is(_M, *_F); ++_F)
+                        ;
+                return (_F); }
+        virtual _E do_tolower(_E _C) const
+                {return ((_E)widen((char)_Tolower(narrow(_C), &_Ctype))); }
+        virtual const _E *do_tolower(_E *_F, const _E *_L) const
+                {for (; _F != _L; ++_F)
+                        *_F = (_E)_Tolower(*_F, &_Ctype);
+                return ((const _E *)_F); }
+        virtual _E do_toupper(_E _C) const
+                {return ((_E)widen((char)_Toupper(narrow(_C), &_Ctype))); }
+        virtual const _E *do_toupper(_E *_F, const _E *_L) const
+                {for (; _F != _L; ++_F)
+                        *_F = (_E)_Toupper(*_F, &_Ctype);
+                return ((const _E *)_F); }
+        virtual _E do_widen(char _X) const
+                {return (_Widen(_X, (_E *)0)); }
+        virtual const char *do_widen(const char *_F, const char *_L,
+                _E *_V) const
+                {for (; _F != _L; ++_F, ++_V)
+                        *_V = _Widen(*_F, (_E *)0);
+                return (_F); }
+        virtual char do_narrow(_E _C, char) const
+                {return ((char)_Narrow((_E)(_C))); }
+        virtual const _E *do_narrow(const _E *_F, const _E *_L,
+                char, char *_V) const
+                {for (; _F != _L; ++_F, ++_V)
+                        *_V = (char)_Narrow((_E)(*_F));
+                return (_F); }
+private:
+        _Locinfo::_Ctypevec _Ctype;
+        };
+
+template<class _E>
+        locale::id ctype<_E>::id;
+
+                
+class  ctype<char> : public ctype_base {
+public:
+        typedef char _E;
+        typedef _E char_type;
+        bool is(mask _M, _E _C) const
+                {return ((_Ctype._Table[(unsigned char)_C] & _M) != 0); }
+        const _E *is(const _E *_F, const _E *_L, mask *_V) const
+                {for (; _F != _L; ++_F, ++_V)
+                        *_V = _Ctype._Table[(unsigned char)*_F];
+                return (_F); }
+        const _E *scan_is(mask _M, const _E *_F,
+                const _E *_L) const
+                {for (; _F != _L && !is(_M, *_F); ++_F)
+                        ;
+                return (_F); }
+        const _E *scan_not(mask _M, const _E *_F,
+                const _E *_L) const
+                {for (; _F != _L && is(_M, *_F); ++_F)
+                        ;
+                return (_F); }
+        _E tolower(_E _C) const
+                {return (do_tolower(_C)); }
+        const _E *tolower(_E *_F, const _E *_L) const
+                {return (do_tolower(_F, _L)); }
+        _E toupper(_E _C) const
+                {return (do_toupper(_C)); }
+        const _E *toupper(_E *_F, const _E *_L) const
+                {return (do_toupper(_F, _L)); }
+        _E widen(char _X) const
+                {return (_X); }
+        const _E *widen(const char *_F, const char *_L, _E *_V) const
+                {memcpy(_V, _F, _L - _F);
+                return (_L); }
+        _E narrow(_E _C, char _D = '\0') const
+                {return (_C); }
+        const _E *narrow(const _E *_F, const _E *_L, char _D,
+                char *_V) const
+                {memcpy(_V, _F, _L - _F);
+                return (_L); }
+        static locale::id id;
+        explicit ctype(const mask *_Tab = 0, bool _Df = false,
+                size_t _R = 0)
+                : ctype_base(_R)
+                {_Lockit Lk;
+                _Init(_Locinfo());
+                if (_Ctype._Delfl)
+                        _free_dbg((void *)_Ctype._Table, 1), _Ctype._Delfl = false;
+                if (_Tab == 0)
+                        _Ctype._Table = _Cltab;
+                else
+                        _Ctype._Table = _Tab, _Ctype._Delfl = _Df; }
+        ctype(const _Locinfo& _Lobj, size_t _R = 0)
+                : ctype_base(_R) {_Init(_Lobj); }
+        static size_t __cdecl _Getcat()
+                {return (2); }
+        static const size_t table_size;
+public:
+        virtual ~ctype()
+                {if (_Ctype._Delfl)
+                        _free_dbg((void *)_Ctype._Table, 1); }
+protected:
+        static void __cdecl _Term(void)
+                {_free_dbg((void *)_Cltab, 1); }
+        void _Init(const _Locinfo& _Lobj)
+                {_Lockit Lk;
+                _Ctype = _Lobj._Getctype();
+                if (_Cltab == 0)
+                        {_Cltab = _Ctype._Table;
+                        atexit(_Term);
+                        _Ctype._Delfl = false; }}
+        virtual _E do_tolower(_E _C) const
+                {return (_E)(_Tolower((unsigned char)_C, &_Ctype)); }
+        virtual const _E *do_tolower(_E *_F, const _E *_L) const
+                {for (; _F != _L; ++_F)
+                        *_F = (_E)_Tolower(*_F, &_Ctype);
+                return ((const _E *)_F); }
+        virtual _E do_toupper(_E _C) const
+                {return ((_E)_Toupper((unsigned char)_C, &_Ctype)); }
+        virtual const _E *do_toupper(_E *_F, const _E *_L) const
+                {for (; _F != _L; ++_F)
+                        *_F = (_E)_Toupper(*_F, &_Ctype);
+                return ((const _E *)_F); }
+        const mask *table() const throw ()
+                {return (_Ctype._Table); }
+        static const mask * __cdecl classic_table() throw ()
+                {_Lockit Lk;
+                if (_Cltab == 0)
+                        locale::classic();      
+                return (_Cltab); }
+private:
+        _Locinfo::_Ctypevec _Ctype;
+        static const mask *_Cltab;
+        };
+
+
+                
+template<class _E>
+        class ctype_byname : public ctype<_E> {
+public:
+        explicit ctype_byname(const char *_S, size_t _R = 0)
+                : ctype<_E>(_Locinfo(_S), _R) {}
+public:
+        virtual ~ctype_byname()
+                {}
+        };
+
+
+
+
+
+
+
+
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+                
+class  ios_base {
+public:
+                        
+        class failure : public runtime_error {
+        public:
+                explicit failure(const string &_S)
+                        : runtime_error(_S) {}
+                virtual ~failure()
+                        {}
+        protected:
+                virtual void _Doraise() const
+                        {throw (*this); }
+        };
+        enum _Fmtflags {skipws = 0x0001, unitbuf = 0x0002,
+                uppercase = 0x0004, showbase = 0x0008,
+                showpoint = 0x0010, showpos = 0x0020,
+                left = 0x0040, right = 0x0080, internal = 0x0100,
+                dec = 0x0200, oct = 0x0400, hex = 0x0800,
+                scientific = 0x1000, fixed = 0x2000, boolalpha = 0x4000,
+                adjustfield = 0x01c0, basefield = 0x0e00,
+                floatfield = 0x3000, _Fmtmask = 0x7fff, _Fmtzero = 0};
+        enum _Iostate {goodbit = 0x0, eofbit = 0x1,
+                failbit = 0x2, badbit = 0x4, _Statmask = 0x7};
+        enum _Openmode {in = 0x01, out = 0x02, ate = 0x04,
+                app = 0x08, trunc = 0x10, binary = 0x20};
+        enum seekdir {beg = 0, cur = 1, end = 2};
+        enum event {erase_event, imbue_event, copyfmt_event};
+        typedef void (__cdecl *event_callback)(event, ios_base&, int);
+        typedef int fmtflags;
+        typedef int iostate;
+        typedef int openmode;
+        typedef short io_state, open_mode, seek_dir;
+                        
+        class  Init {
+        public:
+                Init();
+                ~Init();
+        private:
+                static int _Init_cnt;
+                };
+        ios_base& operator=(const ios_base& _R)
+                {if (this != &_R)
+                        {_State = _R._State;
+                        copyfmt(_R); }
+                return (*this); }
+        operator void *() const
+                {return (fail() ? 0 : (void *)this); }
+        bool operator!() const
+                {return (fail()); }
+        void clear(iostate = goodbit, bool = false);
+        void clear(io_state _St)
+                {clear((iostate)_St); }
+        iostate rdstate() const
+                {return (_State); }
+        void setstate(iostate _St, bool _Ex = false)
+                {if (_St != goodbit)
+                        clear((iostate)((int)rdstate() | (int)_St), _Ex); }
+        void setstate(io_state _St)
+                {setstate((iostate)_St); }
+        bool good() const
+                {return (rdstate() == goodbit); }
+        bool eof() const
+                {return ((int)rdstate() & (int)eofbit); }
+        bool fail() const
+                {return (((int)rdstate() & ((int)badbit | (int)failbit)) != 0); }
+        bool bad() const
+                {return (((int)rdstate() & (int)badbit) != 0); }
+        iostate exceptions() const
+                {return (_Except); }
+        void exceptions(iostate _Ne)
+                {_Except = _Ne & _Statmask;
+                clear(_State); }
+        void exceptions(io_state _St)
+                {exceptions((iostate)_St); }
+        fmtflags flags() const
+                {return (_Fmtfl); }
+        fmtflags flags(fmtflags _Nf)
+                {fmtflags _Of = _Fmtfl;
+                _Fmtfl = _Nf & _Fmtmask;
+                return (_Of); }
+        fmtflags setf(fmtflags _Nf)
+                {ios_base::fmtflags _Of = _Fmtfl;
+                _Fmtfl |= _Nf & _Fmtmask;
+                return (_Of); }
+        fmtflags setf(fmtflags _Nf, fmtflags _M)
+                {ios_base::fmtflags _Of = _Fmtfl;
+                _Fmtfl = (_Fmtfl & ~_M) | (_Nf & _M & _Fmtmask);
+                return (_Of); }
+        void unsetf(fmtflags _M)
+                {_Fmtfl &= ~_M; }
+        streamsize precision() const
+                {return (_Prec); }
+        streamsize precision(int _Np)
+                {streamsize _Op = _Prec;
+                _Prec = _Np;
+                return (_Op); }
+        streamsize width() const
+                {return (_Wide); }
+        streamsize width(streamsize _Nw)
+                {streamsize _Ow = _Wide;
+                _Wide = _Nw;
+                return (_Ow); }
+        locale getloc() const
+                {return (_Loc); }
+        locale imbue(const locale&);
+        static int __cdecl xalloc()
+                {_Lockit _Lk;
+                return (_Index++); }
+        long& iword(int _Idx)
+                {return (_Findarr(_Idx)._Lo); }
+        void *& pword(int _Idx)
+                {return (_Findarr(_Idx)._Vp); }
+        void register_callback(event_callback, int);
+        ios_base& copyfmt(const ios_base&);
+        virtual ~ios_base();
+        static bool __cdecl sync_with_stdio(bool _Sfl = true)
+                {_Lockit _Lk;
+                const bool _Osfl = _Sync;
+                _Sync = _Sfl;
+                return (_Osfl); }
+protected:
+        ios_base()
+                : _Loc(_Noinit), _Stdstr(0) {}
+        void _Addstd();
+        void _Init();
+private:
+                        
+        struct _Iosarray {
+        public:
+                _Iosarray(int _Idx, _Iosarray *_Link)
+                        : _Next(_Link), _Index(_Idx), _Lo(0), _Vp(0) {}
+                _Iosarray *_Next;
+                int _Index;
+                long _Lo;
+                void *_Vp;
+                };
+                        
+        struct _Fnarray {
+                _Fnarray(int _Idx, event_callback _P, _Fnarray *_Link)
+                        : _Next(_Link), _Index(_Idx), _Pfn(_P) {}
+                _Fnarray *_Next;
+                int _Index;
+                event_callback _Pfn;
+                };
+        void _Callfns(event);
+        _Iosarray& _Findarr(int);
+        void _Tidy();
+        iostate _State, _Except;
+        fmtflags _Fmtfl;
+        int _Prec, _Wide;
+        _Iosarray *_Arr;
+        _Fnarray *_Calls;
+        locale _Loc;
+        size_t _Stdstr;
+        static int _Index;
+        static bool _Sync;
+        };
+
+
+
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+               
+template<class _E>
+       class numpunct : public locale::facet {
+public:
+       typedef basic_string<_E, char_traits<_E>, allocator<_E> >
+               string_type;
+       typedef _E char_type;
+       static locale::id id;
+       _E decimal_point() const
+               {return (do_decimal_point()); }
+       _E thousands_sep() const
+               {return (do_thousands_sep()); }
+       string grouping() const
+               {return (do_grouping()); }
+       string_type falsename() const
+               {return (do_falsename()); }
+       string_type truename() const
+               {return (do_truename()); }
+       explicit numpunct(size_t _R = 0)
+               : locale::facet(_R) {_Init(_Locinfo()); }
+       numpunct(const _Locinfo& _Lobj, size_t _R = 0)
+               : locale::facet(_R) {_Init(_Lobj); }
+       static size_t __cdecl _Getcat()
+               {return (4); }
+public:
+       virtual ~numpunct()
+               {delete[] _Gr;
+               delete[] _Nf;
+               delete[] _Nt; }
+protected:
+       void _Init(const _Locinfo& _Lobj)
+               {const lconv *_P = _Lobj._Getlconv();
+               _Dp = _Widen(_P->decimal_point[0], (_E *)0);
+               _Ks = _Widen(_P->thousands_sep[0], (_E *)0);
+               _Gr = _Maklocstr(_P->grouping, (char *)0);
+               _Nf = _Maklocstr(_Lobj._Getfalse(), (_E *)0);
+               _Nt = _Maklocstr(_Lobj._Gettrue(), (_E *)0); }
+       virtual _E do_decimal_point() const
+               {return (_Dp); }
+       virtual _E do_thousands_sep() const
+               {return (_Ks); }
+       virtual string do_grouping() const
+               {return (string(_Gr)); }
+       virtual string_type do_falsename() const
+               {return (string_type(_Nf)); }
+       virtual string_type do_truename() const
+               {return (string_type(_Nt)); }
+private:
+       char *_Gr;
+       _E _Dp, _Ks, *_Nf, *_Nt;
+       };
+typedef numpunct<char> _Npc;
+typedef numpunct<wchar_t> _Npwc;
+               
+template<class _E>
+       class numpunct_byname : public numpunct<_E> {
+public:
+       explicit numpunct_byname(const char *_S, size_t _R = 0)
+               : numpunct<_E>(_Locinfo(_S), _R) {}
+public:
+       virtual ~numpunct_byname()
+               {}
+       };
+template<class _E>
+       locale::id numpunct<_E>::id;
+
+template<class _E> inline
+       bool (isdigit)(_E _C, const locale& _L)
+       {return (use_facet(_L, (ctype<_E> *)0, true).is(ctype_base::digit, _C)); }
+
+               
+template<class _E,
+       class _II = istreambuf_iterator<_E, char_traits<_E> > >
+       class num_get : public locale::facet {
+public:
+       typedef numpunct<_E> _Mypunct;
+       typedef basic_string<_E, char_traits<_E>, allocator<_E> >
+               _Mystr;
+       static size_t __cdecl _Getcat()
+               {return (4); }
+       static locale::id id;
+public:
+       virtual ~num_get()
+               {}
+protected:
+       void _Init(const _Locinfo& _Lobj)
+               {}
+public:
+       explicit num_get(size_t _R = 0)
+               : locale::facet(_R) {_Init(_Locinfo()); }
+       num_get(const _Locinfo& _Lobj, size_t _R = 0)
+               : locale::facet(_R) {_Init(_Lobj); }
+       typedef _E char_type;
+       typedef _II iter_type;
+       _II get(_II _F, _II _L, ios_base& _X, ios_base::iostate& _St,
+               _Bool& _V) const
+               {return (do_get(_F, _L, _X, _St, _V)); }
+       _II get(_II _F, _II _L, ios_base& _X, ios_base::iostate& _St,
+               unsigned short& _V) const
+               {return (do_get(_F, _L, _X, _St, _V)); }
+       _II get(_II _F, _II _L, ios_base& _X, ios_base::iostate& _St,
+               unsigned int& _V) const
+               {return (do_get(_F, _L, _X, _St, _V)); }
+       _II get(_II _F, _II _L, ios_base& _X, ios_base::iostate& _St,
+               long& _V) const
+               {return (do_get(_F, _L, _X, _St, _V)); }
+       _II get(_II _F, _II _L, ios_base& _X, ios_base::iostate& _St,
+               unsigned long& _V) const
+               {return (do_get(_F, _L, _X, _St, _V)); }
+       _II get(_II _F, _II _L, ios_base& _X, ios_base::iostate& _St,
+               float& _V) const
+               {return (do_get(_F, _L, _X, _St, _V)); }
+       _II get(_II _F, _II _L, ios_base& _X, ios_base::iostate& _St,
+               double& _V) const
+               {return (do_get(_F, _L, _X, _St, _V)); }
+       _II get(_II _F, _II _L, ios_base& _X, ios_base::iostate& _St,
+               long double& _V) const
+               {return (do_get(_F, _L, _X, _St, _V)); }
+       _II get(_II _F, _II _L, ios_base& _X, ios_base::iostate& _St,
+               void *& _V) const
+               {return (do_get(_F, _L, _X, _St, _V)); }
+protected:
+       virtual _II do_get(_II _F, _II _L, ios_base& _X,
+               ios_base::iostate& _St, _Bool& _V) const
+               {int _Ans = -1;
+               if (_X.flags() & ios_base::boolalpha)
+                       {const _Mypunct& _Fac = use_facet(_X.getloc(), (_Mypunct *)0, true);
+                       _Mystr _Str(1, (_E)0);
+                       _Str += _Fac.falsename();
+                       _Str += (_E)0;
+                       _Str += _Fac.truename();
+                       _Ans = _Getloctxt(_F, _L, (size_t)2, _Str.c_str()); }
+               else
+                       {char _Ac[32], *_Ep;
+                       (*_errno()) = 0;
+                       const unsigned long _Ulo = strtoul(_Ac, &_Ep,
+                               _Getifld(_Ac, _F, _L, _X.flags(), _X.getloc()));
+                       if (_Ep != _Ac && (*_errno()) == 0 && _Ulo <= 1)
+                               _Ans = _Ulo; }
+               if (_F == _L)
+                       _St |= ios_base::eofbit;
+               if (_Ans < 0)
+                       _St |= ios_base::failbit;
+               else
+                       _V = _Ans != 0;
+               return (_F); }
+       virtual _II do_get(_II _F, _II _L, ios_base& _X,
+               ios_base::iostate& _St, unsigned short& _V) const
+               {char _Ac[32], *_Ep;
+               (*_errno()) = 0;
+               int _Base =
+                       _Getifld(_Ac, _F, _L, _X.flags(), _X.getloc());
+               char *_S = _Ac[0] == '-' ? _Ac + 1 : _Ac;
+               const unsigned long _Ans = strtoul(_S, &_Ep, _Base);
+               if (_F == _L)
+                       _St |= ios_base::eofbit;
+               if (_Ep == _S || (*_errno()) != 0 || 0xffff < _Ans)
+                       _St |= ios_base::failbit;
+               else
+                       _V = (unsigned short)(_Ac[0] == '-' ? -_Ans : _Ans);
+               return (_F); }
+       virtual _II do_get(_II _F, _II _L, ios_base& _X,
+               ios_base::iostate& _St, unsigned int& _V) const
+               {char _Ac[32], *_Ep;
+               (*_errno()) = 0;
+               int _Base =
+                       _Getifld(_Ac, _F, _L, _X.flags(), _X.getloc());
+               char *_S = _Ac[0] == '-' ? _Ac + 1 : _Ac;
+               const unsigned long _Ans = strtoul(_S, &_Ep, _Base);
+               if (_F == _L)
+                       _St |= ios_base::eofbit;
+               if (_Ep == _S || (*_errno()) != 0 || 0xffffffff < _Ans)
+                       _St |= ios_base::failbit;
+               else
+                       _V = _Ac[0] == '-' ? -_Ans : _Ans;
+               return (_F); }
+       virtual _II do_get(_II _F, _II _L, ios_base& _X,
+               ios_base::iostate& _St, long& _V) const
+               {char _Ac[32], *_Ep;
+               (*_errno()) = 0;
+               const long _Ans = strtol(_Ac, &_Ep,
+                       _Getifld(_Ac, _F, _L, _X.flags(), _X.getloc()));
+               if (_F == _L)
+                       _St |= ios_base::eofbit;
+               if (_Ep == _Ac || (*_errno()) != 0)
+                       _St |= ios_base::failbit;
+               else
+                       _V = _Ans;
+               return (_F); }
+       virtual _II do_get(_II _F, _II _L, ios_base& _X,
+               ios_base::iostate& _St, unsigned long& _V) const
+               {char _Ac[32], *_Ep;
+               (*_errno()) = 0;
+               const unsigned long _Ans = strtoul(_Ac, &_Ep,
+                       _Getifld(_Ac, _F, _L, _X.flags(), _X.getloc()));
+               if (_F == _L)
+                       _St |= ios_base::eofbit;
+               if (_Ep == _Ac || (*_errno()) != 0)
+                       _St |= ios_base::failbit;
+               else
+                       _V = _Ans;
+               return (_F); }
+       virtual _II do_get(_II _F, _II _L, ios_base& _X,
+               ios_base::iostate& _St, float& _V) const
+               {char _Ac[8 + 36 + 32], *_Ep;
+               (*_errno()) = 0;
+               const float _Ans = _Stof(_Ac, &_Ep,
+                       _Getffld(_Ac, _F, _L, _X.getloc()));
+               if (_F == _L)
+                       _St |= ios_base::eofbit;
+               if (_Ep == _Ac || (*_errno()) != 0)
+                       _St |= ios_base::failbit;
+               else
+                       _V = _Ans;
+               return (_F); }
+       virtual _II do_get(_II _F, _II _L, ios_base& _X,
+               ios_base::iostate& _St, double& _V) const
+               {char _Ac[8 + 36 + 32], *_Ep;
+               (*_errno()) = 0;
+               const double _Ans = _Stod(_Ac, &_Ep,
+                       _Getffld(_Ac, _F, _L, _X.getloc()));
+               if (_F == _L)
+                       _St |= ios_base::eofbit;
+               if (_Ep == _Ac || (*_errno()) != 0)
+                       _St |= ios_base::failbit;
+               else
+                       _V = _Ans;
+               return (_F); }
+       virtual _II do_get(_II _F, _II _L, ios_base& _X,
+               ios_base::iostate& _St, long double& _V) const
+               {char _Ac[8 + 36 + 32], *_Ep;
+               (*_errno()) = 0;
+               const long double _Ans = _Stold(_Ac, &_Ep,
+                       _Getffld(_Ac, _F, _L, _X.getloc()));
+               if (_F == _L)
+                       _St |= ios_base::eofbit;
+               if (_Ep == _Ac || (*_errno()) != 0)
+                       _St |= ios_base::failbit;
+               else
+                       _V = _Ans;
+               return (_F); }
+       virtual _II do_get(_II _F, _II _L, ios_base& _X,
+               ios_base::iostate& _St, void *& _V) const
+               {union _Pvlo {
+                       void *_Pv;
+                       unsigned long _Lo[1 +
+                               (sizeof (void *) - 1) / sizeof (unsigned long)];
+                       } _U;
+               const int _NL = sizeof (_U._Lo) / sizeof (unsigned long);
+               for (int _I = 0; ; ++_F)
+                       {char _Ac[32], *_Ep;
+                       (*_errno()) = 0;
+                       _U._Lo[_I] = strtoul(_Ac, &_Ep,
+                               _Getifld(_Ac, _F, _L,
+                                       ios_base::hex, _X.getloc()));
+                       if (_F == _L)
+                               _St |= ios_base::eofbit;
+                       if (_Ep == _Ac || (*_errno()) != 0)
+                               {_St |= ios_base::failbit;
+                               break; }
+                       if (_NL <= ++_I)
+                               break;
+                       if (_F == _L || *_F != _Widen(':', (_E *)0))
+                               {_St |= ios_base::failbit;
+                               break; }}
+               if (!(_St & ios_base::failbit))
+                       _V = _U._Pv;
+               return (_F); }
+private:
+       static int __cdecl _Getifld(char *_Ac, _II& _F, _II& _L,
+               ios_base::fmtflags _Bfl, const locale& _Loc)
+               {const _E _E0 = _Widen('0', (_E *)0);
+               const _Mypunct& _Fac = use_facet(_Loc, (_Mypunct *)0, true);
+               const string _Gr = _Fac.grouping();
+               const _E _Ks = _Fac.thousands_sep();
+               char *_P = _Ac;
+               if (_F == _L)
+                       ;
+               else if (*_F == _Widen('+', (_E *)0))
+                       *_P++ = '+', ++_F;
+               else if (*_F == _Widen('-', (_E *)0))
+                       *_P++ = '-', ++_F;
+               _Bfl &= ios_base::basefield;
+               int _Base = _Bfl == ios_base::oct ? 8
+                       : _Bfl == ios_base::hex ? 16
+                       : _Bfl == ios_base::_Fmtzero ? 0 : 10;
+               bool _Sd = false, _Snz = false;
+               if (_F != _L && *_F == _E0)
+                       {_Sd = true, ++_F;
+                       if (_F != _L && (*_F == _Widen('x', (_E *)0)
+                                       || *_F == _Widen('X', (_E *)0))
+                               && (_Base == 0 || _Base == 16))
+                               _Base = 16, _Sd = false, ++_F;
+                       else if (_Base == 0)
+                               _Base = 8; }
+               int _Dlen = _Base == 0 || _Base == 10 ? 10
+                       : _Base == 8 ? 8 : 16 + 6;
+               string _Grin(1, _Sd ? '\1' : '\0');
+               size_t _I = 0;
+               for (char *const _Pe = &_Ac[32 - 1];
+                       _F != _L; ++_F)
+                       if (memchr("0123456789abcdefABCDEF",
+                               *_P = (char)_Narrow((_E)(*_F)), _Dlen) != 0)
+                               {if ((_Snz || *_P != '0') && _P < _Pe)
+                                       ++_P, _Snz = true;
+                               _Sd = true;
+                               if (_Grin[_I] != 127)
+                                       ++_Grin[_I]; }
+                       else if (_Grin[_I] == '\0' || _Ks == (_E)0
+                               || *_F != _Ks)
+                               break;
+                       else
+                               _Grin.append(1, '\0'), ++_I;
+               if (_I == 0)
+                       ;
+               else if ('\0' < _Grin[_I])
+                       ++_I;
+               else
+                       _Sd = false;
+               for (const char *_Pg = _Gr.c_str(); _Sd && 0 < _I; --_I)
+                       if (*_Pg == 127)
+                               break;
+                       else if (0 < --_I && *_Pg != _Grin[_I]
+                               || 0 == _I && *_Pg < _Grin[_I])
+                               _Sd = false;
+                       else if ('\0' < _Pg[1])
+                               ++_Pg;
+               if (_Sd && !_Snz)
+                       *_P++ = '0';
+               else if (!_Sd)
+                       _P = _Ac;
+               *_P = '\0';
+               return (_Base);
+               }
+       static int __cdecl _Getffld(char *_Ac, _II& _F, _II &_L,
+               const locale& _Loc)
+               {const _E _E0 = _Widen('0', (_E *)0);
+               const _Mypunct& _Fac = use_facet(_Loc, (_Mypunct *)0, true);
+               char *_P = _Ac;
+               if (_F == _L)
+                       ;
+               else if (*_F == _Widen('+', (_E *)0))
+                       *_P++ = '+', ++_F;
+               else if (*_F == _Widen('-', (_E *)0))
+                       *_P++ = '-', ++_F;
+               bool _Sd = false;
+               for (; _F != _L && *_F == _E0; _Sd = true, ++_F)
+                       ;
+               if (_Sd)
+                       *_P++ = '0';
+               int _Ns = 0;
+               int _Pten = 0;
+               for (; _F != _L && isdigit(*_P = (char)_Narrow((_E)(*_F)), _Loc);
+                       _Sd = true, ++_F)
+                       if (_Ns < 36)
+                               ++_P, ++_Ns;
+                       else
+                               ++_Pten;
+               if (_F != _L && *_F == _Fac.decimal_point())
+                       *_P++ = localeconv()->decimal_point[0], ++_F;
+               if (_Ns == 0)
+                       {for (; _F != _L && *_F == _E0; _Sd = true, ++_F)
+                               --_Pten;
+                       if (_Pten < 0)
+                               *_P++ = '0', ++_Pten; }
+               for (; _F != _L && isdigit(*_P = (char)_Narrow((_E)(*_F)), _Loc);
+                       _Sd = true, ++_F)
+                       if (_Ns < 36)
+                               ++_P, ++_Ns;
+               if (_Sd && _F != 
+_L
+&& (*_F == _Widen('e', (_E *)0) || *_F == _Widen('E', (_E *)0)))
+                       {*_P++ = 'e', ++_F;
+                       _Sd = false, _Ns = 0;
+                       if (_F == _L)
+                               ;
+                       else if (*_F == _Widen('+', (_E *)0))
+                               *_P++ = '+', ++_F;
+                       else if (*_F == _Widen('-', (_E *)0))
+                               *_P++ = '-', ++_F;
+                       for (; _F != _L && *_F == _E0; _Sd = true, ++_F)
+                               ;
+                       if (_Sd)
+                               *_P++ = '0';
+                       for (; _F != _L && isdigit(*_P = (char)_Narrow((_E)(*_F)), _Loc);
+                               _Sd = true, ++_F)
+                               if (_Ns < 8)
+                                       ++_P, ++_Ns; }
+               if (!_Sd)
+                       _P = _Ac;
+               *_P = '\0';
+               return (_Pten);
+               };
+       };
+template<class _E, class _II>
+       locale::id num_get<_E, _II>::id;
+               
+template<class _E,
+       class _OI = ostreambuf_iterator<_E, char_traits<_E> > >
+       class num_put : public locale::facet {
+public:
+       typedef numpunct<_E> _Mypunct;
+       typedef basic_string<_E, char_traits<_E>, allocator<_E> >
+               _Mystr;
+       static size_t __cdecl _Getcat()
+               {return (4); }
+       static locale::id id;
+public:
+       virtual ~num_put()
+               {}
+protected:
+       void _Init(const _Locinfo& _Lobj)
+               {}
+public:
+       explicit num_put(size_t _R = 0)
+               : locale::facet(_R) {_Init(_Locinfo()); }
+       num_put(const _Locinfo& _Lobj, size_t _R = 0)
+               : locale::facet(_R) {_Init(_Lobj); }
+       typedef _E char_type;
+       typedef _OI iter_type;
+       _OI put(_OI _F, ios_base& _X, _E _Fill,
+               _Bool _V) const
+               {return (do_put(_F, _X, _Fill, _V)); }
+       _OI put(_OI _F, ios_base& _X, _E _Fill,
+               long _V) const
+               {return (do_put(_F, _X, _Fill, _V)); }
+       _OI put(_OI _F, ios_base& _X, _E _Fill,
+               unsigned long _V) const
+               {return (do_put(_F, _X, _Fill, _V)); }
+       _OI put(_OI _F, ios_base& _X, _E _Fill,
+               double _V) const
+               {return (do_put(_F, _X, _Fill, _V)); }
+       _OI put(_OI _F, ios_base& _X, _E _Fill,
+               long double _V) const
+               {return (do_put(_F, _X, _Fill, _V)); }
+       _OI put(_OI _F, ios_base& _X, _E _Fill,
+               const void *_V) const
+               {return (do_put(_F, _X, _Fill, _V)); }
+protected:
+       virtual _OI do_put(_OI _F, ios_base& _X, _E _Fill,
+               _Bool _V) const
+               {const _Mypunct& _Fac = use_facet(_X.getloc(), (_Mypunct *)0, true);
+               _Mystr _Str;
+               if (!(_X.flags() & ios_base::boolalpha))
+                       _Str.append(1, _Widen(_V ? '1' : '0', (_E *)0));
+               else if (_V)
+                       _Str = _Fac.truename();
+               else
+                       _Str = _Fac.falsename();
+               size_t _M = _X.width() <= 0 || _X.width() <= _Str.size()
+                       ? 0 : _X.width() - _Str.size();
+               ios_base::fmtflags _Afl =
+                       _X.flags() & ios_base::adjustfield;
+               if (_Afl != ios_base::left)
+                       _F = _Rep(_F, _Fill, _M), _M = 0;
+               _F = _Put(_F, _Str.c_str(), _Str.size());
+               _X.width(0);
+               return (_Rep(_F, _Fill, _M)); }
+       virtual _OI do_put(_OI _F, ios_base& _X, _E _Fill,
+               long _V) const
+               {char _Buf[2 * 32], _Fmt[6];
+               return (_Iput(_F, _X, _Fill, _Buf,
+                       sprintf(_Buf, _Ifmt(_Fmt, 'd', _X.flags()), _V))); }
+       virtual _OI do_put(_OI _F, ios_base& _X, _E _Fill,
+               unsigned long _V) const
+               {char _Buf[2 * 32], _Fmt[6];
+               return (_Iput(_F, _X, _Fill, _Buf,
+                       sprintf(_Buf, _Ifmt(_Fmt, 'u', _X.flags()), _V))); }
+       virtual _OI do_put(_OI _F, ios_base& _X, _E _Fill,
+               double _V) const
+               {char _Buf[8 + 36 + 32], _Fmt[8];
+               streamsize _Prec = _X.precision() <= 0
+                       && !(_X.flags() & ios_base::fixed) ? 6
+                       : _X.precision();
+               int _Mpr = 36 < _Prec ? 36 : _Prec;
+               return (_Fput(_F, _X, _Fill, _Buf, _Prec - _Mpr,
+                       sprintf(_Buf, _Ffmt(_Fmt, 0, _X.flags()),
+                               _Mpr, _V))); }
+       virtual _OI do_put(_OI _F, ios_base& _X, _E _Fill,
+               long double _V) const
+               {char _Buf[8 + 36 + 32], _Fmt[8];
+               streamsize _Prec = _X.precision() <= 0
+                       && !(_X.flags() & ios_base::fixed) ? 6
+                       : _X.precision();
+               int _Mpr = 36 < _Prec ? 36 : _Prec;
+               return (_Fput(_F, _X, _Fill, _Buf, _Prec - _Mpr,
+                       sprintf(_Buf, _Ffmt(_Fmt, 'L', _X.flags()),
+                               _Mpr, _V))); }
+       virtual _OI do_put(_OI _F, ios_base& _X, _E _Fill,
+               const void *_V) const
+               {
+               const int _NL = 1
+                       + (sizeof (void *) - 1) / sizeof (unsigned long);
+               char _Buf[(_NL + 1) * (32 + 1)];
+               int _N = sprintf(_Buf, "%p", _V);
+               size_t _M = _X.width() <= 0 || _X.width() <= _N
+                       ? 0 : _X.width() - _N;
+               ios_base::fmtflags _Afl =
+                       _X.flags() & ios_base::adjustfield;
+               if (_Afl != ios_base::left)
+                       _F = _Rep(_F, _Fill, _M), _M = 0;
+               _F = _Putc(_F, _Buf, _N);
+               _X.width(0);
+               return (_Rep(_F, _Fill, _M)); }
+       static char *_Ffmt(char *_Fmt, char _Spec,
+               ios_base::fmtflags _Fl)
+               {char *_S = _Fmt;
+               *_S++ = '%';
+               if (_Fl & ios_base::showpos)
+                       *_S++ = '+';
+               if (_Fl & ios_base::showpoint)
+                       *_S++ = '#';
+               *_S++ = '.';
+               *_S++ = '*';
+               if (_Spec != 0)
+                       *_S++ = _Spec;  
+               ios_base::fmtflags _Ffl = _Fl & ios_base::floatfield;
+               *_S++ = _Ffl == ios_base::fixed ? 'f'
+                       : _Ffl == ios_base::scientific ? 'e' : 'g';
+               *_S = '\0';
+               return (_Fmt); }
+       static _OI __cdecl _Fput(_OI _F, ios_base& _X, _E _Fill,
+               const char *_S, size_t _Nz, size_t _N)
+               {size_t _M = _X.width() <= 0 || _X.width() <= _N  + _Nz
+                       ? 0 : _X.width() - _N - _Nz;
+               ios_base::fmtflags _Afl =
+                       _X.flags() & ios_base::adjustfield;
+               if (_Afl != ios_base::left && _Afl != ios_base::internal)
+                       _F = _Rep(_F, _Fill, _M), _M = 0;
+               else if (_Afl == ios_base::internal)
+                       {if (0 < _N && (*_S == '+' || *_S == '-'))
+                               _F = _Putc(_F, _S, 1), ++_S, --_N;
+                       _F = _Rep(_F, _Fill, _M), _M = 0; }
+               const char *_P = (const char *)memchr(_S,
+                       localeconv()->decimal_point[0], _N);
+               if (_P != 0)
+                       {const _Mypunct& _Fac = use_facet(_X.getloc(), (_Mypunct *)0, true);
+                       size_t _Nf = _P - _S + 1;
+                       _F = _Putc(_F, _S, _Nf - 1);
+                       _F = _Rep(_F, _Fac.decimal_point(), 1);
+                       _S += _Nf, _N -= _Nf; }
+               if ((_P = (const char *)memchr(_S, 'e', _N)) != 0)
+                       {size_t _Nm = _P - _S + 1;
+                       _F = _Putc(_F, _S, _Nm - 1);
+                       _F = _Rep(_F, _Widen('0', (_E *)0), _Nz), _Nz = 0;
+                       _F = _Putc(_F, _X.flags() & ios_base::uppercase
+                               ? "E" : "e", 1);
+                       _S += _Nm, _N -= _Nm; }
+               _F = _Putc(_F, _S, _N);
+               _F = _Rep(_F, _Widen('0', (_E *)0), _Nz);
+               _X.width(0);
+               return (_Rep(_F, _Fill, _M)); }
+       static char *__cdecl _Ifmt(char *_Fmt, char _Spec,
+               ios_base::fmtflags _Fl)
+               {char *_S = _Fmt;
+               *_S++ = '%';
+               if (_Fl & ios_base::showpos)
+                       *_S++ = '+';
+               if (_Fl & ios_base::showbase)
+                       *_S++ = '#';
+               *_S++ = 'l';
+               ios_base::fmtflags _Bfl = _Fl & ios_base::basefield;
+               *_S++ = _Bfl == ios_base::oct ? 'o'
+                       : _Bfl != ios_base::hex ? _Spec 
+                       : _Fl & ios_base::uppercase ? 'X' : 'x';
+               *_S = '\0';
+               return (_Fmt); }
+       static _OI __cdecl _Iput(_OI _F, ios_base& _X, _E _Fill,
+               char *_S, size_t _N)
+               {const size_t _Np = *_S == '+' || *_S == '-' ? 1
+                       : *_S == '0' && (_S[1] == 'x' || _S[1] == 'X') ? 2
+                       : 0;
+               const _Mypunct& _Fac = use_facet(_X.getloc(), (_Mypunct *)0, true);
+               const string _Gr = _Fac.grouping();
+               const _E _Ks = _Fac.thousands_sep();
+               bool _Grp = '\0' < *_Gr.c_str();
+               if (_Grp)
+                       {const char *_Pg = _Gr.c_str();
+                       size_t _I = _N;
+                       for (_Grp = false; *_Pg != 127 && '\0' < *_Pg
+                               && *_Pg < _I - _Np; _Grp = true)
+                               {_I -= *_Pg;
+                               memmove(&_S[_I + 1], &_S[_I], _N + 1 - _I);
+                               _S[_I] = ',', ++_N;
+                               if ('\0' < _Pg[1])
+                                       ++_Pg; }}
+               size_t _M = _X.width() <= 0 || _X.width() <= _N
+                       ? 0 : _X.width() - _N;
+               ios_base::fmtflags _Afl =
+                       _X.flags() & ios_base::adjustfield;
+               if (_Afl != ios_base::left && _Afl != ios_base::internal)
+                       _F = _Rep(_F, _Fill, _M), _M = 0;
+               else if (_Afl == ios_base::internal)
+                       {_F = _Putc(_F, _S, _Np), _S += _Np, _N -= _Np;
+                       _F = _Rep(_F, _Fill, _M), _M = 0; }
+               if (!_Grp)
+                       _F = _Putc(_F, _S, _N);
+               else
+                       for (; ; ++_S, --_N)
+                               {size_t _Nd = strcspn(_S, ",");
+                               _F = _Putc(_F, _S, _Nd);
+                               _S += _Nd, _N -= _Nd;
+                               if (_N == 0)
+                                       break;
+                               if (_Ks != (_E)0)
+                                       _F = _Rep(_F, _Ks, 1); }
+               _X.width(0);
+               return (_Rep(_F, _Fill, _M)); }
+       static _OI _Put(_OI _F, const _E *_S, size_t _N)
+               {for (; 0 < _N; --_N, ++_F, ++_S)
+                       *_F = *_S;
+               return (_F); }
+       static _OI _Putc(_OI _F, const char *_S, size_t _N)
+               {for (; 0 < _N; --_N, ++_F, ++_S)
+                       *_F = _Widen(*_S, (_E *)0);
+               return (_F); }
+       static _OI _Rep(_OI _F, _E _C, size_t _N)
+               {for (; 0 < _N; --_N, ++_F)
+                       *_F = _C;
+               return (_F); }
+       };
+template<class _E, class _OI>
+       locale::id num_put<_E, _OI>::id;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+               
+template<class _E, class _Tr = char_traits<_E> >
+       class basic_streambuf {
+protected:
+       basic_streambuf()
+               : _Loc() {_Init(); }
+       basic_streambuf(_Uninitialized)
+               : _Loc(_Noinit) {}
+public:
+       typedef basic_streambuf<_E, _Tr> _Myt;
+       typedef _E char_type;
+       typedef _Tr traits_type;
+       virtual ~basic_streambuf()
+               {}
+       typedef _Tr::int_type int_type;
+       typedef _Tr::pos_type pos_type;
+       typedef _Tr::off_type off_type;
+       pos_type pubseekoff(off_type _O, ios_base::seekdir _W,
+               ios_base::openmode _M = ios_base::in | ios_base::out)
+               {return (seekoff(_O, _W, _M)); }
+       pos_type pubseekoff(off_type _O, ios_base::seek_dir _W,
+               ios_base::open_mode _M)
+               {return (pubseekoff(_O, (ios_base::seekdir)_W,
+                       (ios_base::openmode)_M)); }
+       pos_type pubseekpos(pos_type _P,
+               ios_base::openmode _M = ios_base::in | ios_base::out)
+               {return (seekpos(_P, _M)); }
+       pos_type pubseekpos(pos_type _P, ios_base::open_mode _M)
+               {return (seekpos(_P, (ios_base::openmode)_M)); }
+       _Myt *pubsetbuf(_E *_S, streamsize _N)
+               {return (setbuf(_S, _N)); }
+       locale pubimbue(const locale &_Ln)
+               {locale _Lo = _Loc;
+               imbue(_Ln);
+               _Loc = _Ln;
+               return (_Lo); }
+       locale getloc()
+               {return (_Loc); }
+       streamsize in_avail()
+               {return (gptr() != 0 && gptr() < egptr()
+                       ? egptr() - gptr() : showmanyc()); }
+       int pubsync()
+               {return (sync()); }
+       int_type sbumpc()
+               {return (gptr() != 0 && gptr() < egptr()
+                       ? _Tr::to_int_type(*_Gninc()) : uflow()); }
+       int_type sgetc()
+               {return (gptr() != 0 && gptr() < egptr()
+                       ? _Tr::to_int_type(*gptr()) : underflow()); }
+       streamsize sgetn(_E *_S, streamsize _N)
+               {return (xsgetn(_S, _N)); }
+       int_type snextc()
+               {return (_Tr::eq_int_type(_Tr::eof(), sbumpc())
+                       ? _Tr::eof() : sgetc()); }
+       int_type sputbackc(_E _C)
+               {return (gptr() != 0 && eback() < gptr()
+                       && _Tr::eq(_C, gptr()[-1])
+                       ? _Tr::to_int_type(*_Gndec())
+                       : pbackfail(_Tr::to_int_type(_C))); }
+       void stossc()
+               {if (gptr() != 0 && gptr() < egptr())
+                       _Gninc();
+               else
+                       uflow(); }
+       int_type sungetc()
+               {return (gptr() != 0 && eback() < gptr()
+                       ? _Tr::to_int_type(*_Gndec()) : pbackfail()); }
+       int_type sputc(_E _C)
+               {return (pptr() != 0 && pptr() < epptr()
+                       ? _Tr::to_int_type(*_Pninc() = _C)
+                       : overflow(_Tr::to_int_type(_C))); }
+       streamsize sputn(const _E *_S, streamsize _N)
+               {return (xsputn(_S, _N)); }
+protected:
+       _E *eback() const
+               {return (*_IGbeg); }
+       _E *gptr() const
+               {return (*_IGnext); }
+       _E *pbase() const
+               {return (*_IPbeg); }
+       _E *pptr() const
+               {return (*_IPnext); }
+       _E *egptr() const
+               {return (*_IGnext + *_IGcnt); }
+       void gbump(int _N)
+               {*_IGcnt -= _N;
+               *_IGnext += _N; }
+       void setg(_E *_B, _E *_N, _E *_L)
+               {*_IGbeg = _B, *_IGnext = _N, *_IGcnt = _L - _N; }
+       _E *epptr() const
+               {return (*_IPnext + *_IPcnt); }
+       _E *_Gndec()
+               {++*_IGcnt;
+               return (--*_IGnext); }
+       _E *_Gninc()
+               {--*_IGcnt;
+               return ((*_IGnext)++); }
+       void pbump(int _N)
+               {*_IPcnt -= _N;
+               *_IPnext += _N; }
+       void setp(_E *_B, _E *_L)
+               {*_IPbeg = _B, *_IPnext = _B, *_IPcnt = _L - _B; }
+       void setp(_E *_B, _E *_N, _E *_L)
+               {*_IPbeg = _B, *_IPnext = _N, *_IPcnt = _L - _N; }
+       _E *_Pninc()
+               {--*_IPcnt;
+               return ((*_IPnext)++); }
+       void _Init()
+               {_IGbeg = &_Gbeg, _IPbeg = &_Pbeg;
+               _IGnext = &_Gnext, _IPnext = &_Pnext;
+               _IGcnt = &_Gcnt, _IPcnt = &_Pcnt;
+               setp(0, 0), setg(0, 0, 0); }
+       void _Init(_E **_Gb, _E **_Gn, int *_Gc,
+               _E **_Pb, _E **_Pn, int *_Pc)
+               {_IGbeg = _Gb, _IPbeg = _Pb;
+               _IGnext = _Gn, _IPnext = _Pn;
+               _IGcnt = _Gc, _IPcnt = _Pc; }
+       virtual int_type overflow(int_type = _Tr::eof())
+               {return (_Tr::eof()); }
+       virtual int_type pbackfail(int_type = _Tr::eof())
+               {return (_Tr::eof()); }
+       virtual int showmanyc()
+               {return (0); }
+       virtual int_type underflow()
+               {return (_Tr::eof()); }
+       virtual int_type uflow()
+               {return (_Tr::eq_int_type(_Tr::eof(), underflow())
+                       ? _Tr::eof() : _Tr::to_int_type(*_Gninc())); }
+       virtual streamsize xsgetn(_E * _S, streamsize _N)
+               {int_type _C;
+               streamsize _M, _Ns;
+               for (_Ns = 0; 0 < _N; )
+                       if (gptr() != 0 && 0 < (_M = egptr() - gptr()))
+                               {if (_N < _M)
+                                       _M = _N;
+                               _Tr::copy(_S, gptr(), _M);
+                               _S += _M, _Ns += _M, _N -= _M, gbump(_M); }
+                       else if (_Tr::eq_int_type(_Tr::eof(), _C = uflow()))
+                               break;
+                       else
+                               *_S++ = _Tr::to_char_type(_C), ++_Ns, --_N;
+               return (_Ns); }
+       virtual streamsize xsputn(const _E *_S, streamsize _N)
+               {streamsize _M, _Ns;
+               for (_Ns = 0; 0 < _N; )
+                       if (pptr() != 0 && 0 < (_M = epptr() - pptr()))
+                               {if (_N < _M)
+                                       _M = _N;
+                               _Tr::copy(pptr(), _S, _M);
+                               _S += _M, _Ns += _M, _N -= _M, pbump(_M); }
+                       else if (_Tr::eq_int_type(_Tr::eof(),
+                               overflow(_Tr::to_int_type(*_S))))
+                               break;
+                       else
+                               ++_S, ++_Ns, --_N;
+               return (_Ns); }
+       virtual pos_type seekoff(off_type, ios_base::seekdir,
+               ios_base::openmode = ios_base::in | ios_base::out)
+               {return (streampos(_BADOFF)); }
+       virtual pos_type seekpos(pos_type,
+               ios_base::openmode = ios_base::in | ios_base::out)
+               {return (streampos(_BADOFF)); }
+       virtual _Myt *setbuf(_E *, streamsize)
+               {return (this); }
+       virtual int sync()
+               {return (0); }
+       virtual void imbue(const locale& _Loc)
+               {}
+private:
+       _E *_Gbeg, *_Pbeg;
+       _E **_IGbeg, **_IPbeg;
+       _E *_Gnext, *_Pnext;
+       _E **_IGnext, **_IPnext;
+       int _Gcnt, _Pcnt;
+       int *_IGcnt, *_IPcnt;
+       locale _Loc;
+       };
+
+
+
+
+
+
+
+
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+               
+template<class _E, class _Tr = char_traits<_E> >
+       class basic_ios : public ios_base {
+public:
+       typedef basic_ios<_E, _Tr> _Myt;
+       typedef basic_ostream<_E, _Tr> _Myos;
+       typedef basic_streambuf<_E, _Tr> _Mysb;
+       typedef ctype<_E> _Ctype;
+       explicit basic_ios(_Mysb *_S)
+               {init(_S); }
+       basic_ios(const _Myt& _R)
+               {init(0), *this = _R; }
+       virtual ~basic_ios()
+               {}
+       typedef _E char_type;
+       typedef _Tr traits_type;
+       typedef _Tr::int_type int_type;
+       typedef _Tr::pos_type pos_type;
+       typedef _Tr::off_type off_type;
+       void clear(iostate _St = goodbit, bool _Ex = false)
+               {ios_base::clear(_Sb == 0 ? (int)_St | (int)badbit
+                       : (int)_St, _Ex); }
+       void clear(io_state _St)
+               {clear((iostate)_St); }
+       void setstate(iostate _St, bool _Ex = false)
+               {if (_St != goodbit)
+                       clear((iostate)((int)rdstate() | (int)_St), _Ex); }
+       void setstate(io_state _St)
+               {setstate((iostate)_St); }
+       _Myt& copyfmt(const _Myt& _R)
+               {_Tiestr = _R.tie();
+               _Fillch = _R.fill();
+               ios_base::copyfmt(_R);
+               return (*this); }
+       _Myos *tie() const
+               {return (_Tiestr); }
+       _Myos *tie(_Myos *_N)
+               {_Myos *_O = _Tiestr;
+               _Tiestr = _N;
+               return (_O); }
+       _Mysb *rdbuf() const
+               {return (_Sb); }
+       _Mysb *rdbuf(_Mysb *_N)
+               {_Mysb *_O = _Sb;
+               _Sb = _N;
+               clear();
+               return (_O); }
+       locale imbue(const locale& _Ln)
+               {if (rdbuf() != 0)
+                       rdbuf()->pubimbue(_Ln);
+               return (ios_base::imbue(_Ln)); }
+       _E fill() const
+               {return (_Fillch); }
+       _E fill(_E _Nf)
+               {_E _Of = _Fillch;
+               _Fillch = _Nf;
+               return (_Of); }
+       char narrow(_E _C, char _D = '\0') const
+               {const _Ctype& _Fac = use_facet(getloc(), (_Ctype *)0, true);
+               return (_Fac.narrow(_C, _D)); }
+       _E widen(char _C) const
+               {const _Ctype& _Fac = use_facet(getloc(), (_Ctype *)0, true);
+               return (_Fac.widen(_C)); }
+protected:
+       void init(_Mysb *_S = 0,
+               bool _Isstd = false)
+               {_Sb = _S;
+               _Tiestr = 0;
+               _Fillch = _Widen(' ', (_E *)0);
+               _Init();
+               if (_Sb == 0)
+                       setstate(badbit);
+               if (_Isstd)
+                       _Addstd(); }
+       basic_ios()
+               {}
+private:
+       _Mysb *_Sb;
+       _Myos *_Tiestr;
+       _E _Fillch;
+       };
+
+
+
+
+
+
+
+
+               
+inline ios_base& __cdecl boolalpha(ios_base& _I)
+       {_I.setf(ios_base::boolalpha);
+       return (_I); }
+inline ios_base& __cdecl dec(ios_base& _I)
+       {_I.setf(ios_base::dec, ios_base::basefield);
+       return (_I); }
+inline ios_base& __cdecl fixed(ios_base& _I)
+       {_I.setf(ios_base::fixed, ios_base::floatfield);
+       return (_I); }
+inline ios_base& __cdecl hex(ios_base& _I)
+       {_I.setf(ios_base::hex, ios_base::basefield);
+       return (_I); }
+inline ios_base& __cdecl internal(ios_base& _I)
+       {_I.setf(ios_base::internal, ios_base::adjustfield);
+       return (_I); }
+inline ios_base& __cdecl left(ios_base& _I)
+       {_I.setf(ios_base::left, ios_base::adjustfield);
+       return (_I); }
+inline ios_base& __cdecl noboolalpha(ios_base& _I)
+       {_I.unsetf(ios_base::boolalpha);
+       return (_I); }
+inline ios_base& __cdecl noshowbase(ios_base& _I)
+       {_I.unsetf(ios_base::showbase);
+       return (_I); }
+inline ios_base& __cdecl noshowpoint(ios_base& _I)
+       {_I.unsetf(ios_base::showpoint);
+       return (_I); }
+inline ios_base& __cdecl noshowpos(ios_base& _I)
+       {_I.unsetf(ios_base::showpos);
+       return (_I); }
+inline ios_base& __cdecl noskipws(ios_base& _I)
+       {_I.unsetf(ios_base::skipws);
+       return (_I); }
+inline ios_base& __cdecl nounitbuf(ios_base& _I)
+       {_I.unsetf(ios_base::unitbuf);
+       return (_I); }
+inline ios_base& __cdecl nouppercase(ios_base& _I)
+       {_I.unsetf(ios_base::uppercase);
+       return (_I); }
+inline ios_base& __cdecl oct(ios_base& _I)
+       {_I.setf(ios_base::oct, ios_base::basefield);
+       return (_I); }
+inline ios_base& __cdecl right(ios_base& _I)
+       {_I.setf(ios_base::right, ios_base::adjustfield);
+       return (_I); }
+inline ios_base& __cdecl scientific(ios_base& _I)
+       {_I.setf(ios_base::scientific, ios_base::floatfield);
+       return (_I); }
+inline ios_base& __cdecl showbase(ios_base& _I)
+       {_I.setf(ios_base::showbase);
+       return (_I); }
+inline ios_base& __cdecl showpoint(ios_base& _I)
+       {_I.setf(ios_base::showpoint);
+       return (_I); }
+inline ios_base& __cdecl showpos(ios_base& _I)
+       {_I.setf(ios_base::showpos);
+       return (_I); }
+inline ios_base& __cdecl skipws(ios_base& _I)
+       {_I.setf(ios_base::skipws);
+       return (_I); }
+inline ios_base& __cdecl unitbuf(ios_base& _I)
+       {_I.setf(ios_base::unitbuf);
+       return (_I); }
+inline ios_base& __cdecl uppercase(ios_base& _I)
+       {_I.setf(ios_base::uppercase);
+       return (_I); }
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+               
+
+
+namespace std {
+               
+template<class _E, class _Tr = char_traits<_E> >
+       class basic_ostream : virtual public basic_ios<_E, _Tr> {
+public:
+       typedef basic_ostream<_E, _Tr> _Myt;
+       typedef basic_ios<_E, _Tr> _Myios;
+       typedef basic_streambuf<_E, _Tr> _Mysb;
+       typedef ostreambuf_iterator<_E, _Tr> _Iter;
+       typedef num_put<_E, _Iter> _Nput;
+       explicit basic_ostream(basic_streambuf<_E, _Tr> *_S,
+               bool _Isstd = false, bool _Doinit = true)
+               {if (_Doinit)
+                   init(_S, _Isstd); }
+       basic_ostream(_Uninitialized)
+               {_Addstd(); }
+       virtual ~basic_ostream()
+               {}
+       class sentry {
+       public:
+               explicit sentry(_Myt& _Os)
+                       : _Ok(_Os.opfx()), _Ostr(_Os) {}
+               ~sentry()
+                       {if (!uncaught_exception())
+                               _Ostr.osfx(); }
+               operator bool() const
+                       {return (_Ok); }
+       private:
+               bool _Ok;
+               _Myt& _Ostr;
+               };
+       bool opfx()
+               {if (good() && tie() != 0)
+                       tie()->flush();
+               return (good()); }
+       void osfx()
+               {if (flags() & unitbuf)
+                       flush(); }
+       _Myt& operator<<(_Myt& (__cdecl *_F)(_Myt&))
+               {return ((*_F)(*this)); }
+       _Myt& operator<<(_Myios& (__cdecl *_F)(_Myios&))
+               {(*_F)(*(_Myios *)this);
+               return (*this); }
+       _Myt& operator<<(ios_base& (__cdecl *_F)(ios_base&))
+               {(*_F)(*(ios_base *)this);
+               return (*this); }
+       _Myt& operator<<(_Bool _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nput& _Fac = use_facet(getloc(), (_Nput *)0, true);
+                       try {
+                       if (_Fac.put(_Iter(rdbuf()), *this,
+                               fill(), _X).failed())
+                               _St |= badbit;
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator<<(short _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nput& _Fac = use_facet(getloc(), (_Nput *)0, true);
+                       fmtflags _Bfl = flags() & basefield;
+                       long _Y = (_Bfl == oct || _Bfl == hex)
+                               ? (long)(unsigned short)_X : (long)_X;
+                       try {
+                       if (_Fac.put(_Iter(rdbuf()), *this,
+                               fill(), _Y).failed())
+                               _St |= badbit;
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator<<(unsigned short _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nput& _Fac = use_facet(getloc(), (_Nput *)0, true);
+                       try {
+                       if (_Fac.put(_Iter(rdbuf()), *this,
+                               fill(), (unsigned long)_X).failed())
+                               _St |= badbit;
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator<<(int _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nput& _Fac = use_facet(getloc(), (_Nput *)0, true);
+                       fmtflags _Bfl = flags() & basefield;
+                       long _Y = (_Bfl == oct || _Bfl == hex)
+                               ? (long)(unsigned int)_X : (long)_X;
+                       try {
+                       if (_Fac.put(_Iter(rdbuf()), *this,
+                               fill(), _Y).failed())
+                               _St |= badbit;
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator<<(unsigned int _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nput& _Fac = use_facet(getloc(), (_Nput *)0, true);
+                       try {
+                       if (_Fac.put(_Iter(rdbuf()), *this,
+                               fill(), (unsigned long)_X).failed())
+                               _St |= badbit;
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator<<(long _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nput& _Fac = use_facet(getloc(), (_Nput *)0, true);
+                       try {
+                       if (_Fac.put(_Iter(rdbuf()), *this,
+                               fill(), _X).failed())
+                               _St |= badbit;
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator<<(unsigned long _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nput& _Fac = use_facet(getloc(), (_Nput *)0, true);
+                       try {
+                       if (_Fac.put(_Iter(rdbuf()), *this,
+                               fill(), _X).failed())
+                               _St |= badbit;
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator<<(float _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nput& _Fac = use_facet(getloc(), (_Nput *)0, true);
+                       try {
+                       if (_Fac.put(_Iter(rdbuf()), *this,
+                               fill(), (double)_X).failed())
+                               _St |= badbit;
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator<<(double _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nput& _Fac = use_facet(getloc(), (_Nput *)0, true);
+                       try {
+                       if (_Fac.put(_Iter(rdbuf()), *this,
+                               fill(), _X).failed())
+                               _St |= badbit;
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator<<(long double _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nput& _Fac = use_facet(getloc(), (_Nput *)0, true);
+                       try {
+                       if (_Fac.put(_Iter(rdbuf()), *this,
+                               fill(), _X).failed())
+                               _St |= badbit;
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator<<(const void *_X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nput& _Fac = use_facet(getloc(), (_Nput *)0, true);
+                       try {
+                       if (_Fac.put(_Iter(rdbuf()), *this,
+                               fill(), _X).failed())
+                               _St |= badbit;
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator<<(_Mysb *_Pb)
+               {iostate _St = goodbit;
+               bool _Copied = false;
+               const sentry _Ok(*this);
+               if (_Ok && _Pb != 0)
+                       for (int_type _C = _Tr::eof(); ; _Copied = true)
+                               {try {
+                               _C = _Tr::eq_int_type(_Tr::eof(), _C)
+                                       ? _Pb->sgetc() : _Pb->snextc();
+                               } catch (...) {
+                                       setstate(failbit);
+                                       throw;
+                               }
+                               if (_Tr::eq_int_type(_Tr::eof(),_C))
+                                       break;
+                               try {
+                                       if (_Tr::eq_int_type(_Tr::eof(),
+                                               rdbuf()->sputc(_Tr::to_char_type(_C))))
+                                               {_St |= badbit;
+                                               break; }
+                               } catch (...) { setstate(ios_base::badbit, true); } }
+               width(0);
+               setstate(!_Copied ? _St | failbit : _St);
+               return (*this); }
+       _Myt& put(_E _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (!_Ok)
+                       _St |= badbit;
+               else
+                       {try {
+                        if (_Tr::eq_int_type(_Tr::eof(),
+                               rdbuf()->sputc(_X)))
+                               _St |= badbit;
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& write(const _E *_S, streamsize _N)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (!_Ok)
+                       _St |= badbit;
+               else
+                       {try {
+                       if (rdbuf()->sputn(_S, _N) != _N)
+                               _St |= badbit;
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& flush()
+               {iostate _St = goodbit;
+               if (!fail() && rdbuf()->pubsync() == -1)
+                       _St |= badbit;
+               setstate(_St);
+               return (*this); }
+       _Myt& seekp(pos_type _P)
+               {if (!fail())
+                       rdbuf()->pubseekpos(_P, out);
+               return (*this); }
+       _Myt& seekp(off_type _O, ios_base::seekdir _W)
+               {if (!fail())
+                       rdbuf()->pubseekoff(_O, _W, out);
+               return (*this); }
+       pos_type tellp()
+               {if (!fail())
+                       return (rdbuf()->pubseekoff(0, cur, out));
+               else
+                       return (streampos(_BADOFF)); }
+       };
+
+
+
+
+
+
+
+
+
+
+               
+template<class _E, class _Tr> inline
+       basic_ostream<_E, _Tr>& __cdecl operator<<(
+               basic_ostream<_E, _Tr>& _O, const _E *_X)
+       {typedef basic_ostream<_E, _Tr> _Myos;
+       ios_base::iostate _St = ios_base::goodbit;
+       size_t _N = _Tr::length(_X);
+       size_t _M = _O.width() <= 0 || _O.width() <= _N
+               ? 0 : _O.width() - _N;
+       const _Myos::sentry _Ok(_O);
+       if (!_Ok)
+               _St |= ios_base::badbit;
+       else
+               {try {
+               if ((_O.flags() & ios_base::adjustfield)
+                       != ios_base::left)
+                       for (; 0 < _M; --_M)
+                               if (_Tr::eq_int_type(_Tr::eof(),
+                                       _O.rdbuf()->sputc(_O.fill())))
+                                       {_St |= ios_base::badbit;
+                                       break; }
+               if (_St == ios_base::goodbit
+                       && _O.rdbuf()->sputn(_X, _N) != _N)
+                       _St |= ios_base::badbit;
+               if (_St == ios_base::goodbit)
+                       for (; 0 < _M; --_M)
+                               if (_Tr::eq_int_type(_Tr::eof(),
+                                       _O.rdbuf()->sputc(_O.fill())))
+                                       {_St |= ios_base::badbit;
+                                       break; }
+               _O.width(0);
+               } catch (...) { (_O).setstate(ios_base::badbit, true); } }
+       _O.setstate(_St);
+       return (_O); }
+template<class _E, class _Tr> inline
+       basic_ostream<_E, _Tr>& __cdecl operator<<(
+               basic_ostream<_E, _Tr>& _O, _E _C)
+       {typedef basic_ostream<_E, _Tr> _Myos;
+       ios_base::iostate _St = ios_base::goodbit;
+       const _Myos::sentry _Ok(_O);
+       if (_Ok)
+               {size_t _M = _O.width() <= 1 ? 0 : _O.width() - 1;
+               try {
+               if ((_O.flags() & ios_base::adjustfield)
+                       != ios_base::left)
+                       for (; _St == ios_base::goodbit && 0 < _M; --_M)
+                               if (_Tr::eq_int_type(_Tr::eof(),
+                                       _O.rdbuf()->sputc(_O.fill())))
+                                       _St |= ios_base::badbit;
+               if (_St == ios_base::goodbit
+                       && _Tr::eq_int_type(_Tr::eof(),
+                               _O.rdbuf()->sputc(_C)))
+                       _St |= ios_base::badbit;
+               for (; _St == ios_base::goodbit && 0 < _M; --_M)
+                       if (_Tr::eq_int_type(_Tr::eof(),
+                               _O.rdbuf()->sputc(_O.fill())))
+                               _St |= ios_base::badbit;
+               } catch (...) { (_O).setstate(ios_base::badbit, true); } }
+       _O.width(0);
+       _O.setstate(_St);
+       return (_O); }
+template<class _E, class _Tr> inline
+       basic_ostream<_E, _Tr>& __cdecl operator<<(
+               basic_ostream<_E, _Tr>& _O, const signed char *_X)
+       {return (_O << (const char *)_X); }
+template<class _E, class _Tr> inline
+       basic_ostream<_E, _Tr>& __cdecl operator<<(
+               basic_ostream<_E, _Tr>& _O, const signed char _C)
+       {return (_O << (char)_C); }
+template<class _E, class _Tr> inline
+       basic_ostream<_E, _Tr>& __cdecl operator<<(
+               basic_ostream<_E, _Tr>& _O, const unsigned char *_X)
+       {return (_O << (const char *)_X); }
+template<class _E, class _Tr> inline
+       basic_ostream<_E, _Tr>& __cdecl operator<<(
+               basic_ostream<_E, _Tr>& _O, const unsigned char _C)
+       {return (_O << (char)_C); }
+template<class _E, class _Tr> inline
+       basic_ostream<_E, _Tr>& __cdecl operator<<(
+               basic_ostream<_E, _Tr>& _O, const signed short *_X)
+       {return (_O << (const wchar_t *)_X); }
+               
+template<class _E, class _Tr> inline
+       basic_ostream<_E, _Tr>&
+               __cdecl endl(basic_ostream<_E, _Tr>& _O)
+       {_O.put(_O.widen('\n'));
+       _O.flush();
+       return (_O); }
+ inline basic_ostream<char, char_traits<char> >&
+       __cdecl endl(basic_ostream<char, char_traits<char> >& _O)
+       {_O.put('\n');
+       _O.flush();
+       return (_O); }
+ inline basic_ostream<wchar_t, char_traits<wchar_t> >&
+       __cdecl endl(basic_ostream<wchar_t,
+               char_traits<wchar_t> >& _O)
+       {_O.put('\n');
+       _O.flush();
+       return (_O); }
+template<class _E, class _Tr> inline
+       basic_ostream<_E, _Tr>&
+               __cdecl ends(basic_ostream<_E, _Tr>& _O)
+       {_O.put(_E('\0'));
+       return (_O); }
+ inline basic_ostream<char, char_traits<char> >&
+       __cdecl ends(basic_ostream<char, char_traits<char> >& _O)
+       {_O.put('\0');
+       return (_O); }
+ inline basic_ostream<wchar_t, char_traits<wchar_t> >&
+       __cdecl ends(basic_ostream<wchar_t,
+               char_traits<wchar_t> >& _O)
+       {_O.put('\0');
+       return (_O); }
+template<class _E, class _Tr> inline
+       basic_ostream<_E, _Tr>&
+               __cdecl flush(basic_ostream<_E, _Tr>& _O)
+       {_O.flush();
+       return (_O); }
+ inline basic_ostream<char, char_traits<char> >&
+       __cdecl flush(basic_ostream<char, char_traits<char> >& _O)
+       {_O.flush();
+       return (_O); }
+ inline basic_ostream<wchar_t, char_traits<wchar_t> >&
+       __cdecl flush(basic_ostream<wchar_t,
+               char_traits<wchar_t> >& _O)
+       {_O.flush();
+       return (_O); }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+               
+template<class _E, class _Tr = char_traits<_E> >
+       class basic_istream : virtual public basic_ios<_E, _Tr> {
+public:
+       typedef basic_istream<_E, _Tr> _Myt;
+       typedef basic_ios<_E, _Tr> _Myios;
+       typedef basic_streambuf<_E, _Tr> _Mysb;
+       typedef istreambuf_iterator<_E, _Tr> _Iter;
+       typedef ctype<_E> _Ctype;
+       typedef num_get<_E, _Iter> _Nget;
+       explicit basic_istream(_Mysb *_S, bool _Isstd = false)
+               : _Chcount(0) {init(_S, _Isstd); }
+       basic_istream(_Uninitialized)
+               {_Addstd(); }
+       virtual ~basic_istream()
+               {}
+       class sentry {
+       public:
+               explicit sentry(_Myt& _Is, bool _Noskip = false)
+                       : _Ok(_Is.ipfx(_Noskip)) {}
+               operator bool() const
+                       {return (_Ok); }
+       private:
+               bool _Ok;
+               };
+       bool ipfx(bool _Noskip = false)
+               {if (good())
+                       {if (tie() != 0)
+                               tie()->flush();
+                       if (!_Noskip && flags() & skipws)
+                               {const _Ctype& _Fac = use_facet(getloc(), (_Ctype *)0, true);
+                               try {
+                               int_type _C = rdbuf()->sgetc();
+                               while (!_Tr::eq_int_type(_Tr::eof(), _C)
+                                       && _Fac.is(_Ctype::space,
+                                               _Tr::to_char_type(_C)))
+                                       _C = rdbuf()->snextc();
+                               } catch (...) { setstate(ios_base::badbit, true); } }
+                       if (good())
+                               return (true); }
+               setstate(failbit);
+               return (false); }
+       void isfx()
+               {}
+       _Myt& operator>>(_Myt& (__cdecl *_F)(_Myt&))
+               {return ((*_F)(*this)); }
+       _Myt& operator>>(_Myios& (__cdecl *_F)(_Myios&))
+               {(*_F)(*(_Myios *)this);
+               return (*this); }
+       _Myt& operator>>(ios_base& (__cdecl *_F)(ios_base&))
+               {(*_F)(*(ios_base *)this);
+               return (*this); }
+       _Myt& operator>>(_Bool& _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nget& _Fac = use_facet(getloc(), (_Nget *)0, true);
+                       try {
+                       _Fac.get(_Iter(rdbuf()), _Iter(0), *this, _St, _X);
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator>>(short& _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {long _Y;
+                       const _Nget& _Fac = use_facet(getloc(), (_Nget *)0, true);
+                       try {
+                       _Fac.get(_Iter(rdbuf()), _Iter(0), *this, _St, _Y);
+                       } catch (...) { setstate(ios_base::badbit, true); }
+                       if (_St & failbit || _Y < (-32768) || 32767 < _Y)
+                               _St |= failbit;
+                       else
+                               _X = (short)_Y; }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator>>(unsigned short& _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nget& _Fac = use_facet(getloc(), (_Nget *)0, true);
+                       try {
+                       _Fac.get(_Iter(rdbuf()), _Iter(0), *this, _St, _X);
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator>>(int& _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {long _Y;
+                       const _Nget& _Fac = use_facet(getloc(), (_Nget *)0, true);
+                       try {
+                       _Fac.get(_Iter(rdbuf()), _Iter(0), *this, _St, _Y);
+                       } catch (...) { setstate(ios_base::badbit, true); }
+                       if (_St & failbit || _Y < (-2147483647 - 1) || 2147483647 < _Y)
+                               _St |= failbit;
+                       else
+                               _X = _Y; }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator>>(unsigned int& _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nget& _Fac = use_facet(getloc(), (_Nget *)0, true);
+                       try {
+                       _Fac.get(_Iter(rdbuf()), _Iter(0), *this, _St, _X);
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator>>(long& _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nget& _Fac = use_facet(getloc(), (_Nget *)0, true);
+                       try {
+                       _Fac.get(_Iter(rdbuf()), _Iter(0), *this, _St, _X);
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator>>(unsigned long& _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nget& _Fac = use_facet(getloc(), (_Nget *)0, true);
+                       try {
+                       _Fac.get(_Iter(rdbuf()), _Iter(0), *this, _St, _X);
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator>>(float& _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nget& _Fac = use_facet(getloc(), (_Nget *)0, true);
+                       try {
+                       _Fac.get(_Iter(rdbuf()), _Iter(0), *this, _St, _X);
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator>>(double& _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nget& _Fac = use_facet(getloc(), (_Nget *)0, true);
+                       try {
+                       _Fac.get(_Iter(rdbuf()), _Iter(0), *this, _St, _X);
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator>>(long double& _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nget& _Fac = use_facet(getloc(), (_Nget *)0, true);
+                       try {
+                       _Fac.get(_Iter(rdbuf()), _Iter(0), *this, _St, _X);
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator>>(void *& _X)
+               {iostate _St = goodbit;
+               const sentry _Ok(*this);
+               if (_Ok)
+                       {const _Nget& _Fac = use_facet(getloc(), (_Nget *)0, true);
+                       try {
+                       _Fac.get(_Iter(rdbuf()), _Iter(0), *this, _St, _X);
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& operator>>(_Mysb *_Pb)
+               {iostate _St = goodbit;
+               bool _Copied = false;
+               const sentry _Ok(*this);
+               if (_Ok && _Pb != 0)
+                       {try {
+                       int_type _C = rdbuf()->sgetc();
+                       for (; ; _C = rdbuf()->snextc())
+                               if (_Tr::eq_int_type(_Tr::eof(), _C))
+                                       {_St |= eofbit;
+                                       break; }
+                               else
+                                       {try {
+                                               if (_Tr::eq_int_type(_Tr::eof(),
+                                                       _Pb->sputc(_Tr::to_char_type(_C))))
+                                                       break;
+                                       } catch (...) {
+                                               break;
+                                       }
+                                       _Copied = true; }
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(!_Copied ? _St | failbit : _St);
+               return (*this); }
+       int_type get()
+               {int_type _C;
+               iostate _St = goodbit;
+               _Chcount = 0;
+               const sentry _Ok(*this, true);
+               if (!_Ok)
+                       _C = _Tr::eof();
+               else
+                       {try {
+                       _C = rdbuf()->sbumpc();
+                       if (_Tr::eq_int_type(_Tr::eof(), _C))
+                               _St |= eofbit | failbit;
+                       else
+                               ++_Chcount;
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (_C); }
+       _Myt& get(_E *_S, streamsize _N)
+               {return (get(_S, _N, widen('\n'))); }
+       _Myt& get(_E *_S, streamsize _N, _E _D)
+               {iostate _St = goodbit;
+               _Chcount = 0;
+               const sentry _Ok(*this, true);
+               if (_Ok && 0 < _N)
+                       {try {
+                       int_type _C = rdbuf()->sgetc();
+                       for (; 0 < --_N; _C = rdbuf()->snextc())
+                               if (_Tr::eq_int_type(_Tr::eof(), _C))
+                                       {_St |= eofbit;
+                                       break; }
+                               else if (_Tr::to_char_type(_C) == _D)
+                                       break;
+                               else
+                                       *_S++ = _Tr::to_char_type(_C), ++_Chcount;
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_Chcount == 0 ? _St | failbit : _St);
+               *_S = _E(0);
+               return (*this); }
+       _Myt& get(_E& _X)
+               {int_type _C = get();
+               if (!_Tr::eq_int_type(_Tr::eof(), _C))
+                       _X = _Tr::to_char_type(_C);
+               return (*this); }
+       _Myt& get(_Mysb& _Sb)
+               {return (get(_Sb, widen('\n'))); }
+       _Myt& get(_Mysb& _Sb, _E _D)
+               {iostate _St = goodbit;
+               _Chcount = 0;
+               const sentry _Ok(*this, true);
+               if (_Ok)
+                       {try {
+                       int_type _C = rdbuf()->sgetc();
+                       for (; ; _C = rdbuf()->snextc())
+                               if (_Tr::eq_int_type(_Tr::eof(), _C))
+                                       {_St |= eofbit;
+                                       break; }
+                               else
+                                       {try {
+                                               _E _Ch = _Tr::to_char_type(_C);
+                                               if (_Ch == _D
+                                                       || _Tr::eq_int_type(_Tr::eof(),
+                                                               _Sb.sputc(_Ch)))
+                                                       break;
+                                       } catch (...) {
+                                               break;
+                                       }
+                                       ++_Chcount; }
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               if (_Chcount == 0)
+                       _St |= failbit;
+               setstate(_St);
+               return (*this); }
+       _Myt& getline(_E *_S, streamsize _N)
+               {return (getline(_S, _N, widen('\n'))); }
+       _Myt& getline(_E *_S, streamsize _N, _E _D)
+               {iostate _St = goodbit;
+               _Chcount = 0;
+               const sentry _Ok(*this, true);
+               if (_Ok && 0 < _N)
+                       {int_type _Di = _Tr::to_int_type(_D);
+                       try {
+                       int_type _C = rdbuf()->sgetc();
+                       for (; ; _C = rdbuf()->snextc())
+                               if (_Tr::eq_int_type(_Tr::eof(), _C))
+                                       {_St |= eofbit;
+                                       break; }
+                               else if (_C == _Di)
+                                       {++_Chcount;
+                                       rdbuf()->stossc();
+                                       break; }
+                               else if (--_N <= 0)
+                                       {_St |= failbit;
+                                       break; }
+                               else
+                                       {++_Chcount;
+                                       *_S++ = _Tr::to_char_type(_C); }
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               *_S = _E(0);
+               setstate(_Chcount == 0 ? _St | failbit : _St);
+               return (*this); }
+       _Myt& ignore(streamsize _N = 1, int_type _Di = _Tr::eof())
+               {iostate _St = goodbit;
+               _Chcount = 0;
+               const sentry _Ok(*this, true);
+               if (_Ok && 0 < _N)
+                       {try {
+                       for (; ; )
+                               {int_type _C;
+                               if (_N != 2147483647 && --_N < 0)
+                                       break;
+                               else if (_Tr::eq_int_type(_Tr::eof(),
+                                       _C = rdbuf()->sbumpc()))
+                                       {_St |= eofbit;
+                                       break; }
+                               else
+                                       {++_Chcount;
+                                       if (_C == _Di)
+                                               break; }}
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& read(_E *_S, streamsize _N)
+               {iostate _St = goodbit;
+               _Chcount = 0;
+               const sentry _Ok(*this, true);
+               if (_Ok)
+                       {try {
+                       const streamsize _M = rdbuf()->sgetn(_S, _N);
+                       _Chcount += _M;
+                       if (_M != _N)
+                               _St |= eofbit | failbit;
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       streamsize readsome(_E *_S, streamsize _N)
+               {iostate _St = goodbit;
+               _Chcount = 0;
+               int _M;
+               if (rdbuf() == 0)
+                       _St |= failbit;
+               else if ((_M = rdbuf()->in_avail()) < 0)
+                       _St |= eofbit;
+               else if (0 < _M)
+                       read(_S, _M < _N ? _M : _N);
+               setstate(_St);
+               return (gcount()); }
+       int_type peek()
+               {iostate _St = goodbit;
+               _Chcount = 0;
+               int_type _C;
+               const sentry _Ok(*this, true);
+               if (!_Ok)
+                       _C = _Tr::eof();
+               else
+                       {try {
+                       if (_Tr::eq_int_type(_Tr::eof(),
+                               _C = rdbuf()->sgetc()))
+                               _St |= eofbit;
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (_C); }
+       _Myt& putback(_E _X)
+               {iostate _St = goodbit;
+               _Chcount = 0;
+               const sentry _Ok(*this, true);
+               if (_Ok)
+                       {try {
+                       if (_Tr::eq_int_type(_Tr::eof(),
+                               rdbuf()->sputbackc(_X)))
+                               _St |= badbit;
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       _Myt& unget()
+               {iostate _St = goodbit;
+               _Chcount = 0;
+               const sentry _Ok(*this, true);
+               if (_Ok)
+                       {try {
+                       if (_Tr::eq_int_type(_Tr::eof(),
+                               rdbuf()->sungetc()))
+                               _St |= badbit;
+                       } catch (...) { setstate(ios_base::badbit, true); } }
+               setstate(_St);
+               return (*this); }
+       streamsize gcount() const
+               {return (_Chcount); }
+       int sync()
+               {iostate _St = goodbit;
+               int _Ans;
+               if (rdbuf() == 0)
+                       _Ans = -1;
+               else if (rdbuf()->pubsync() == -1)
+                       _St |= badbit, _Ans = -1;
+               else
+                       _Ans = 0;
+               setstate(_St);
+               return (_Ans); }
+       _Myt& seekg(pos_type _P)
+               {if (!fail())
+                       rdbuf()->pubseekpos(_P, in);
+               return (*this); }
+       _Myt& seekg(off_type _O, ios_base::seekdir _W)
+               {if (!fail())
+                       rdbuf()->pubseekoff(_O, _W, in);
+               return (*this); }
+       pos_type tellg()
+               {if (!fail())
+                       return (rdbuf()->pubseekoff(0, cur, in));
+               else
+                       return (streampos(_BADOFF)); }
+private:
+       streamsize _Chcount;
+       };
+
+
+
+
+
+
+
+
+               
+template<class _E, class _Tr = char_traits<_E> >
+       class basic_iostream : public basic_istream<_E, _Tr>,
+               public basic_ostream<_E, _Tr> {
+public:
+       explicit basic_iostream(basic_streambuf<_E, _Tr> *_S)
+               : basic_istream<_E, _Tr>(_S), basic_ostream<_E, _Tr>(_S, false, false)
+               {}
+       virtual ~basic_iostream()
+               {}
+       };
+
+
+
+
+
+
+
+
+
+
+               
+template<class _E, class _Tr> inline
+       basic_istream<_E, _Tr>& __cdecl operator>>(
+               basic_istream<_E, _Tr>& _I, _E *_X)
+       {typedef basic_istream<_E, _Tr> _Myis;
+       typedef ctype<_E> _Ctype;
+       ios_base::iostate _St = ios_base::goodbit;
+       _E *_S = _X;
+       const _Myis::sentry _Ok(_I);
+       if (_Ok)
+               {const _Ctype& _Fac = use_facet(_I.getloc(), (_Ctype *)0, true);
+               try {
+               int _N = 0 < _I.width() ? _I.width() : 2147483647;
+               _Myis::int_type _C = _I.rdbuf()->sgetc();
+               for (; 0 < --_N; _C = _I.rdbuf()->snextc())
+                       if (_Tr::eq_int_type(_Tr::eof(), _C))
+                               {_St |= ios_base::eofbit;
+                               break; }
+                       else if (_Fac.is(_Ctype::space,
+                               _Tr::to_char_type(_C)))
+                               break;
+                       else
+                               *_S++ = _Tr::to_char_type(_C);
+               } catch (...) { (_I).setstate(ios_base::badbit, true); } }
+       *_S = _E(0);
+       _I.width(0);
+       _I.setstate(_S == _X ? _St | ios_base::failbit : _St);
+       return (_I); }
+template<class _E, class _Tr> inline
+       basic_istream<_E, _Tr>& __cdecl operator>>(
+               basic_istream<_E, _Tr>& _I, _E& _X)
+       {typedef basic_istream<_E, _Tr> _Myis;
+       _Myis::int_type _C;
+       ios_base::iostate _St = ios_base::goodbit;
+       const _Myis::sentry _Ok(_I);
+       if (_Ok)
+               {try {
+               _C = _I.rdbuf()->sbumpc();
+               if (_Tr::eq_int_type(_Tr::eof(), _C))
+                       _St |= ios_base::eofbit | ios_base::failbit;
+               else
+                       _X = _Tr::to_char_type(_C);
+               } catch (...) { (_I).setstate(ios_base::badbit, true); } }
+       _I.setstate(_St);
+       return (_I); }
+template<class _E, class _Tr> inline
+       basic_istream<_E, _Tr>& __cdecl operator>>(
+               basic_istream<_E, _Tr>& _I, signed char *_X)
+       {return (_I >> (char *)_X); }
+template<class _E, class _Tr> inline
+       basic_istream<_E, _Tr>& __cdecl operator>>(
+               basic_istream<_E, _Tr>& _I, signed char& _C)
+       {return (_I >> (char&)_C); }
+template<class _E, class _Tr> inline
+       basic_istream<_E, _Tr>& __cdecl operator>>(
+               basic_istream<_E, _Tr>& _I, unsigned char *_X)
+       {return (_I >> (char *)_X); }
+template<class _E, class _Tr> inline
+       basic_istream<_E, _Tr>& __cdecl operator>>(
+               basic_istream<_E, _Tr>& _I, unsigned char& _C)
+       {return (_I >> (char&)_C); }
+template<class _E, class _Tr> inline
+       basic_istream<_E, _Tr>& __cdecl operator>>(
+               basic_istream<_E, _Tr>& _I, signed short * _X)
+       {return (_I >> (wchar_t *)_X); }
+               
+template<class _E, class _Tr> inline
+       basic_istream<_E, _Tr>& __cdecl ws(basic_istream<_E, _Tr>& _I)
+       {typedef basic_istream<_E, _Tr> _Myis;
+       typedef ctype<_E> _Ctype;
+       ios_base::iostate _St = ios_base::goodbit;
+       const _Myis::sentry _Ok(_I, true);
+       if (_Ok)
+               {const _Ctype& _Fac = use_facet(_I.getloc(), (_Ctype *)0, true);
+               try {
+               for (_Tr::int_type _C = _I.rdbuf()->sgetc(); ;
+                       _C = _I.rdbuf()->snextc())
+                       if (_Tr::eq_int_type(_Tr::eof(), _C))
+                               {_St |= ios_base::eofbit;
+                               break; }
+                       else if (!_Fac.is(_Ctype::space,
+                               _Tr::to_char_type(_C)))
+                               break;
+               } catch (...) { (_I).setstate(ios_base::badbit, true); } }
+       _I.setstate(_St);
+       return (_I); }
+ inline basic_istream<char, char_traits<char> >&
+       __cdecl ws(basic_istream<char, char_traits<char> >& _I)
+       {typedef char _E;
+       typedef char_traits<_E> _Tr;
+       ios_base::iostate _St = ios_base::goodbit;
+       const basic_istream<_E, _Tr>::sentry _Ok(_I, true);
+       if (_Ok)
+               {const ctype<_E>& _Fac = use_facet(_I.getloc(), (ctype<_E> *)0, true);
+               try {
+               for (_Tr::int_type _C = _I.rdbuf()->sgetc(); ;
+                       _C = _I.rdbuf()->snextc())
+                       if (_Tr::eq_int_type(_Tr::eof(), _C))
+                               {_St |= ios_base::eofbit;
+                               break; }
+                       else if (!_Fac.is(ctype<_E>::space,
+                               _Tr::to_char_type(_C)))
+                               break;
+               } catch (...) { (_I).setstate(ios_base::badbit, true); } }
+       _I.setstate(_St);
+       return (_I); }
+ inline basic_istream<wchar_t, char_traits<wchar_t> >&
+       __cdecl ws(basic_istream<wchar_t, char_traits<wchar_t> >& _I)
+       {typedef wchar_t _E;
+       typedef char_traits<_E> _Tr;
+       ios_base::iostate _St = ios_base::goodbit;
+       const basic_istream<_E, _Tr>::sentry _Ok(_I, true);
+       if (_Ok)
+               {const ctype<_E>& _Fac = use_facet(_I.getloc(), (ctype<_E> *)0, true);
+               try {
+               for (_Tr::int_type _C = _I.rdbuf()->sgetc(); ;
+                       _C = _I.rdbuf()->snextc())
+                       if (_Tr::eq_int_type(_Tr::eof(), _C))
+                               {_St |= ios_base::eofbit;
+                               break; }
+                       else if (_Fac.is(ctype<_E>::space,
+                               _Tr::to_char_type(_C)))
+                               break;
+               } catch (...) { (_I).setstate(ios_base::badbit, true); } }
+       _I.setstate(_St);
+       return (_I); }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+        
+template<class _E, class _Tr, class _A> inline
+    basic_string<_E, _Tr, _A> __cdecl operator+(
+        const basic_string<_E, _Tr, _A>& _L,
+        const basic_string<_E, _Tr, _A>& _R)
+    {return (basic_string<_E, _Tr, _A>(_L) += _R); }
+template<class _E, class _Tr, class _A> inline
+    basic_string<_E, _Tr, _A> __cdecl operator+(const _E *_L,
+        const basic_string<_E, _Tr, _A>& _R)
+    {return (basic_string<_E, _Tr, _A>(_L) += _R); }
+template<class _E, class _Tr, class _A> inline
+    basic_string<_E, _Tr, _A> __cdecl operator+(
+        const _E _L, const basic_string<_E, _Tr, _A>& _R)
+    {return (basic_string<_E, _Tr, _A>(1, _L) += _R); }
+template<class _E, class _Tr, class _A> inline
+    basic_string<_E, _Tr, _A> __cdecl operator+(
+        const basic_string<_E, _Tr, _A>& _L,
+        const _E *_R)
+    {return (basic_string<_E, _Tr, _A>(_L) += _R); }
+template<class _E, class _Tr, class _A> inline
+    basic_string<_E, _Tr, _A> __cdecl operator+(
+        const basic_string<_E, _Tr, _A>& _L, const _E _R)
+    {return (basic_string<_E, _Tr, _A>(_L) += _R); }
+template<class _E, class _Tr, class _A> inline
+    bool __cdecl operator==(const basic_string<_E, _Tr, _A>& _L,
+        const basic_string<_E, _Tr, _A>& _R)
+    {return (_L.compare(_R) == 0); }
+template<class _E, class _Tr, class _A> inline
+    bool __cdecl operator==(const _E * _L,
+        const basic_string<_E, _Tr, _A>& _R)
+    {return (_R.compare(_L) == 0); }
+template<class _E, class _Tr, class _A> inline
+    bool __cdecl operator==(const basic_string<_E, _Tr, _A>& _L,
+        const _E *_R)
+    {return (_L.compare(_R) == 0); }
+template<class _E, class _Tr, class _A> inline
+    bool __cdecl operator!=(const basic_string<_E, _Tr, _A>& _L,
+        const basic_string<_E, _Tr, _A>& _R)
+    {return (!(_L == _R)); }
+template<class _E, class _Tr, class _A> inline
+    bool __cdecl operator!=(const _E *_L,
+        const basic_string<_E, _Tr, _A>& _R)
+    {return (!(_L == _R)); }
+template<class _E, class _Tr, class _A> inline
+    bool __cdecl operator!=(const basic_string<_E, _Tr, _A>& _L,
+        const _E *_R)
+    {return (!(_L == _R)); }
+template<class _E, class _Tr, class _A> inline
+    bool __cdecl operator<(const basic_string<_E, _Tr, _A>& _L,
+        const basic_string<_E, _Tr, _A>& _R)
+    {return (_L.compare(_R) < 0); }
+template<class _E, class _Tr, class _A> inline
+    bool __cdecl operator<(const _E * _L,
+        const basic_string<_E, _Tr, _A>& _R)
+    {return (_R.compare(_L) > 0); }
+template<class _E, class _Tr, class _A> inline
+    bool __cdecl operator<(const basic_string<_E, _Tr, _A>& _L,
+        const _E *_R)
+    {return (_L.compare(_R) < 0); }
+template<class _E, class _Tr, class _A> inline
+    bool __cdecl operator>(const basic_string<_E, _Tr, _A>& _L,
+        const basic_string<_E, _Tr, _A>& _R)
+    {return (_R < _L); }
+template<class _E, class _Tr, class _A> inline
+    bool __cdecl operator>(const _E * _L,
+        const basic_string<_E, _Tr, _A>& _R)
+    {return (_R < _L); }
+template<class _E, class _Tr, class _A> inline
+    bool __cdecl operator>(const basic_string<_E, _Tr, _A>& _L,
+        const _E *_R)
+    {return (_R < _L); }
+template<class _E, class _Tr, class _A> inline
+    bool __cdecl operator<=(const basic_string<_E, _Tr, _A>& _L,
+        const basic_string<_E, _Tr, _A>& _R)
+    {return (!(_R < _L)); }
+template<class _E, class _Tr, class _A> inline
+    bool __cdecl operator<=(const _E * _L,
+        const basic_string<_E, _Tr, _A>& _R)
+    {return (!(_R < _L)); }
+template<class _E, class _Tr, class _A> inline
+    bool __cdecl operator<=(const basic_string<_E, _Tr, _A>& _L,
+        const _E *_R)
+    {return (!(_R < _L)); }
+template<class _E, class _Tr, class _A> inline
+    bool __cdecl operator>=(const basic_string<_E, _Tr, _A>& _L,
+        const basic_string<_E, _Tr, _A>& _R)
+    {return (!(_L < _R)); }
+template<class _E, class _Tr, class _A> inline
+    bool __cdecl operator>=(const _E * _L,
+        const basic_string<_E, _Tr, _A>& _R)
+    {return (!(_L < _R)); }
+template<class _E, class _Tr, class _A> inline
+    bool __cdecl operator>=(const basic_string<_E, _Tr, _A>& _L,
+        const _E *_R)
+    {return (!(_L < _R)); }
+        
+template<class _E, class _Tr, class _A> inline
+    basic_istream<_E, _Tr>& __cdecl operator>>(
+        basic_istream<_E, _Tr>& _I,
+        basic_string<_E, _Tr, _A>& _X)
+    {typedef ctype<_E> _Ctype;
+    typedef basic_istream<_E, _Tr> _Myis;
+    ios_base::iostate _St = ios_base::goodbit;
+    bool _Chg = false;
+    _X.erase();
+    const _Myis::sentry _Ok(_I);
+    if (_Ok)
+        {const _Ctype& _Fac = use_facet(_I.getloc(), (_Ctype *)0, true);
+        try {
+        _A::size_type _N = 0 < _I.width()
+            && _I.width() < _X.max_size()
+                ? _I.width() : _X.max_size();
+        _Tr::int_type _C = _I.rdbuf()->sgetc();
+        for (; 0 < --_N; _C = _I.rdbuf()->snextc())
+            if(_Tr::eq_int_type(_Tr::eof(), _C))
+                {_St |= ios_base::eofbit;
+                break; }
+            else if (_Fac.is(_Ctype::space,
+                _Tr::to_char_type(_C)))
+                break;
+            else
+                {_X.append(1, _Tr::to_char_type(_C));
+                _Chg = true; }
+        } catch (...) { (_I).setstate(ios_base::badbit, true); }; }
+    _I.width(0);
+    if (!_Chg)
+        _St |= ios_base::failbit;
+    _I.setstate(_St);
+    return (_I); }
+template<class _E, class _Tr, class _A> inline
+    basic_istream<_E, _Tr>& __cdecl getline(basic_istream<_E, _Tr>& _I,
+        basic_string<_E, _Tr, _A>& _X)
+    {return (getline(_I, _X, _I.widen('\n'))); }
+template<class _E, class _Tr, class _A> inline
+    basic_istream<_E, _Tr>& __cdecl getline(basic_istream<_E, _Tr>& _I,
+        basic_string<_E, _Tr, _A>& _X, const _E _D)
+    {typedef basic_istream<_E, _Tr> _Myis;
+    ios_base::iostate _St = ios_base::goodbit;
+    bool _Chg = false;
+    _X.erase();
+    const _Myis::sentry _Ok(_I, true);
+    if (_Ok)
+        {try {
+        _Tr::int_type _C = _I.rdbuf()->sgetc();
+        for (; ; _C = _I.rdbuf()->snextc())
+            if (_Tr::eq_int_type(_Tr::eof(), _C))
+                {_St |= ios_base::eofbit;
+                break; }
+            else if (_Tr::eq((_E)_C, _D))
+                {_Chg = true;
+                _I.rdbuf()->snextc();
+                break; }
+            else if (_X.max_size() <= _X.size())
+                {_St |= ios_base::failbit;
+                break; }
+            else
+                _X += _Tr::to_char_type(_C), _Chg = true;
+        } catch (...) { (_I).setstate(ios_base::badbit, true); }; }
+    if (!_Chg)
+        _St |= ios_base::failbit;
+    _I.setstate(_St);
+    return (_I); }
+template<class _E, class _Tr, class _A> inline
+    basic_ostream<_E, _Tr>& __cdecl operator<<(
+        basic_ostream<_E, _Tr>& _O,
+        const basic_string<_E, _Tr, _A>& _X)
+    {
+    _O << _X.c_str();
+    return (_O); }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+#pragma pack(push,8)
+
+namespace std {
+               
+class strstreambuf : public streambuf {
+public:
+       enum __Strstate {_Allocated = 1, _Constant = 2,
+               _Dynamic = 4, _Frozen = 8};
+       typedef int _Strstate;
+       explicit strstreambuf(streamsize _N = 0)
+               {_Init(_N); }
+       strstreambuf(void *(__cdecl *_A)(size_t),
+               void (__cdecl *_F)(void *))
+               {_Init(), _Palloc = _A, _Pfree = _F; }
+       strstreambuf(char *_G, streamsize _N, char *_P = 0)
+               {_Init(_N, _G, _P); }
+       strstreambuf(unsigned char *_G, streamsize _N,
+               unsigned char *_P = 0)
+               {_Init(_N, (char *)_G, (char *)_P); }
+       strstreambuf(const char *_G, streamsize _N)
+               {_Init(_N, (char *)_G, 0, _Constant); }
+       strstreambuf(const unsigned char *_G, streamsize _N)
+               {_Init(_N, (char *)_G, 0, _Constant); }
+        virtual ~strstreambuf();
+        void freeze(bool = true);
+       char *str()
+               {freeze();
+               return (gptr()); }
+       streamsize pcount() const
+               {return (pptr() == 0 ? 0 : pptr() - pbase()); } 
+       strstreambuf(signed char *_G, streamsize _N,
+               signed char *_P = 0)
+               {_Init(_N, (char *)_G, (char *)_P); }
+       strstreambuf(const signed char *_G, streamsize _N)
+               {_Init(_N, (char *)_G, 0, _Constant); }
+protected:
+        virtual int overflow(int = (-1));
+        virtual int pbackfail(int = (-1));
+        virtual int underflow();
+        virtual streampos seekoff(streamoff, ios::seekdir,
+               ios::openmode = ios::in | ios::out);
+        virtual streampos seekpos(streampos,
+               ios::openmode = ios::in | ios::out);
+        void _Init(int = 0, char * = 0, char * = 0,
+               _Strstate = (_Strstate)0);
+        void _Tidy();
+private:
+       enum {_ALSIZE = 512, _MINSIZE = 32};
+       char *_Pendsave, *_Seekhigh;
+       int _Alsize;
+       _Strstate _Strmode;
+       void *(__cdecl *_Palloc)(size_t);
+       void (__cdecl *_Pfree)(void *);
+       };
+
+               
+class istrstream : public istream {
+public:
+       explicit istrstream(const char *_S)
+               : istream(&_Sb), _Sb(_S, 0) {}
+       istrstream(const char *_S, streamsize _N)
+               : istream(&_Sb), _Sb(_S, _N) {}
+       explicit istrstream(char *_S)
+               : istream(&_Sb), _Sb((const char *)_S, 0) {}
+       istrstream(char *_S, int _N)
+               : istream(&_Sb), _Sb((const char *)_S, _N) {}
+        virtual ~istrstream();
+       strstreambuf *rdbuf() const
+               {return ((strstreambuf *)&_Sb); }
+       char *str()
+               {return (_Sb.str()); }
+private:
+       strstreambuf _Sb;
+       };
+               
+class ostrstream : public ostream {
+public:
+       ostrstream()
+               : ostream(&_Sb), _Sb() {}
+        ostrstream(char *, streamsize, openmode = out);
+        virtual ~ostrstream();
+       strstreambuf *rdbuf() const
+               {return ((strstreambuf *)&_Sb); }
+       void freeze(bool _F = true)
+               {_Sb.freeze(_F); }
+       char *str()
+               {return (_Sb.str()); }
+       streamsize pcount() const
+               {return (_Sb.pcount()); }
+private:
+       strstreambuf _Sb;
+       };
+               
+class strstream : public iostream {
+public:
+       strstream()
+               : iostream(&_Sb), _Sb() {}
+        strstream(char *, streamsize, openmode = in | out);
+        virtual ~strstream();
+       strstreambuf *rdbuf() const
+               {return ((strstreambuf *)&_Sb); }
+       void freeze(bool _F = true)
+               {_Sb.freeze(_F); }
+       char *str()
+               {return (_Sb.str()); }
+       streamsize pcount() const
+               {return (_Sb.pcount()); }
+private:
+       strstreambuf _Sb;
+       };
+};
+
+#pragma pack(pop)
+
+
+
+
+
+
+
+
+
+extern "C" {
+namespace sf {
+       namespace system {
+
+class  Exception {
+       public:
+       enum ERROR_TYPE{
+               DEFAULT,
+               DEVICE_NOT_FOUND,
+               BUFFER_IS_FULL,
+               SCENE_IS_EMPTY
+       };
+               
+       Exception::Exception()
+       {
+               mErrID = DEFAULT;
+       };
+       
+       Exception(const char * const pValue,const char * const fileName,const int line,const ERROR_TYPE err = DEFAULT)
+               {mErrString = pValue; mFileName = fileName;mLineNumber = line; mErrID = err;};
+       Exception(std::string & value,const char * const fileName,const int line,const ERROR_TYPE err = DEFAULT)
+               {mErrString = value;mFileName = fileName ; mLineNumber = line; mErrID = err;};
+
+       virtual ~Exception(){};
+
+       virtual std::string & reason(void)
+       {return mErrString;};
+       
+       virtual void reason(const std::string& value){mErrString = value;};
+       virtual void reason(const char * const pValue){mErrString = pValue;};
+       
+       virtual void sourceFileName(const char * const pValue){mFileName = pValue;};
+       virtual const std::string  sourceFileName(void) const {return mFileName;};
+
+       virtual void lineNumber(const int value){mLineNumber = value;};
+       virtual const int lineNumber(void){return mLineNumber;};
+
+       virtual void errorType(const ERROR_TYPE value){mErrID = value;};
+       virtual const ERROR_TYPE errorType(void) const {return mErrID;};
+
+       
+       virtual const char * const Exception::getDefaultMessage(void){
+               char tmp1[512];
+               std::strstream tmp(tmp1,510,std::ios::in | std::ios::out);
+               tmp << reason()  << std::endl << sourceFileName() << ":line" << lineNumber() << std::ends;
+               mDefaultMessage = tmp.str();
+               return mDefaultMessage.c_str();
+       }
+
+private:
+       std::string mErrString;
+       std::string mFileName;
+       std::string mDefaultMessage;
+       int mLineNumber;
+       ERROR_TYPE mErrID;
+};
+
+class FatalErrorException : public Exception {
+public:
+               FatalErrorException(const char * const pValue,const char * const fileName,const int line,const ERROR_TYPE err = DEFAULT)
+                       : Exception(pValue,fileName,line)
+                       {;};
+               FatalErrorException(std::string & value,const char * const fileName,const int line,const ERROR_TYPE err = DEFAULT)
+                       : Exception(value,fileName,line)
+                       {;};
+};
+
+class RecoverbleErrorException : public Exception {
+public:
+               RecoverbleErrorException(const char * const pValue,const char * const fileName,const int line,const ERROR_TYPE err = DEFAULT)
+                       : Exception(pValue,fileName,line)
+                       {;};
+               RecoverbleErrorException(std::string & value,const char * const fileName,const int line,const ERROR_TYPE err = DEFAULT)
+                       : Exception(value,fileName,line)
+                       {;};
+
+};
+       }
+}
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+namespace sf {
+
+typedef unsigned long DWORD;
+namespace application {
+       class Main;
+}
+namespace system {
+
+
+const float PI = 3.1415926f;
+const int MAX_PATH_ = 256;
+
+namespace console {
+       class Console;
+}
+
+namespace sound {
+       class Sound;
+}
+
+namespace input {
+       class Input;
+}
+
+
+const DWORD TIMER_INTERVAL = 32;
+const float FRAME_SEC = 30.0f;
+
+class System
+{
+       
+public:
+       System(){};
+       virtual ~System(){};
+       
+
+       
+
+       virtual void wait(void) = 0;
+       virtual void errorTerminate(const char *errString) = 0;
+       virtual void outputError(const char *errString) = 0;
+
+       
+       virtual void timerInterval(const unsigned long msValue) = 0;
+       virtual const unsigned long timerInterval (void) const = 0;
+       virtual const DWORD     time(void) const = 0;
+       
+       virtual console::Console * const console(void) = 0;
+       virtual sound::Sound * const sound(void) = 0;
+       virtual input::Input * const input(void) = 0;
+       virtual application::Main * const main() = 0;
+       virtual void main(application::Main * const pMain ) = 0;
+       virtual const float deltaTime(void) = 0;
+       virtual const float     framePerSec(void) = 0;
+       
+       
+       virtual bool isActive(void) = 0;
+}; 
+
+
+__declspec(dllimport) System * const instance(void);
+
+} 
+} 
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+namespace sf{
+       namespace system {
+               namespace sound {
+                       const int OBJECT_MAX = 128; 
+                       const int LOAD_ERROR = -1; 
+                       enum TYPE 
+                       {
+                               NONE,
+                               TEST
+                       };
+
+                       namespace volume {
+                               const int MAX = 0;
+                               const int MIN = -9600;
+                       };
+
+                       class Sound 
+                       {
+                               
+                       public:
+                               Sound(){};
+                               virtual ~Sound(){};
+                               
+                               
+                               
+                               virtual void load(const int ObjNo,const char * const pFileName) = 0;
+                               virtual const int load(const char * const pFileName) = 0;
+
+                               
+                               virtual void unload() = 0;
+                               
+                               virtual void play(const int ObjNo,const DWORD Repeat,const bool bPrimary,const bool bSync) = 0;
+                               virtual void stop(const int ObjNo = 0) = 0;
+                               
+                               virtual void update() = 0;
+                               
+                               
+                               virtual void masterVolume(const int value) = 0;
+                               virtual const int masterVolume() const = 0;
+
+                               virtual void volumeMax(const int value) = 0;
+                               virtual const int volumeMax()  const = 0;
+                               
+                               
+                               
+                               
+                               virtual const bool isEnabled(void) const = 0;
+                               virtual void initialize(void) = 0;
+
+                       };
+               }
+       }
+}
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+
+namespace sf{
+       namespace system {
+               namespace console {
+
+                       
+                       
+                       typedef unsigned long COLOR;
+                       
+
+                       
+                       class Color {
+                       public:
+                               Color() { mColor.value32 = 0;};
+                               Color(COLOR color){mColor.value32 = color;};
+                               
+                               COLOR value(void) const {return mColor.value32;};
+                               void value(COLOR color){mColor.value32 = color;};
+                               unsigned char red(void) const { return mColor.value.red;};
+                               void red(unsigned char value) { mColor.value.red = value;};
+                               
+                               unsigned char blue(void) const { return mColor.value.blue;};
+                               void blue(unsigned char value) { mColor.value.blue = value;};
+                               
+                               unsigned char green(void) const { return mColor.value.green;};
+                               void green(unsigned char value){mColor.value.green = value;};
+                               
+                               unsigned char alpha(void) const { return mColor.value.alpha;};
+                               void alpha(unsigned char value){mColor.value.alpha = value;};
+
+                       private:
+                               
+                               union {
+                                       COLOR value32;
+                                       struct {
+                                               unsigned char blue      :       8; 
+                                               unsigned char green :   8;
+                                               unsigned char red       :       8;
+                                               unsigned char alpha     :       8;
+                                       } value;
+                                       
+                               } mColor;
+                       };
+
+                       
+                       namespace screen {
+                               const int WIDTH  = 640;
+                               const int HEIGHT = 480;
+                       };
+                       
+                       
+                       namespace viewport {
+                               const int X = 120;      
+                               const int Y = 0;        
+                               const float Z_MIN = 0.0f;       
+                               const float Z_MAX = 1.0f;       
+                               const int WIDTH = 400;          
+                               const int HEIGHT = 480;         
+                       };
+                       
+                       const int TEXTURE_COUNT_MIN = 0;
+                       const int TEXTURE_COUNT_MAX = 1024;
+
+                       
+
+                       class ObjQuadrangle;
+                       class ObjRectangle;
+                       class Obj3DL;
+
+                       namespace sprite {
+                               const int MIN = 0;      
+                               const int MAX = 1024; 
+                               enum TYPE
+                               {
+                                       SPRITE2D,
+                                       SPRITE3D,
+                                       MESH
+                               };
+
+                               struct Info {
+                                       char fileName[260];
+                                       float centerX;
+                                       float centerY;
+                                       float cellWidth;
+                                       float cellHeight;
+                                       COLOR transparentColor;
+                                       TYPE type;
+                               };
+
+                       
+                               
+                               
+                               class Sprite
+                               {
+                               public:
+                                       virtual ~Sprite(){;};
+                                       virtual void draw(const sf::system::console::ObjRectangle * const pObj) = 0;
+                                       virtual void draw(const sf::system::console::ObjQuadrangle * const pObj) = 0;
+                                       virtual void draw(const sf::system::console::Obj3DL * const pObj) = 0;
+                                       virtual const float centerX(void) const = 0;
+                                       virtual const float centerY(void) const  = 0;
+                                       virtual const float width(void) const = 0;
+                                       virtual const float height(void) const = 0;
+                               };
+
+                               typedef std::auto_ptr<Sprite> PSprite;
+
+                       };
+                       
+                       
+                       namespace font {
+                               const int COUNT_MAX = 2;
+                               const int TEXTURE_WIDTH = 128;
+                               const int TEXTURE_HEIGHT = 64;
+                               const int WIDTH = 8;
+                               const int HEIGHT = 8;
+                               const char FILE_PATH[COUNT_MAX][MAX_PATH_] 
+                                       = {     "media\\font1.png",
+                                       "media\\font2.png"
+                               };
+                       }
+
+                       
+                       namespace text {
+                               const int BUFFER_LENGTH = 1024;
+                               const float COLUMN_PITCH = 8.0f;
+                               const float LINE_PITCH = 10.0f;
+                       }
+
+                       
+                       struct Vertex {
+                               float    x, y, z, rhw;
+                               DWORD   diffuse,specular;
+                               float    tu, tv;
+                       };
+
+
+
+                       
+                       class Console 
+                       {
+                               
+                       public:
+                               virtual ~Console(){;};
+                               
+                               
+                               virtual void initialize(void) = 0;
+                               
+                               virtual void clearScreen(COLOR value = 0x00000000) = 0;
+                               virtual void fillScreen(COLOR value = 0x00000000) = 0;
+                               
+                               virtual void update(void) = 0;
+                               
+                               
+                               virtual void print(const int textureNo,const float x,const float y,const float angleRad,const float scale,const COLOR color,
+                                       const char *format,...) = 0;
+                               
+                               
+                               virtual sprite::Sprite * const createSprite(const sprite::Info* const pInfo) = 0;
+                               
+                               
+                               
+                               
+                               virtual const bool isEnabled(void) const = 0;
+                       };
+
+                       
+                       enum DrawMode {
+                               DRAW_TRANS,
+                               DRAW_ADD,
+                               DRAW_ADD1,
+                               DRAW_SHADOW,
+                               DRAW_INV,
+                               DRAW_MUL
+                       };
+
+               }
+       }
+}
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+namespace sf {
+       namespace system {
+               namespace console {
+
+typedef        int OBJNO;
+
+
+class __declspec(dllimport) Obj
+{
+public:
+       Obj();
+       virtual ~Obj();
+       virtual void draw() = 0;
+
+       
+
+       
+       virtual sprite::Sprite * const sprite() const = 0;
+       virtual void sprite(sprite::Sprite* const value) = 0;
+
+       
+       virtual const int index() const = 0;
+       virtual void index(const int value) = 0;
+
+       virtual const bool visibility() const = 0;
+       virtual void visibility(const bool value) = 0;
+
+       virtual Obj * const previous() const  = 0;
+       virtual void previous(Obj * const value) = 0;
+       
+       virtual Obj * const next() const  = 0;
+       virtual void next(Obj * const value) = 0;
+
+       virtual const float z() const  = 0;
+       virtual void    z(const float value) = 0;
+
+       virtual void drawMode(const DrawMode value) = 0;
+       virtual const DrawMode drawMode() const  = 0;
+
+       
+       class __declspec(dllimport) List
+       {
+       public:
+               static void insertObj(Obj *value);
+               static void deleteObj(Obj *value);
+               
+               static Obj * moveTop();
+               static Obj * moveBottom();
+               
+               static Obj * moveNext();
+               static Obj * movePrevious();
+               
+       private:
+               
+               static Obj* mspCurrent;
+               static Obj* mspTop;
+               static Obj* mspBottom;
+               static int mCount;
+               
+       };
+
+};
+
+
+               }
+       }
+}
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+extern "C" {
+namespace sf {
+       namespace system {
+               namespace console {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+class __declspec(dllimport) Obj2D : public Obj
+{
+public:
+       Obj2D();
+       virtual ~Obj2D();
+
+       virtual const float x() const { return mX;};
+       virtual void    x(const float value) { mX = value;}; 
+       
+       virtual const float     y()     const { return mY;};
+       virtual void    y(const float value) { mY = value;}; 
+       
+       virtual const float z() const { return mZ;};
+       virtual void    z(const float value) { mZ = value;List::deleteObj(this); List::insertObj(this);};
+       
+       virtual const float angle() const { return mAngle;};
+       virtual void    angle(const float value) { mAngle = value;};
+       
+       virtual const float scalingX() const { return mScalingX;}; 
+       virtual void scalingX(const float value) { mScalingX = value;}; 
+       
+       virtual const float scalingY() const { return mScalingY;}; 
+       virtual void scalingY(const float value) { mScalingY = value;}; 
+
+       virtual const bool reverseX() const { return mbReverseX;}; 
+       virtual void reverseX(const bool value) { mbReverseX = value;}; 
+       
+       virtual const bool reverseY() const { return mbReverseY;};
+       virtual void reverseY(const bool value) { mbReverseY = value;}
+       
+       virtual void drawMode(const DrawMode value) { mDrawMode = value;};
+       virtual const DrawMode drawMode() const  {return mDrawMode;}
+       
+       
+       virtual sprite::Sprite * const sprite() const {return mpSprite;};
+       virtual void sprite(sprite::Sprite* const value){ mpSprite = value;};
+
+       virtual const int index() const { return mIndex;};
+       virtual void index(const int value) { mIndex = value;};
+
+       
+       virtual const bool visibility() const {return mbVisibility;};
+       virtual void visibility(const bool value){ mbVisibility = value;};
+       
+       virtual Obj * const previous()  const {return mpPrevious;};
+       virtual void previous(Obj * const value){mpPrevious = value;};
+       
+       virtual Obj * const next() const {return mpNext;};
+       virtual void next(Obj * const value){mpNext = value;};
+
+private:
+
+       float mX,mY,mZ,mRad,mAngle;
+       float mScalingX,mScalingY;
+       bool mbVisibility;
+       bool mbReverseX;
+       bool mbReverseY;
+       
+       sprite::Sprite *mpSprite;
+       int mIndex;
+
+       DrawMode mDrawMode;
+       Obj* mpPrevious;
+       Obj* mpNext;
+
+};
+
+
+
+               }
+       }
+}
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+namespace sf {
+       namespace system {
+               namespace console {
+
+                       
+                       class __declspec(dllimport) ObjRectangle : public Obj2D   
+                       {
+                               
+                       public:
+                               ObjRectangle();
+                               virtual ~ObjRectangle();
+                               
+                               
+                               virtual void draw(){if(visibility()) sprite()->draw(this);};
+                               
+
+                               const COLOR color() const { return mColor;}; 
+                               void  color(const COLOR value) { mColor = value;}; 
+                               
+                               const COLOR specular() const { return mSpecular;}; 
+                               void  specular(const COLOR value) { mSpecular = value;}; 
+                               
+                       private:
+                               COLOR mColor;
+                               COLOR mSpecular;
+                               
+                       };
+               }
+       }
+}
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+namespace sf {
+       namespace system {
+               namespace console {
+                       
+                       
+                       class __declspec(dllimport) ObjQuadrangle : public Obj2D
+                       {
+                               
+                       public:
+                               ObjQuadrangle();
+                               virtual ~ObjQuadrangle();
+                               
+                               
+                               
+                               virtual void draw(){if(visibility()) sprite()->draw(this);};
+                               
+                               
+                               virtual const Vertex * const vertex(const int i) const {return &mVertex[i];};
+                               virtual Vertex * const vertex(const int i){return &mVertex[i];};
+                       private:
+                               mutable Vertex mVertex[4];
+                       };
+               }
+       }
+}
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern "C" {
+namespace sf{
+       namespace system {
+               namespace input {
+
+                       namespace mouse {
+                               const DWORD MKEY_CONTROL = 0x1;
+                               const DWORD MKEY_LBUTTON = 0x2;
+                               const DWORD MKEY_RBUTTON = 0x4;
+                               const DWORD MKEY_SHIFT = 0x8;
+                               const DWORD WHEEL_MASK = 0xffff0000;
+                               
+                               class Listener 
+                               {
+                               public:
+                                       virtual void leftButtonDown(const int screenX,const int screenY,const DWORD mkey) = 0;
+                                       virtual void leftButtonUp(const int screenX,const int screenY,const DWORD mkey) = 0;
+                                       virtual void leftButtonDoubleClick(const int screenX,const int screenY,const DWORD mkey) = 0;
+                                       virtual void rightButtonDown(const int screenX,const int screenY,const DWORD mkey) = 0;
+                                       virtual void rightButtonUp(const int screenX,const int screenY,const DWORD mkey) = 0;
+                                       virtual void rightButtonDoubleClick(const int screenX,const int screenY,const DWORD mkey) = 0;
+                                       virtual void mouseMove(const int screenX,const int screenY,const DWORD mkey) = 0;
+                                       virtual void mouseWheel(const int screenX,const int screenY,const DWORD mkey) = 0;
+                                       virtual const bool isListeningMouse(void) const = 0;
+                                       virtual void mouseTalkerIsDeleted(void) = 0;
+                               };
+                       };
+
+                       namespace keyboard {
+
+                               const DWORD CONTROL = 0x1;
+                               const DWORD SHIFT   = 0x8;
+                               
+
+
+
+
+
+                               class __declspec(dllimport) VKey {
+                               public:
+                                       static const int UP;
+                                       static const int DOWN;
+                                       static const int LEFT;
+                                       static const int RIGHT;
+                               };
+
+                               
+                               class Listener 
+                               {
+                               public:
+                                       virtual void keyDown(const DWORD keyCode,const DWORD extKeyCode) = 0;
+                                       virtual void keyUp(const DWORD keyCode,const DWORD extKeyCode) = 0;
+                                       virtual const bool isListeningKeyboard(void) const = 0;
+                                       virtual void keyboardTalkerIsDeleted(void) = 0;
+                               };
+                       };
+                       
+                       
+                       class Input  
+                       {
+                               
+                       public:
+                               Input(){};
+                               virtual ~Input(){};
+                               
+                               
+                               
+                               virtual void initialize(void) = 0;
+                               virtual void update(void) = 0;
+                               virtual void addMouseListener(mouse::Listener * const pListener) = 0;
+                               virtual void removeMouseListener(mouse::Listener * const pListener) = 0;
+
+                               virtual void addKeyboardListener(keyboard::Listener * const pListener) = 0;
+                               virtual void removeKeyboardListener(keyboard::Listener * const pListener) = 0;
+
+                               
+                               virtual const bool left(const bool bTrig = false) const = 0;
+                               virtual const bool right(const bool bTrig = false) const = 0;
+                               virtual const bool up(const bool bTrig = false) const = 0;
+                               virtual const bool down(const bool bTrig = false) const = 0;
+                               virtual const bool buttonA(const bool bTrig = false) const = 0;
+                               virtual const bool buttonB(const bool bTrig = false) const = 0;
+                               virtual const bool buttonC(const bool bTrig = false) const = 0;
+                               virtual const bool buttonD(const bool bTrig = false) const = 0;
+                               virtual const bool start(const bool bTrig = false) const = 0;
+                               virtual const bool exit(const bool bTrig = false) const = 0;
+                               
+                               virtual void showMouseCursor(void) = 0;
+                               virtual void hideMouseCursor(void) = 0; 
+                               virtual const bool mouseCursorVisibility(void) const = 0;
+
+                               
+                               virtual const bool isEnabled(void) const = 0;
+                       };
+                       
+                       
+                       
+                       class Listener
+                       {
+                       public:
+                               virtual void deviceStateChanged(Input * const pInput) = 0;
+                               virtual void eventTalkerIsDeleted(void) = 0;
+                       };
+                       
+
+               }
+       }
+}
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+namespace sf {
+       namespace application {
+               namespace scene {
+                       
+                       
+                       
+                       enum TYPE {
+                               NONE,
+                               TEST,
+                               AUTHOR,
+                               FADE,
+                               TITLE,
+                               GAME,
+                               START,
+                               RESTART,
+                               OVER,
+                               EDITOR,
+                               CELLSELECTOR,
+                               DISPOSITION_EDITOR
+                       };
+               }
+       }
+}
+
+
+
+namespace sf {
+       namespace application {
+               namespace scene{
+
+                       class Scene;
+
+                       class Listener;
+
+                       
+                       
+                       
+                       class __declspec(novtable) Scene 
+                       {
+                       public:
+                               Scene() {};
+                               virtual ~Scene() {};
+                               
+                               
+                               virtual void move(void) = 0;
+                               virtual void addListener(Listener * const pListener) = 0;
+                               virtual void removeListener(Listener * const pListener) = 0;
+                               virtual void sleep(void) = 0;
+                               virtual void active(void) = 0;
+                               
+                               virtual const scene::TYPE  type() const = 0;
+                               
+                               virtual const bool  isActive(void) const = 0;
+                       };
+
+                       
+                       typedef Scene *(*CreateSceneMethod)(int);
+       
+               
+                       
+                       
+                       
+                       class __declspec(novtable) Listener 
+                       {
+                       public:
+                               
+                               virtual void endOfScene(Scene * const pScene) = 0;
+                               
+                               virtual void exitKeyPressed(Scene * const pScene) = 0;
+                       };
+
+               }
+       }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+namespace sf{
+       namespace application {
+               
+               const int INIT_PLAYER = 3;
+               const int STAGE_NUM_MAX = 1;
+
+               class Main  
+               {
+                       
+               public:
+                       Main(){;};
+                       virtual ~Main(){;};
+                       virtual void initialize(void) = 0;
+                       
+                       
+                       virtual void run() = 0;
+                       virtual sf::system::console::sprite::Sprite * const getBlankSprite() = 0;
+
+                       
+                       static Main * instance();
+               };
+       }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+namespace sf {
+       namespace application {
+               namespace scene {
+                       class AbstractScene : public Scene,public Listener
+                       {
+                       public:
+                               
+                               AbstractScene();
+                               virtual ~AbstractScene();
+                               
+
+                               
+                               virtual void move(void) = 0;
+                               
+                               virtual void sleep(void){mbActive = false;};
+                               virtual void active(void){mbActive = true;};
+                               virtual const bool  isActive(void) const {return mbActive;};
+
+                               virtual void addListener(Listener * const pListener);
+                               virtual void removeListener(Listener * const pListener);
+                               
+                               virtual void callSceneEvent(void(Listener::*pMethod)(Scene* const));
+                       protected:
+                               std::list<Listener*> mListenerList;
+                               system::console::Console *mpConsole;
+                               system::System *mpSystem;
+                               system::sound::Sound *mpSound;
+                               system::input::Input *mpInput;
+                               application::Main * mpMain;
+                               bool mbActive;
+                               bool mbInitialized;
+                       };
+               }
+       }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragma once
+
+
+
+
+namespace sf {
+       namespace application {
+               namespace scene {
+                       
+                       
+                       
+                       class __declspec(novtable) Fade
+                       {
+                       public:
+                               enum TYPE {
+                                       FADE_IN,        
+                                       FADE_OUT        
+                               };
+
+                               Fade(){};
+                               virtual ~Fade(){};
+
+                               
+                               
+                               virtual void speed(const float  value) = 0;
+                               virtual const float  speed() = 0;
+                               
+                               virtual const Fade::TYPE  fadeType() = 0;
+                               virtual void fadeType(const Fade::TYPE  value) = 0;
+                               
+                               virtual const system::console::COLOR startColor(void) = 0;
+                               virtual void startColor(const system::console::COLOR value ) = 0;
+                               
+                               virtual const system::console::COLOR endColor(void) = 0;
+                               virtual void endColor(const system::console::COLOR value) = 0;
+                               
+                               virtual const bool fadeVolumeFlag() = 0;
+                               virtual void fadeVolumeFlag(const bool  value) = 0;
+                               
+                               
+                               
+                               virtual void initialize() = 0;
+
+                       };
+               }
+       }
+}
+
+
+
+
+namespace sf {
+       namespace application {
+               namespace scene {
+
+                       class FadeImpl : public AbstractScene,public Fade  
+                       {
+                       public:
+                               FadeImpl();
+                               virtual ~FadeImpl();
+                               
+                               
+                               void move(void);
+                               const scene::TYPE type() const{return FADE;};
+
+                               void endOfScene(Scene * const pScene) {;};
+                               void exitKeyPressed(Scene * const pScene) {;};
+                               
+                               
+                               
+                               void speed(const float value){ if(!mbMove){ mSpeed = value;};};
+                               const float speed(){return mSpeed;};
+                               
+                               const Fade::TYPE fadeType(){return mType;};
+                               void fadeType(const Fade::TYPE value){if(!mbMove){mType = value;};};
+                               
+                               const system::console::COLOR startColor(void){return mStartColor;};
+                               void startColor(const system::console::COLOR value ){if(!mbMove){mStartColor = value;};};
+                               
+                               const system::console::COLOR endColor(void){return mEndColor;};
+                               void endColor(const system::console::COLOR value){if(!mbMove){mEndColor = value;};};
+                               
+                               const bool  fadeVolumeFlag(){return mbFadeVolume;};
+                               void fadeVolumeFlag(const bool value){if(!mbMove){mbFadeVolume = value;};};
+
+                               void initialize();
+
+                               static Scene * const create(const bool bManage)
+                               {       Scene *pscene = new FadeImpl();
+                                       if(bManage){
+                                               Container::instance()->add(pscene);
+                                       }
+                                       return pscene;
+                               };
+
+                       private:
+                               system::console::COLOR mStartColor,mEndColor;
+                               Fade::TYPE mType;
+                               float mSpeed;
+                               system::System *mpSystem;
+                               system::sound::Sound *mpSound;
+                               float mCurrent,mEnd;
+                               float mVolumePitch;
+                               float mVolume;
+                               bool    mbFadeVolume;
+                               bool mbMove;
+                               system::console::ObjRectangle mFadeObj;
+                       };
+               }
+       }
+}
+
+
+
+
+
+
+
+
+using namespace sf::application::scene;
+
+
+FadeImpl::FadeImpl()
+{
+       mbMove = false;
+       system::System* mpSystem = system::Factory::getInstance();
+       mpSound = mpSystem->sound();
+
+       mStartColor = (0xff000000);
+       mEndColor = 0x00000000;
+       mSpeed = 0.05f;
+       mType = Fade::FADE_IN;
+       mbFadeVolume = true;
+
+       mFadeObj.x(system::console::viewport::X + (system::console::viewport::WIDTH/2.0f));
+       mFadeObj.y(0.0f + (system::console::viewport::HEIGHT / 2.0f));
+       mFadeObj.z(0.0f);
+       mFadeObj.sprite(MainFactory::getInstance()->getBlankSprite());
+       mFadeObj.scalingX(25.0f);
+       mFadeObj.scalingY(60.0f);
+       mFadeObj.color(mStartColor);
+       mFadeObj.visibility(true);
+       mFadeObj.drawMode(system::console::DRAW_TRANS);
+
+       initialize();
+}
+
+
+FadeImpl::~FadeImpl()
+{
+
+}
+
+
+void FadeImpl::initialize(){
+       
+       if(mType == Fade::FADE_IN)
+               mCurrent = 1.0f;
+       else
+               mCurrent = 0.0f;
+
+       mEnd = (float)((mEndColor & 0xff000000) >> 24) / 256.0f; 
+
+       float pitch_ = (mStartColor & 0xff000000) >> 24;
+       
+       
+       if(!pitch_) pitch_ = 0.00001f;
+       if(!mSpeed) mSpeed = 0.00001f;
+       
+       if(mbFadeVolume){
+               mVolumePitch = ((float)system::sound::volume::MIN - (float)mpSound->volumeMax()) 
+                       /  (((float)pitch_) / (mSpeed * 256.0f));
+               pitch_ = ((mStartColor - mEndColor) & 0xff000000) >> 24;
+       
+               if(!pitch_) pitch_ = 0.0001f;
+               if(mType == Fade::FADE_IN){
+                       mVolumePitch = ((float)system::sound::volume::MIN- (float)mpSound->volumeMax()) 
+                               /  (((float)pitch_) / (mSpeed * 256.0f));
+                       mVolume = (float)system::sound::volume::MIN;
+               } else {
+                       mVolumePitch = ((float)system::sound::volume::MIN - (float)mpSound->volumeMax()) 
+                               /  (((float)pitch_) / (mSpeed * 256.0f));
+                       mVolume = (float)mpSound->volumeMax();
+               }
+       }
+}
+
+
+void FadeImpl::move(void)
+{
+       mbMove = true;
+       mCurrent -= mSpeed;
+       
+       if(mbFadeVolume)
+               mVolume -= mVolumePitch;
+       
+       DWORD color = (((DWORD)(256.0f * mCurrent)) << 24) + (mStartColor & 0xffffff);
+               
+       
+       if(mpInput->exit(true)){
+               callSceneEvent(&Listener::exitKeyPressed);
+               delete this;
+               return;
+       }
+
+       
+       if((mCurrent <= mEnd && mType == Fade::FADE_IN) || 
+               (mCurrent >= mEnd && mType == Fade::FADE_OUT) || mpInput->start(true))
+       {
+               callSceneEvent(&Listener::endOfScene);
+               delete this;
+               return;
+       }
+
+
+       mFadeObj.color(color);
+
+       
+       if(mbFadeVolume)
+               mpSound->masterVolume((int)mVolume);
+
+       return;
+}
diff --git a/project/s2001scene/prep.bat b/project/s2001scene/prep.bat
new file mode 100644 (file)
index 0000000..73c0356
--- /dev/null
@@ -0,0 +1 @@
+cl /nologo /MTd /W3 /Gm /GR /GX /ZI /Od /I "..\sfglib" /I "..\s2001" /I ".." /I "..\s2001scene" /I "..\s2001editor" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "S2001_EXPORTS" /Fp"Debug/s2001.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c /EP %1.cpp > %1.prep.txt 
diff --git a/project/s2001scene/s2001scene.cfg b/project/s2001scene/s2001scene.cfg
new file mode 100644 (file)
index 0000000..51629f0
--- /dev/null
@@ -0,0 +1,901 @@
+# Doxyfile 1.2.13
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# General configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
+# by quotes) that should identify the project.
+
+PROJECT_NAME           = s2001
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
+# This could be handy for archiving the generated documentation or 
+# if some version control system is used.
+
+PROJECT_NUMBER         = 
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
+# base path where the generated documentation will be put. 
+# If a relative path is entered, it will be relative to the location 
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = c:/inetpub/wwwroot/s2001/s2001scene
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
+# documentation generated by doxygen is written. Doxygen will use this 
+# information to generate all constant output in the proper language. 
+# The default language is English, other supported languages are: 
+# Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French, 
+# German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, 
+# Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish.
+
+OUTPUT_LANGUAGE        = Japanese
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
+# documentation are documented, even if no documentation was available. 
+# Private class members and static file members will be hidden unless 
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = YES
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file 
+# will be included in the documentation.
+
+EXTRACT_STATIC         = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
+# defined locally in source files will be included in the documentation. 
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
+# undocumented members of documented classes, files or namespaces. 
+# If set to NO (the default) these members will be included in the 
+# various overviews, but no documentation section is generated. 
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
+# undocumented classes that are normally visible in the class hierarchy. 
+# If set to NO (the default) these class will be included in the various 
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
+# include brief member descriptions after the members that are listed in 
+# the file and class documentation (similar to JavaDoc). 
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
+# the brief description of a member or function before the detailed description. 
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
+# Doxygen will generate a detailed section even if there is only a brief 
+# description.
+
+ALWAYS_DETAILED_SEC    = YES
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited 
+# members of a class in the documentation of that class as if those members were 
+# ordinary class members. Constructors, destructors and assignment operators of 
+# the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
+# path before files name in the file list and in the header files. If set 
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
+# can be used to strip a user defined part of the path. Stripping is 
+# only done if one of the specified strings matches the left-hand part of 
+# the path. It is allowed to use relative paths in the argument list.
+
+STRIP_FROM_PATH        = "c:\my documents\genx\project"
+
+# The INTERNAL_DOCS tag determines if documentation 
+# that is typed after a \internal command is included. If the tag is set 
+# to NO (the default) then the documentation will be excluded. 
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
+# doxygen to hide any special comment blocks from generated source code 
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
+# file names in lower case letters. If set to YES upper case letters are also 
+# allowed. This is useful if you have classes or files whose names only differ 
+# in case and if your file system supports case sensitive file names. Windows 
+# users are adviced to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
+# (but less readable) file names. This can be useful is your file systems 
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
+# will show members with their full class and namespace scopes in the 
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
+# will generate a verbatim copy of the header file for each class for 
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = YES
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
+# will put list of the files that are included by a file in the documentation 
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
+# will interpret the first line (until the first dot) of a JavaDoc-style 
+# comment as the brief description. If set to NO, the JavaDoc 
+# comments  will behave just like the Qt-style comments (thus requiring an 
+# explict @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF      = YES
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
+# member inherits the documentation from any documented member that it 
+# reimplements.
+
+INHERIT_DOCS           = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
+# will sort the (detailed) documentation of file and class members 
+# alphabetically by member name. If set to NO the members will appear in 
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
+# tag is set to YES, then doxygen will reuse the documentation of the first 
+# member in the group (if any) for the other members of the group. By default 
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 4
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or 
+# disable (NO) the todo list. This list is created by putting \todo 
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or 
+# disable (NO) the test list. This list is created by putting \test 
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or 
+# disable (NO) the bug list. This list is created by putting \bug 
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# This tag can be used to specify a number of aliases that acts 
+# as commands in the documentation. An alias has the form "name=value". 
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
+# put the command \sideeffect (or @sideeffect) in the documentation, which 
+# will result in a user defined paragraph with heading "Side Effects:". 
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                = 
+
+# The ENABLED_SECTIONS tag can be used to enable conditional 
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       = 
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
+# the initial value of a variable or define consist of for it to appear in 
+# the documentation. If the initializer consists of more lines than specified 
+# here it will be hidden. Use a value of 0 to hide initializers completely. 
+# The appearance of the initializer of individual variables and defines in the 
+# documentation can be controlled using \showinitializer or \hideinitializer 
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 
+# only. Doxygen will then generate output that is more tailored for C. 
+# For instance some of the names that are used will be different. The list 
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
+# at the bottom of the documentation of classes and structs. If set to YES the 
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated 
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are 
+# generated by doxygen. Possible values are YES and NO. If left blank 
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# The WARN_FORMAT tag determines the format of the warning messages that 
+# doxygen can produce. The string should contain the $file, $line, and $text 
+# tags, which will be replaced by the file and line number from which the 
+# warning originated and the warning text.
+
+WARN_FORMAT            = 
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning 
+# and error messages should be written. If left blank the output is written 
+# to stderr.
+
+WARN_LOGFILE           = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain 
+# documented source files. You may enter file names like "myfile.cpp" or 
+# directories like "/usr/src/myproject". Separate the files or directories 
+# with spaces.
+
+#INPUT                  = "j:\project\sfglib" j:/project/s2001scene j:/project/s2001editor j:/project/s2001game j:/project/s2001
+#INPUT                  = ./sfglib ./s2001scene ./s2001editor ./s2001game ./s2001
+INPUT                  = .
+
+# If the value of the INPUT tag contains directories, you can use the 
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank the following patterns are tested: 
+# *.c *.cc *.cxx *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp 
+# *.h++ *.idl
+
+#FILE_PATTERNS          = SYSTEM* INPUT* CONSOLE* SOUND*
+FILE_PATTERNS          = *.cpp *.h
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
+# should be searched for input files as well. Possible values are YES and NO. 
+# If left blank NO is used.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should 
+# excluded from the INPUT source files. This way you can easily exclude a 
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                = 
+
+# If the value of the INPUT tag contains directories, you can use the 
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
+# certain files from those directories.
+
+EXCLUDE_PATTERNS       = 
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or 
+# directories that contain example code fragments that are included (see 
+# the \include command).
+
+EXAMPLE_PATH           = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included.
+
+EXAMPLE_PATTERNS       = 
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
+# searched for input files to be used with the \include or \dontinclude 
+# commands irrespective of the value of the RECURSIVE tag. 
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or 
+# directories that contain image that are included in the documentation (see 
+# the \image command).
+
+IMAGE_PATH             = 
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should 
+# invoke to filter for each input file. Doxygen will invoke the filter program 
+# by executing (via popen()) the command <filter> <input-file>, where <filter> 
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
+# input file. Doxygen will then use the output that the filter program writes 
+# to standard output.
+
+INPUT_FILTER           = "nkf32 -Se "
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
+# INPUT_FILTER) will be used to filter the input files when producing source 
+# files to browse.
+
+FILTER_SOURCE_FILES    = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
+# be generated. Documented entities will be cross-referenced with these sources.
+
+SOURCE_BROWSER         = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body 
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
+# then for each documented function all documented 
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default) 
+# then for each documented function all documented entities 
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
+# of all compounds will be generated. Enable this if the project 
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = NO
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all 
+# classes will be put under the same header in the alphabetical index. 
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = 
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard header.
+
+HTML_HEADER            = 
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard footer.
+
+HTML_FOOTER            = 
+
+# The HTML_STYLESHEET tag can be used to specify a user defined cascading 
+# style sheet that is used by each HTML page. It can be used to 
+# fine-tune the look of the HTML output. If the tag is left blank doxygen 
+# will generate a default style sheet
+
+HTML_STYLESHEET        = 
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
+# files or namespaces will be aligned in HTML using tables. If set to 
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
+# will be generated that can be used as input for tools like the 
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
+# controls if a separate .chi index file is generated (YES) or that 
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
+# controls whether a binary table of contents is generated (YES) or a 
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members 
+# to the contents of the Html help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
+# top of each HTML page. The value NO (the default) enables the index and 
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20]) 
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that 
+# is generated for HTML Help). For this to work a browser that supports 
+# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, 
+# or Internet explorer 4.0+). Note that for large projects the tree generation 
+# can take a very long time. In such cases it is better to disable this feature. 
+# Windows users are probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = YES
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
+# used to set the initial width (in pixels) of the frame in which the tree 
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
+# generate Latex output.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = 
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
+# LaTeX documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used 
+# by the printer. Possible values are: a4, a4wide, letter, legal and 
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         = 
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
+# the generated latex document. The header should contain everything until 
+# the first chapter. If it is left blank doxygen will generate a 
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           = 
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
+# contain links (just like the HTML output) instead of page references 
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
+# plain latex in the generated Makefile. Set this option to YES to get a 
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
+# command to the generated LaTeX files. This will instruct LaTeX to keep 
+# running if errors occur, instead of asking the user for help. 
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
+# The RTF output is optimised for Word 97 and may not look very pretty with 
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = 
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
+# RTF documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
+# will contain hyperlink fields. The RTF file will 
+# contain links (just like the HTML output) instead of page references. 
+# This makes the output suitable for online browsing using WORD or other 
+# programs which support those fields. 
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's 
+# config file, i.e. a series of assigments. You only have to provide 
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    = 
+
+# Set optional variables used in the generation of an rtf document. 
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = 
+
+# The MAN_EXTENSION tag determines the extension that is added to 
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = 
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
+# then it will generate one additional man file for each entity 
+# documented in the real man page(s). These additional files 
+# only source the real man page, but without them the man command 
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will 
+# generate an XML file that captures the structure of 
+# the code including all documentation. Note that this 
+# feature is still experimental and incomplete at the 
+# moment.
+
+GENERATE_XML           = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
+# generate an AutoGen Definitions (see autogen.sf.net) file 
+# that captures the structure of the code including all 
+# documentation. Note that this feature is still experimental 
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
+# evaluate all C-preprocessor directives found in the sources and include 
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
+# names in the source code. If set to NO (the default) only conditional 
+# compilation will be performed. Macro expansion can be done in a controlled 
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
+# then the macro expansion is limited to the macros specified with the 
+# PREDEFINED and EXPAND_AS_PREDEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that 
+# contain include files that are not input files but should be processed by 
+# the preprocessor.
+
+INCLUDE_PATH           = ./ ../sfglib ../s2001scene ../s2001editor ../s2001game ../s2001 /dxsdk/include
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
+# patterns (like *.h and *.hpp) to filter out the header-files in the 
+# directories. If left blank, the patterns specified with FILE_PATTERNS will 
+# be used.
+
+INCLUDE_FILE_PATTERNS  = 
+
+# The PREDEFINED tag can be used to specify one or more macro names that 
+# are defined before the preprocessor is started (similar to the -D option of 
+# gcc). The argument of the tag is a list of macros of the form: name 
+# or name=definition (no spaces). If the definition and the = are 
+# omitted =1 is assumed.
+
+PREDEFINED             = 
+
+# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then 
+# this tag can be used to specify a list of macro names that should be expanded. 
+# The macro definition that is found in the sources will be used. 
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      = 
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
+# doxygen's preprocessor will remove all function-like macros that are alone 
+# on a line and do not end with a semicolon. Such function macros are typically 
+# used for boiler-plate code, and will confuse the parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to external references   
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tagfiles.
+
+TAGFILES               = c:/inetpub/wwwroot/s2001/sfglib/sfglib.tag=../sfglib/html \
+                                               c:/inetpub/wwwroot/s2001/s2001editor.tag=../s2001editor/html
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       = 
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
+# in the class index. If set to NO only the inherited external classes 
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# The PERL_PATH should be the absolute path and name of the perl script 
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
+# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or 
+# super classes. Setting the tag to NO turns the diagrams off. Note that this 
+# option is superceded by the HAVE_DOT option below. This is only a fallback. It is 
+# recommended to install and use dot, since it yield more powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
+# available from the path. This tool is part of Graphviz, a graph visualization 
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = YES
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect inheritance relations. Setting this tag to YES will force the 
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect implementation dependencies (inheritance, containment, and 
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If set to YES, the inheritance and collaboration graphs will show the 
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide 
+# inheritance and usage relations if the target is undocumented 
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
+# tags are set to YES then doxygen will generate a graph for each documented 
+# file showing the direct and indirect include dependencies of the file with 
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
+# documented header file showing the documented files that directly or 
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be 
+# found. If left blank, it is assumed the dot tool can be found on the path.
+
+DOT_PATH               = "C:\Program Files\ATT\Graphviz\bin"
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that 
+# contain dot files that are included in the documentation (see the 
+# \dotfile command).
+
+DOTFILE_DIRS           = 
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_WIDTH    = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT   = 1024
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
+# generate a legend page explaining the meaning of the various boxes and 
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
+# remove the intermedate dot files that are used to generate 
+# the various graphs.
+
+DOT_CLEANUP            = YES
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to the search engine   
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be 
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE           = NO
+
+# The CGI_NAME tag should be the name of the CGI script that 
+# starts the search engine (doxysearch) with the correct parameters. 
+# A script with this name will be generated by doxygen.
+
+CGI_NAME               = 
+
+# The CGI_URL tag should be the absolute URL to the directory where the 
+# cgi binaries are located. See the documentation of your http daemon for 
+# details.
+
+CGI_URL                = 
+
+# The DOC_URL tag should be the absolute URL to the directory where the 
+# documentation is located. If left blank the absolute path to the 
+# documentation, with file:// prepended to it, will be used.
+
+DOC_URL                = 
+
+# The DOC_ABSPATH tag should be the absolute path to the directory where the 
+# documentation is located. If left blank the directory on the local machine 
+# will be used.
+
+DOC_ABSPATH            = 
+
+# The BIN_ABSPATH tag must point to the directory where the doxysearch binary 
+# is installed.
+
+BIN_ABSPATH            = 
+
+# The EXT_DOC_PATHS tag can be used to specify one or more paths to 
+# documentation generated for other projects. This allows doxysearch to search 
+# the documentation for these projects as well.
+
+EXT_DOC_PATHS          = 
diff --git a/project/s2001scene/s2001scene.cpp b/project/s2001scene/s2001scene.cpp
new file mode 100644 (file)
index 0000000..358a4ca
--- /dev/null
@@ -0,0 +1,24 @@
+// s2001scene.cpp : DLL \83A\83v\83\8a\83P\81[\83V\83\87\83\93\97p\82Ì\83G\83\93\83g\83\8a \83|\83C\83\93\83g\82ð\92è\8b`\82µ\82Ü\82·\81B
+//
+
+
+#include "stdafx.h"
+#include "Scene.h"
+BOOL APIENTRY DllMain( HANDLE hModule, 
+                       DWORD  ul_reason_for_call, 
+                       LPVOID lpReserved
+                                        )
+{
+    return TRUE;
+};
+
+extern "C" {
+       namespace sf {
+               namespace application {
+                       namespace scene {
+                               S2001SCENE_DLL Scene * createScene(const int id){};
+                       }
+               }
+       }
+}
\ No newline at end of file
diff --git a/project/s2001scene/s2001scene.dsp b/project/s2001scene/s2001scene.dsp
new file mode 100644 (file)
index 0000000..440ee0e
--- /dev/null
@@ -0,0 +1,184 @@
+# Microsoft Developer Studio Project File - Name="s2001scene" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** \95Ò\8fW\82µ\82È\82¢\82Å\82­\82¾\82³\82¢ **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=s2001scene - Win32 Debug
+!MESSAGE \82±\82ê\82Í\97L\8cø\82ÈÒ²¸Ì§²Ù\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81\82±\82ÌÌßÛ¼Þª¸Ä\82ðËÞÙÄÞ\82·\82é\82½\82ß\82É\82Í NMAKE \82ð\8eg\97p\82µ\82Ä\82­\82¾\82³\82¢\81B
+!MESSAGE [Ò²¸Ì§²Ù\82Ì´¸½Îß°Ä] ºÏÝÄÞ\82ð\8eg\97p\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢
+!MESSAGE 
+!MESSAGE NMAKE /f "s2001scene.mak".
+!MESSAGE 
+!MESSAGE NMAKE \82Ì\8eÀ\8ds\8e\9e\82É\8d\\90¬\82ð\8ew\92è\82Å\82«\82Ü\82·
+!MESSAGE ºÏÝÄޠײÝ\8fã\82ÅϸÛ\82Ì\90Ý\92è\82ð\92è\8b`\82µ\82Ü\82·\81B\97á:
+!MESSAGE 
+!MESSAGE NMAKE /f "s2001scene.mak" CFG="s2001scene - Win32 Debug"
+!MESSAGE 
+!MESSAGE \91I\91ð\89Â\94\\82ÈËÞÙÄÞ Ó°ÄÞ:
+!MESSAGE 
+!MESSAGE "s2001scene - Win32 Release" ("Win32 (x86) Dynamic-Link Library" \97p)
+!MESSAGE "s2001scene - Win32 Debug" ("Win32 (x86) Dynamic-Link Library" \97p)
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "s2001scene - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "S2001SCENE_EXPORTS" /Yu"stdafx.h" /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\sfglib" /I "..\s2001" /I ".." /I "..\s2001editor" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "S2001SCENE_EXPORTS" /Yu"stdafx.h" /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x411 /d "NDEBUG"
+# ADD RSC /l 0x411 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD LINK32 ..\sfglib.lib ..\s2001.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib kernel32.lib user32.lib gdi32.lib ole32.lib advapi32.lib /nologo /dll /machine:I386
+
+!ELSEIF  "$(CFG)" == "s2001scene - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "S2001SCENE_EXPORTS" /Yu"stdafx.h" /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /ZI /Od /I "..\sfglib" /I "..\s2001" /I ".." /I "..\s2001editor" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "S2001SCENE_EXPORTS" /YX /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x411 /d "_DEBUG"
+# ADD RSC /l 0x411 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 ..\sfglib.lib ..\s2001.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib kernel32.lib user32.lib gdi32.lib ole32.lib advapi32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+
+!ENDIF 
+
+# Begin Target
+
+# Name "s2001scene - Win32 Release"
+# Name "s2001scene - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\AuthorImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\FadeImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\GameImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\OverImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\RestartImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\s2001scene.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\StartImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.cpp
+# ADD CPP /Yc"stdafx.h"
+# End Source File
+# Begin Source File
+
+SOURCE=.\TitleImpl.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\AuthorImpl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Fade.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\FadeImpl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Game.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\GameImpl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\OverImpl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\RestartImpl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\StartImpl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\TitleImpl.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# Begin Source File
+
+SOURCE=.\ReadMe.txt
+# End Source File
+# End Target
+# End Project
diff --git a/project/s2001scene/s2001scene.plg b/project/s2001scene/s2001scene.plg
new file mode 100644 (file)
index 0000000..bc1d96e
--- /dev/null
@@ -0,0 +1,25 @@
+<html>
+<body>
+<pre>
+<h1>ËÞÙÄÞ\82ÌÛ¸Þ</h1>
+<h3>
+--------------------\8d\\90¬: s2001scene - Win32 Debug--------------------
+</h3>
+<h3>ºÏÝÄޠײÝ</h3>
+\88ê\8e\9ȩ²Ù "C:\WINDOWS\TEMP\RSP1285.TMP" \82ð\8dì\90¬\82µ\81A\8e\9f\82Ì\93à\97e\82ð\8bL\98^\82µ\82Ü\82·
+[
+/nologo /MTd /W3 /Gm /GR /GX /ZI /Od /I "..\sfglib" /I "..\s2001" /I ".." /I "..\s2001editor" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "S2001SCENE_EXPORTS" /Fp"Debug/s2001scene.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c 
+"C:\My Documents\genx\project\s2001scene\AuthorImpl.cpp"
+]
+Creating command line "cl.exe @C:\WINDOWS\TEMP\RSP1285.TMP" 
+<h3>±³ÄÌ߯Ġ³¨ÝÄÞ³</h3>
+ºÝÊß²Ù\92\86...
+AuthorImpl.cpp
+
+
+
+<h3>\8c\8b\89Ê</h3>
+AuthorImpl.obj - ´×° 0\81A\8cx\8d\90 0
+</pre>
+</body>
+</html>
diff --git a/project/s2001scene/s2001scene.vcproj b/project/s2001scene/s2001scene.vcproj
new file mode 100644 (file)
index 0000000..80e75a2
--- /dev/null
@@ -0,0 +1,501 @@
+<?xml version="1.0" encoding="shift_jis"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="s2001scene"
+       ProjectGUID="{06E944B8-E30F-44C2-A13E-29EC11D0D7BB}"
+       TargetFrameworkVersion="131072"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory=".\Release"
+                       IntermediateDirectory=".\Release"
+                       ConfigurationType="2"
+                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Release/s2001scene.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               InlineFunctionExpansion="1"
+                               AdditionalIncludeDirectories="..\sfglib,..\s2001,..,..\s2001editor"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;S2001SCENE_EXPORTS"
+                               StringPooling="true"
+                               RuntimeLibrary="0"
+                               EnableFunctionLevelLinking="true"
+                               UsePrecompiledHeader="2"
+                               PrecompiledHeaderThrough="stdafx.h"
+                               PrecompiledHeaderFile=".\Release/s2001scene.pch"
+                               AssemblerListingLocation=".\Release/"
+                               ObjectFile=".\Release/"
+                               ProgramDataBaseFileName=".\Release/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               CompileAs="0"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               Culture="1041"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="..\sfglib.lib ..\s2001.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib"
+                               OutputFile=".\Release/s2001scene.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               ProgramDatabaseFile=".\Release/s2001scene.pdb"
+                               RandomizedBaseAddress="1"
+                               DataExecutionPrevention="0"
+                               ImportLibrary=".\Release/s2001scene.lib"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory=".\Debug"
+                       IntermediateDirectory=".\Debug"
+                       ConfigurationType="2"
+                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       CharacterSet="2"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Debug/s2001scene.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="..\sfglib,..\s2001,..,..\s2001editor"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;S2001SCENE_EXPORTS"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="1"
+                               RuntimeTypeInfo="true"
+                               UsePrecompiledHeader="0"
+                               PrecompiledHeaderFile=".\Debug/s2001scene.pch"
+                               AssemblerListingLocation=".\Debug/"
+                               ObjectFile=".\Debug/"
+                               ProgramDataBaseFileName=".\Debug/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               DebugInformationFormat="4"
+                               CompileAs="0"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               Culture="1041"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="..\sfglib.lib ..\s2001.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib"
+                               OutputFile=".\Debug/s2001scene.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               GenerateDebugInformation="true"
+                               ProgramDatabaseFile=".\Debug/s2001scene.pdb"
+                               RandomizedBaseAddress="1"
+                               DataExecutionPrevention="0"
+                               ImportLibrary=".\Debug/s2001scene.lib"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source Files"
+                       Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+                       >
+                       <File
+                               RelativePath="AuthorImpl.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="FadeImpl.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="GameImpl.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="OverImpl.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="RestartImpl.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="s2001scene.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="StartImpl.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="StdAfx.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               UsePrecompiledHeader="1"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                               UsePrecompiledHeader="1"
+                                               PrecompiledHeaderThrough="stdafx.h"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="TitleImpl.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Header Files"
+                       Filter="h;hpp;hxx;hm;inl"
+                       >
+                       <File
+                               RelativePath="AuthorImpl.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Fade.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="FadeImpl.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Game.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="GameImpl.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="OverImpl.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="RestartImpl.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="StartImpl.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="StdAfx.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="TitleImpl.h"
+                               >
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Resource Files"
+                       Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+                       >
+               </Filter>
+               <File
+                       RelativePath="ReadMe.txt"
+                       >
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/project/s2001scene/s2001scene.vcproj.7.10.old b/project/s2001scene/s2001scene.vcproj.7.10.old
new file mode 100644 (file)
index 0000000..123d00d
--- /dev/null
@@ -0,0 +1,380 @@
+<?xml version="1.0" encoding="shift_jis"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="s2001scene"
+       SccProjectName=""
+       SccLocalPath="">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory=".\Release"
+                       IntermediateDirectory=".\Release"
+                       ConfigurationType="2"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="FALSE"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               InlineFunctionExpansion="1"
+                               AdditionalIncludeDirectories="..\sfglib,..\s2001,..,..\s2001editor"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;S2001SCENE_EXPORTS"
+                               StringPooling="TRUE"
+                               RuntimeLibrary="0"
+                               EnableFunctionLevelLinking="TRUE"
+                               UsePrecompiledHeader="3"
+                               PrecompiledHeaderThrough="stdafx.h"
+                               PrecompiledHeaderFile=".\Release/s2001scene.pch"
+                               AssemblerListingLocation=".\Release/"
+                               ObjectFile=".\Release/"
+                               ProgramDataBaseFileName=".\Release/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="TRUE"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="..\sfglib.lib ..\s2001.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib"
+                               OutputFile=".\Release/s2001scene.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               ProgramDatabaseFile=".\Release/s2001scene.pdb"
+                               ImportLibrary=".\Release/s2001scene.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="TRUE"
+                               SuppressStartupBanner="TRUE"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Release/s2001scene.tlb"
+                               HeaderFileName=""/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               Culture="1041"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory=".\Debug"
+                       IntermediateDirectory=".\Debug"
+                       ConfigurationType="2"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="FALSE"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories="..\sfglib,..\s2001,..,..\s2001editor"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;S2001SCENE_EXPORTS"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="1"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="2"
+                               PrecompiledHeaderFile=".\Debug/s2001scene.pch"
+                               AssemblerListingLocation=".\Debug/"
+                               ObjectFile=".\Debug/"
+                               ProgramDataBaseFileName=".\Debug/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="TRUE"
+                               DebugInformationFormat="4"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="..\sfglib.lib ..\s2001.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib winmm.lib"
+                               OutputFile=".\Debug/s2001scene.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               GenerateDebugInformation="TRUE"
+                               ProgramDatabaseFile=".\Debug/s2001scene.pdb"
+                               ImportLibrary=".\Debug/s2001scene.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               MkTypLibCompatible="TRUE"
+                               SuppressStartupBanner="TRUE"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Debug/s2001scene.tlb"
+                               HeaderFileName=""/>
+                       <Tool
+                               Name="VCPostBuildEventTool"/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               Culture="1041"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source Files"
+                       Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+                       <File
+                               RelativePath="AuthorImpl.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="FadeImpl.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="GameImpl.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="OverImpl.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="RestartImpl.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="s2001scene.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="StartImpl.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="StdAfx.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               UsePrecompiledHeader="1"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                               UsePrecompiledHeader="1"
+                                               PrecompiledHeaderThrough="stdafx.h"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="TitleImpl.cpp">
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Header Files"
+                       Filter="h;hpp;hxx;hm;inl">
+                       <File
+                               RelativePath="AuthorImpl.h">
+                       </File>
+                       <File
+                               RelativePath="Fade.h">
+                       </File>
+                       <File
+                               RelativePath="FadeImpl.h">
+                       </File>
+                       <File
+                               RelativePath="Game.h">
+                       </File>
+                       <File
+                               RelativePath="GameImpl.h">
+                       </File>
+                       <File
+                               RelativePath="OverImpl.h">
+                       </File>
+                       <File
+                               RelativePath="RestartImpl.h">
+                       </File>
+                       <File
+                               RelativePath="StartImpl.h">
+                       </File>
+                       <File
+                               RelativePath="StdAfx.h">
+                       </File>
+                       <File
+                               RelativePath="TitleImpl.h">
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Resource Files"
+                       Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+               </Filter>
+               <File
+                       RelativePath="ReadMe.txt">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/project/s2001scene/s2001scene.vcproj.satoshi-PC.satoshi.user b/project/s2001scene/s2001scene.vcproj.satoshi-PC.satoshi.user
new file mode 100644 (file)
index 0000000..65bf665
--- /dev/null
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="shift_jis"?>
+<VisualStudioUserFile
+       ProjectType="Visual C++"
+       Version="9.00"
+       ShowAllFiles="false"
+       >
+       <Configurations>
+               <Configuration
+                       Name="Release|Win32"
+                       >
+                       <DebugSettings
+                               Command=""
+                               WorkingDirectory=""
+                               CommandArguments=""
+                               Attach="false"
+                               DebuggerType="3"
+                               Remote="1"
+                               RemoteMachine="SATOSHI-PC"
+                               RemoteCommand=""
+                               HttpUrl=""
+                               PDBPath=""
+                               SQLDebugging=""
+                               Environment=""
+                               EnvironmentMerge="true"
+                               DebuggerFlavor=""
+                               MPIRunCommand=""
+                               MPIRunArguments=""
+                               MPIRunWorkingDirectory=""
+                               ApplicationCommand=""
+                               ApplicationArguments=""
+                               ShimCommand=""
+                               MPIAcceptMode=""
+                               MPIAcceptFilter=""
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Debug|Win32"
+                       >
+                       <DebugSettings
+                               Command=""
+                               WorkingDirectory=""
+                               CommandArguments=""
+                               Attach="false"
+                               DebuggerType="3"
+                               Remote="1"
+                               RemoteMachine="SATOSHI-PC"
+                               RemoteCommand=""
+                               HttpUrl=""
+                               PDBPath=""
+                               SQLDebugging=""
+                               Environment=""
+                               EnvironmentMerge="true"
+                               DebuggerFlavor=""
+                               MPIRunCommand=""
+                               MPIRunArguments=""
+                               MPIRunWorkingDirectory=""
+                               ApplicationCommand=""
+                               ApplicationArguments=""
+                               ShimCommand=""
+                               MPIAcceptMode=""
+                               MPIAcceptFilter=""
+                       />
+               </Configuration>
+       </Configurations>
+</VisualStudioUserFile>
diff --git a/project/s2001scene/s2001scene.vcxproj b/project/s2001scene/s2001scene.vcxproj
new file mode 100644 (file)
index 0000000..2d7dd7b
--- /dev/null
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{06E944B8-E30F-44C2-A13E-29EC11D0D7BB}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>MultiByte</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>Win32</TargetEnvironment>
+      <TypeLibraryName>.\Release/s2001scene.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>..\sfglib;..\s2001;..;..\s2001editor;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;S2001SCENE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>stdafx.h</PrecompiledHeaderFile>
+      <PrecompiledHeaderOutputFile>.\Release/s2001scene.pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>.\Release/</AssemblerListingLocation>
+      <ObjectFileName>.\Release/</ObjectFileName>
+      <ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <CompileAs>Default</CompileAs>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0411</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>..\sfglib.lib;..\s2001.lib;dinput8.lib;Dxerr8.lib;d3dx8.lib;d3d8.lib;dxguid.lib;d3dxof.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>.\Release/s2001scene.dll</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <ProgramDatabaseFile>.\Release/s2001scene.pdb</ProgramDatabaseFile>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+      <ImportLibrary>.\Release/s2001scene.lib</ImportLibrary>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>Win32</TargetEnvironment>
+      <TypeLibraryName>.\Debug/s2001scene.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>..\sfglib;..\s2001;..;..\s2001editor;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;S2001SCENE_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <PrecompiledHeaderOutputFile>.\Debug/s2001scene.pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
+      <ObjectFileName>.\Debug/</ObjectFileName>
+      <ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <CompileAs>Default</CompileAs>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0411</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>..\sfglib.lib;..\s2001.lib;dinput8.lib;Dxerr8.lib;d3dx8.lib;d3d8.lib;dxguid.lib;d3dxof.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>.\Debug/s2001scene.dll</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>.\Debug/s2001scene.pdb</ProgramDatabaseFile>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+      <ImportLibrary>.\Debug/s2001scene.lib</ImportLibrary>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="AuthorImpl.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="FadeImpl.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="GameImpl.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="OverImpl.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="RestartImpl.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="s2001scene.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="StartImpl.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="StdAfx.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">stdafx.h</PrecompiledHeaderFile>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS</PreprocessorDefinitions>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
+    </ClCompile>
+    <ClCompile Include="TitleImpl.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;S2001SCENE_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="AuthorImpl.h" />
+    <ClInclude Include="Fade.h" />
+    <ClInclude Include="FadeImpl.h" />
+    <ClInclude Include="Game.h" />
+    <ClInclude Include="GameImpl.h" />
+    <ClInclude Include="OverImpl.h" />
+    <ClInclude Include="RestartImpl.h" />
+    <ClInclude Include="StartImpl.h" />
+    <ClInclude Include="StdAfx.h" />
+    <ClInclude Include="TitleImpl.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="ReadMe.txt" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/project/s2001scene/s2001scene.vcxproj.filters b/project/s2001scene/s2001scene.vcxproj.filters
new file mode 100644 (file)
index 0000000..2a9c6c3
--- /dev/null
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{05179d5f-1e12-4edc-bf91-2ed74a6f18b8}</UniqueIdentifier>
+      <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{4c6f0135-6641-4c9b-9544-c8f60ba97ec0}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{bada0df2-f156-40e6-8142-5ab85170f1e4}</UniqueIdentifier>
+      <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="AuthorImpl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="FadeImpl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="GameImpl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="OverImpl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="RestartImpl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="s2001scene.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="StartImpl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="StdAfx.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="TitleImpl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="AuthorImpl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Fade.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="FadeImpl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Game.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="GameImpl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="OverImpl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="RestartImpl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="StartImpl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="StdAfx.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="TitleImpl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="ReadMe.txt" />
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/project/s2001scene/s2001scene.vcxproj.user b/project/s2001scene/s2001scene.vcxproj.user
new file mode 100644 (file)
index 0000000..ace9a86
--- /dev/null
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+</Project>
\ No newline at end of file
diff --git a/project/scenes.txt b/project/scenes.txt
new file mode 100644 (file)
index 0000000..cba11c7
--- /dev/null
@@ -0,0 +1,4 @@
+#
+s2001.dll 0 Author Early
+s2001.dll 0 Title Early
+s2001.dll 0 Game Early
diff --git a/project/sf1.dat b/project/sf1.dat
new file mode 100644 (file)
index 0000000..0cff8a1
--- /dev/null
@@ -0,0 +1,2 @@
+beam.wav
+explos.wav
diff --git a/project/sfglib.dll b/project/sfglib.dll
new file mode 100644 (file)
index 0000000..78f8216
Binary files /dev/null and b/project/sfglib.dll differ
diff --git a/project/sfglib.lib b/project/sfglib.lib
new file mode 100644 (file)
index 0000000..03edb17
Binary files /dev/null and b/project/sfglib.lib differ
diff --git a/project/sfglib/AbstractSprite.cpp b/project/sfglib/AbstractSprite.cpp
new file mode 100644 (file)
index 0000000..0eec3da
--- /dev/null
@@ -0,0 +1,115 @@
+/**
+ * @file
+ * @brief Sprite\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8b¤\92Ê\8eÀ\91\95\82ð\8ds\82¤.
+ * 
+ * \94h\90\83N\83\89\83X\82Å\8b¤\92Ê\82Å\8eg\97p\82Å\82«\82»\82¤\82È\83\81\83\\83b\83h\81A\83\81\83\93\83o\82ð\82±\82±\82Å\8bL\8fq\82µ\82Ü\82·\81B
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+// SYSTEM INCLUDES
+//
+#include <stdio.h>
+#include <queue>
+#include "windows.h"
+#include "windowsx.h"
+
+#include "d3d11.h"
+#include "d3dx11.h"
+#include "dxerr8sf.h"
+
+// PROJECT INCLUDES
+//
+
+
+#include "exception.h"
+#include "sound.h"
+#include "System.h"
+#include "console.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "Obj.h"
+#include "Obj2D.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "input.h"
+#include "AbstractSprite.h"
+#include "ConsoleImpl.h"
+#include "Main.h"
+
+//template class SFDLL std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >;
+
+using namespace sf::system::console;
+using namespace sf::system::console::sprite;
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+AbstractSprite::AbstractSprite()
+{
+//     mpSpriteVtBuf = NULL;
+//     mpSpriteTexture = NULL;
+//     mpSprite3DVtBuf = NULL;
+       mpD3DDevice = NULL;
+       mbUse = false;
+       mCenterX = mCenterY = 0.0f;
+       mWidth = mHeight = 0.0f;
+//     mpMeshMaterials = NULL;
+//     mpMeshTextures = NULL;
+//     mNumMaterials = 0L; 
+//     mpMesh = NULL;
+//     mCellWidth = 0.0f;
+//     mCellHeight = 0.0f;
+//     mCellCount = 0;
+}
+
+AbstractSprite::~AbstractSprite()
+{
+
+}
+
+// \95`\89æ\97p\83\8c\83\93\83_\83\8a\83\93\83O\83X\83e\81[\83g\82Ì\90Ý\92è --------------------------------------------
+void AbstractSprite::setRenderState(const DrawMode value)
+{
+               switch (value)
+               {
+               case DRAW_TRANS:
+                       mpD3DDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
+                       mpD3DDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
+                       break;
+               case DRAW_ADD:
+                       mpD3DDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_ONE);
+                       mpD3DDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_ONE);
+                       break;
+               case DRAW_ADD1:
+                       mpD3DDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_ONE);
+                       mpD3DDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
+                       break;
+               case DRAW_SHADOW:
+                       mpD3DDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_ZERO);
+                       mpD3DDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
+                       break;
+               case DRAW_INV:
+                       mpD3DDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_INVSRCCOLOR);
+                       mpD3DDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_ZERO);
+                       break;
+               case DRAW_MUL:
+                       mpD3DDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_ZERO);
+                       mpD3DDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_SRCCOLOR);
+                       break;
+               }
+
+}// setRenderState
diff --git a/project/sfglib/AbstractSprite.h b/project/sfglib/AbstractSprite.h
new file mode 100644 (file)
index 0000000..0c3c5ee
--- /dev/null
@@ -0,0 +1,101 @@
+/**
+ * @file AbstractSprite.h
+ * @brief Sprite\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8b¤\92Ê\8eÀ\91\95\92è\8b`\82ð\8ds\82¤.
+ * 
+ * \94h\90\83N\83\89\83X\82Å\8b¤\92Ê\82Å\8eg\97p\82Å\82«\82»\82¤\82È\83\81\83\\83b\83h\81A\83\81\83\93\83o\82ð\82±\82±\82Å\8bL\8fq\82µ\82Ü\82·\81B
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+/// \8fd\95¡\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#if !defined(AFX_ABSTRACTSPRITE_H__13F6E957_5370_42BC_B5F5_FEF71D80C1DE__INCLUDED_)
+#define AFX_ABSTRACTSPRITE_H__13F6E957_5370_42BC_B5F5_FEF71D80C1DE__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "sf.h"
+#include "Console.h"
+
+extern "C" {
+
+namespace sf{
+       namespace system{
+               namespace console {
+                       namespace sprite {
+
+/** Sprite\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8b¤\92Ê\8eÀ\91\95 
+ * \94h\90\83N\83\89\83X\82Í\82±\82Ì\92\8a\8fÛ\83N\83\89\83X\82ð\8cp\8f³\82µ\81A\8eÀ\91\95\82µ\82Ü\82·\81B    */
+class AbstractSprite : public Sprite  
+{
+public:
+       /// \83R\83\93\83X\83g\83\89\83N\83^
+       AbstractSprite();
+       /// \83f\83X\83g\83\89\83N\83^
+       virtual ~AbstractSprite();
+       // OPERATIONS //
+       /// \8f\89\8aú\89»\82ð\8ds\82¤
+       virtual void initialize(void) = 0;
+       /** \8f\89\8aú\89»\82ð\8ds\82¤.
+        * @param pD3DDevice Direct3D\81@\83f\83o\83C\83X\82Ì\83|\83C\83\93\83^ */
+       virtual void initialize(LPDIRECT3DDEVICE9       pD3DDevice) = 0;
+       
+       /** \8fI\97¹\8f\88\97\9d\82ð\8ds\82¤ */
+       virtual void uninitialize(void) = 0;
+
+       /** \83e\83N\83X\83`\83\83\83f\81[\83^\82Ì\83\8d\81[\83h\82ð\8ds\82¤.
+        @param pInfo sprite::Info \82Ì\83|\83C\83\93\83
+        @textureFormat D3DFORMAT  
+        @color console::COLOR */
+       virtual void load(const sprite::Info *pInfo,const D3DFORMAT textureFormat,const COLOR color) = 0;
+
+       /** \95`\89æ\97p\83\8c\83\93\83_\83\8a\83\93\83O\83X\83e\81[\83g\82ð\90Ý\92è\82·\82é.
+        * @param value sprite::DrawMode */
+       void setRenderState(const DrawMode value);
+       
+       // ACCESS //
+       
+       /** \83X\83v\83\89\83C\83g\82Ì\8eg\97p\8fó\91Ô\82ð\8eæ\93¾\82·\82é
+        * @return \83X\83v\83\89\83C\83g\82Ì\8eg\97p\8fó\91Ô */
+       const bool use(void) const {return mbUse;};
+       /** \83X\83v\83\89\83C\83g\82Ì\8eg\97p\8fó\91Ô\82ð\8eæ\93¾\82·\82é
+        * @param value \83X\83v\83\89\83C\83g\82Ì\8eg\97p\8fó\91Ô */
+       void use(const bool value){mbUse = value;};
+       
+       const float width(void) const {return mWidth;};
+       void  width(const float value) {mWidth = value;};
+       
+       const float height(void) const {return mHeight;};
+       void height(const float value) {mHeight = value;};
+
+       const float centerX(void) const {return mCenterX;};
+       void centerX(const float value) {mCenterX = value;};
+
+       const float centerY(void)  const {return mCenterY;};
+       void centerY(const float value) {mCenterY = value;};
+
+
+       // INQUIRY //
+       /// \83X\83v\83\89\83C\83g\82Ì\8eg\97p\8fó\91Ô\82Ì\8eæ\93¾
+       const bool isUsed() const {return mbUse;};
+protected:
+
+       bool mbUse;///< \8eg\97p\82µ\82Ä\82¢\82é\82©\82Ç\82¤\82©
+       LPDIRECT3DDEVICE9               mpD3DDevice;///< D3D\83f\83o\83C\83X\82Ì\83|\83C\83\93\83^
+
+       float mWidth;///< \83X\83v\83\89\83C\83g\82Ì\95\9d
+       float mHeight;///< \83X\83v\83\89\83C\83g\82Ì\8d\82\82³
+       float mCenterX;///< \92\86\90SX\8dÀ\95W
+       float mCenterY;///< \92\86\90SY\8dÀ\95W
+
+       TYPE                    mType;///< \83X\83v\83\89\83C\83g\82Ì\83^\83C\83v
+
+};
+                       }
+               }
+       }
+}
+}
+#endif // !defined(AFX_ABSTRACTSPRITE_H__13F6E957_5370_42BC_B5F5_FEF71D80C1DE__INCLUDED_)
diff --git a/project/sfglib/BackGround.cpp b/project/sfglib/BackGround.cpp
new file mode 100644 (file)
index 0000000..12dc74d
--- /dev/null
@@ -0,0 +1,399 @@
+/**
+ * @file
+ * @brief \94w\8ci\95`\89æ\90§\8cä\8aÖ\98A\82Ì\8eÀ\91\95\82ð\8ds\82¤.
+ * 
+ * @author S.F.
+ * @version $Id:
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+#pragma warning( disable : 4786 )      ///<STL\82Ì\8cx\8d\90\8aO\82µ
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+// System Includes //
+
+#include "stdio.h"
+#include <string>
+#include <iostream>
+#include <fstream>
+#include <vector>
+
+// Project Includes //
+
+
+#include "exception.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "system.h"
+#include "console.h"
+#include "Obj.h"
+#include "Obj2D.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+#include "BackGround.h"
+
+# define WIDEN2(x) L ## x
+# define WIDEN(x) WIDEN2(x)
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+using namespace sf::system::console;
+using namespace sf;
+
+const int Background::Map::HEIGHT_MAX = 64;
+const int Background::Map::CELL_SIZE = 64;
+const int Background::Map::WIDTH = 8;
+
+const int Background::Map::DRAW_HEIGHT = 9;
+const float Background::Map::DRAW_START_X  = 96.0f;
+const float Background::Map::DRAW_START_Y  = 448.0f;
+const float Background::Map::DRAW_CENTER_Y = 256.0f;
+
+const int Background::Map::CELL_TEX_COUNT_W = 4;
+const int Background::Map::CELL_TEX_COUNT_H = 4;
+
+const sf::system::console::sprite::Info Background::msBlankSpriteInfo = 
+{
+       "media\\blank.bmp",0.0f,0.0f,0.0f,0.0f,0xff000000,sprite::SPRITE2D
+};
+
+Background::Background() : ObjRectangle()
+{
+       using namespace sf::system;
+
+       System *psys = instance();
+       mpConsole = psys->console();
+
+       z(0.99f);
+       color(0xffffffff);
+       mOffsetX = mOffsetY = 0.0f;
+       mpMap = NULL;
+       
+       mStartOffsetX = mStartOffsetY = 0.0f;
+       mpBlankSprite = instance()->console()->createSprite(&msBlankSpriteInfo);
+       
+       mObj[0].sprite(mpBlankSprite);
+       mObj[1].sprite(mpBlankSprite);
+       mObj[0].visibility(false);
+       mObj[1].visibility(false);
+       mObj[0].z(0.01f);
+       mObj[1].z(0.01f);
+       mObj[0].drawMode(DRAW_ADD);
+       mObj[1].drawMode(DRAW_ADD);
+       
+       for(int i = 0;i < 4;i++){
+               mObj[0].vertex(i)->diffuse  = 0x40000020;
+               mObj[1].vertex(i)->diffuse  = 0x40400000;
+
+               mObj[0].vertex(i)->specular = 0.0f;
+               mObj[1].vertex(i)->specular = 0.0f;
+
+               mObj[0].vertex(i)->z = 0.01f;
+               mObj[1].vertex(i)->z = 0.01f;
+       }
+
+}
+
+Background::~Background()
+{
+       unload();
+       delete mpBlankSprite;
+}
+
+// \83e\83N\83X\83`\83\83\82¨\82æ\82Ñ\83}\83b\83v\83f\81[\83^\82Ì\83A\83\93\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Background::unload()
+{
+       visibility(false);      
+       sprite::Sprite * psprite;
+       for(TextureList::iterator it = mTextureList.begin();it != mTextureList.end();++it)
+       {
+               psprite = *it;
+               delete psprite;
+       }
+       mTextureList.clear();
+       mMapData.clear();
+}// unload()
+
+// \94w\8ci\83f\81[\83^\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Background::load(const char * const pMapFileName)
+{
+       unload();
+       
+       // \83t\83@\83C\83\8b\83l\81[\83\80\82Ì\83o\83b\83N\83A\83b\83v
+       mFileName = pMapFileName;
+
+       std::fstream file(pMapFileName,std::ios::in);
+       
+       if(!file.is_open()){
+               throw FatalErrorException(L"File Open Error",WIDEN(__FILE__),__LINE__);
+       }
+
+       int num_tex,i;
+       sprite::Sprite *psp;
+       sprite::Info sp_info;
+
+       // \83e\83N\83X\83`\83\83\82Ì\93Ç\82Ý\8d\9e\82Ý 
+       file >> num_tex;
+       long flags = 0;
+       for(i = 0;i < num_tex;i++)
+       {
+               file >> sp_info.fileName;
+               file >> sp_info.cellHeight;
+               file >> sp_info.cellWidth;
+               file >> sp_info.centerX;
+               file >> sp_info.centerY;
+
+               flags = file.flags();
+               flags = ((flags ^ std::ios::dec) | std::ios::hex | std::ios::showbase);
+               file.flags(flags);   
+               file >> sp_info.transparentColor;
+
+               flags = ((flags ^ std::ios::hex) | std::ios::dec);
+
+               file.flags(flags);
+               sp_info.type = sprite::SPRITE2D;
+
+               psp = mpConsole->createSprite(&sp_info);
+       
+       
+               if(file.fail())
+               {
+                       throw FatalErrorException(L"File Read Error",WIDEN(__FILE__),__LINE__);
+               };
+
+               mTextureList.push_back(psp);
+               mTextureInfoList.push_back(sp_info);
+       }
+
+       file >> mMapWidth >> mMapHeight;
+       
+       mOffsetYLimit = (float) (mMapHeight - 1) * Map::CELL_SIZE - screen::HEIGHT;
+       flags = ((flags ^ std::ios::dec) | std::ios::hex);
+       file.flags(flags);   
+       
+       //mpMap = new int[ mMapHeight * mMapWidth];
+       DWORD data;
+       for(i = 0;i < mMapWidth * mMapHeight;i ++)
+       {
+               file >> data;
+               if(file.fail()){
+                       throw FatalErrorException(L"File Read Error",WIDEN(__FILE__),__LINE__);
+               }
+               mMapData.push_back(data);
+       }
+
+}//load()
+
+// \83}\83b\83v\83f\81[\83^\82ð\89æ\96Ê\82É\95`\89æ\82·\82é \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Background::draw()
+{
+       // \95\\8e¦\91®\90«\82Ì\83`\83F\83b\83N
+       if(!visibility()) return;
+       
+       int map_offset_y  = (int)(mOffsetY + startOffsetY() ) / Map::CELL_SIZE;
+       float screen_offset_y = (int)(mOffsetY + startOffsetY()) % Map::CELL_SIZE;
+
+       //float sy = Map::DRAW_START_Y + screen_offset_y + map_start_offset_y1;
+       
+       // \95`\89æ\8aJ\8eny\8dÀ\95W
+       float sy = Map::DRAW_START_Y + screen_offset_y;
+
+       float sx = 0.0f;
+       
+       float ex = 0.0f;
+       float ey = 0.0f;
+
+       // \83Z\83\8b\83T\83C\83Y
+       float cell_size = (float)Map::CELL_SIZE;
+       
+       int data,index,spriteNo,dy;
+
+
+       ObjRectangle *pobj = (ObjRectangle *)this;
+       
+       // \83}\83b\83v\83Z\83\8b\82Ì\95`\89æ
+       for(int i = map_offset_y;i < Map::DRAW_HEIGHT + map_offset_y; i++){
+               if(i >= 0 &&  i <  mMapHeight){
+                       sx = Map::DRAW_START_X + mOffsetX + startOffsetX();
+                       dy = i * Map::WIDTH;
+
+                       for(int j = 0;j < Map::WIDTH; j++)
+                       {
+                               data = mMapData[dy + j];
+                               if(data){
+                                       --data;
+                                       index = data & 0xf;
+                                       spriteNo = (data & 0xffff0000) >> 16;
+                       
+                                       y(sy);
+                                       x(sx);
+                       
+                                       ObjRectangle::index(index);
+
+                                       mTextureList[spriteNo]->draw(pobj);
+                               }
+
+                               sx += cell_size;
+
+                       }
+               }
+               sy -= cell_size;
+       }
+
+       // \8eÀ\8dÛ\82Ì\95\\8e¦\83G\83\8a\83A\82ð\82í\82©\82é\82æ\82¤\82É\82·\82é\82½\82ß\82Ì\95\\8e¦ 
+       if(edit()){// \95Ò\8fW\92\86\82Ì\82Ý\95\\8e¦\82·\82é
+               if(startOffsetY() != 0){                
+                       mObj[0].visibility(true);
+                       mObj[0].vertex(0)->x = (viewport::X);
+                       mObj[0].vertex(1)->x = (viewport::X + viewport::WIDTH);
+                       mObj[0].vertex(2)->x = (viewport::X);
+                       mObj[0].vertex(3)->x = (viewport::X + viewport::WIDTH);
+
+                       if(startOffsetY() > 0){
+                               sy = viewport::Y;
+                               ey = viewport::Y + 
+                                       ((viewport::Y + startOffsetY()) < (viewport::Y + viewport::HEIGHT)) 
+                                       ? (startOffsetY() + viewport::Y) 
+                                       : (viewport::Y + viewport::HEIGHT);
+                       } else {
+                               sy = (((viewport::Y + viewport::HEIGHT) + startOffsetY()) > viewport::Y) 
+                                       ?  (viewport::Y + viewport::HEIGHT + startOffsetY()) : viewport::Y  ;
+                               ey = viewport::Y + viewport::HEIGHT;
+                       }
+
+                       mObj[0].vertex(0)->y = (sy);
+                       mObj[0].vertex(1)->y = (sy);
+                       mObj[0].vertex(2)->y = (ey);
+                       mObj[0].vertex(3)->y = (ey);
+               } else {
+                       mObj[0].visibility(false);
+               }
+               
+               if(startOffsetX() != 0){
+                       mObj[1].visibility(true);
+                       mObj[1].vertex(0)->y = (viewport::Y);
+                       mObj[1].vertex(1)->y = (viewport::Y);
+                       mObj[1].vertex(2)->y = (viewport::Y +  viewport::HEIGHT);
+                       mObj[1].vertex(3)->y = (viewport::Y + viewport::HEIGHT);
+
+                       if(startOffsetX() > 0){
+                               sx = viewport::X;
+                               ex = viewport::X + 
+                                       (viewport::X + startOffsetX() < (viewport::X + viewport::WIDTH)) 
+                                               ? ( startOffsetX() + viewport::X)
+                                       : (viewport::X + viewport::WIDTH);
+                       } else {
+                               sx = (((viewport::X + viewport::WIDTH) + startOffsetX()) > viewport::X) 
+                                       ?  (viewport::X + viewport::WIDTH + startOffsetX()) : viewport::X  ;
+                               ex = viewport::X + viewport::WIDTH;
+                       }
+
+                       mObj[1].vertex(0)->x = (sx);
+                       mObj[1].vertex(1)->x = (ex);
+                       mObj[1].vertex(2)->x = (sx);
+                       mObj[1].vertex(3)->x = (ex);
+               } else {
+                       mObj[1].visibility(false);
+               };
+       } else {
+               mObj[1].visibility(false);
+               mObj[0].visibility(false);
+       }
+
+}// draw
+
+// Map\83f\81[\83^\82Ì\83Z\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+bool Background::save(const char *pMapFileName)
+{
+       std::wstring err_savestr = L"Background:save() Error!";
+       int i;
+
+       // \83t\83@\83C\83\8b\83l\81[\83\80\82ªNULL\82Ì\8fê\8d\87\81A\83\8d\81[\83h\8e\9e\82Ì\83t\83@\83C\83\8b\83l\81[\83\80\82ð\8eg\97p
+       if(pMapFileName == NULL){
+               if(mFileName.c_str() == NULL){
+                       return false;
+               } else {
+                       pMapFileName = mFileName.c_str();
+               }
+       }
+
+       std::fstream file(pMapFileName,std::ios::out);
+       
+       if(!file.is_open())
+               return false;
+
+
+       sprite::Info sp_info;
+
+       // \83e\83N\83X\83`\83\83\90\94\82Ì\8f\91\82«\8d\9e\82Ý 
+
+       file << mTextureInfoList.size() << std::endl;
+
+       long flags = 0;
+       
+       for(TextureInfoList::iterator it = mTextureInfoList.begin();
+                       it != mTextureInfoList.end(); it ++)
+       {
+               sp_info = *it;
+               
+               file << sp_info.fileName << std::endl;
+
+               file << sp_info.cellHeight << " ";
+               file << sp_info.cellWidth << " ";
+               file << sp_info.centerX << " ";
+               file << sp_info.centerY << " ";
+
+               flags = file.flags();
+               flags = ((flags ^ std::ios::dec) | std::ios::hex | std::ios::showbase);
+               file.flags(flags);   
+
+               file << sp_info.transparentColor << std::endl;
+
+               flags = ((flags ^ std::ios::hex) | std::ios::dec);
+
+               file.flags(flags);
+               
+               if(file.fail())
+               {
+                       system::instance()->errorTerminate(err_savestr.c_str());
+               };
+       }
+
+       file << mMapWidth << " " << mMapHeight << std::endl;
+       
+       flags = ((flags ^ std::ios::dec) | std::ios::hex);
+       file.flags(flags);   
+       
+       //mpMap = new int[ mMapHeight * mMapWidth];
+       DWORD data;
+       for(i = 0;i < mMapWidth * mMapHeight;i ++)
+       {
+               data = mMapData[i] ;
+
+               file << data;
+               
+               if((i & 0x7) == 7) {
+                       file << std::endl;
+               } else {
+                       file << " ";
+               }
+       
+               if(file.fail()){
+                       system::instance()->errorTerminate(err_savestr.c_str());
+                       return false;
+               }
+       }
+       return true;
+}
+
+// Map\83f\81[\83^\82ð\83Z\83b\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Background::setData(float screenX, float screenY, DWORD value)
+{
+       int y = (int)(viewport::HEIGHT - screenY + mOffsetY) / Map::CELL_SIZE;
+       int x = (int)(screenX + mOffsetX - Map::DRAW_START_X + Map::CELL_SIZE / 2) / Map::CELL_SIZE;
+       mMapData[x + y * Map::WIDTH] = value;
+}
diff --git a/project/sfglib/BackGround.h b/project/sfglib/BackGround.h
new file mode 100644 (file)
index 0000000..5e25714
--- /dev/null
@@ -0,0 +1,154 @@
+/**
+ * @file
+ * @brief \94w\8ci\95`\89æ\90§\8cä\8aÖ\98A\82Ì\8eÀ\91\95\82ð\8ds\82¤.
+ * 
+ * @author S.F.
+ * @version $Id:
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+/// \8fd\95¡\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#if !defined(AFX_Background_H__78BD459C_E52C_4BE9_B8DB_8A6DDAFE1E52__INCLUDED_)
+#define AFX_Background_H__78BD459C_E52C_4BE9_B8DB_8A6DDAFE1E52__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "sf.h"
+extern "C" {
+namespace sf {
+       namespace system {
+               namespace console {
+
+
+/** \94w\8ci\95`\89æ\90§\8cä\82ð\8ds\82¤.
+ * \94w\8ci\82Ì\95`\89æ\82ð\8ds\82¢\82Ü\82·\81B
+ * \94w\8ci\82Í\81A64\81~64pixel\82Ì\83r\83b\83g\83}\83b\83v\82ð\95~\82«\8bl\82ß\82é\82±\82Æ\82Å\8eÀ\8c»\82µ\82Ä\82¢\82Ü\82·\81B
+ * \94w\8ci\89æ\96Ê\82Ì\90Ý\8cv\82Í<a href="../../images/2001031102.gif">\82±\82¿\82ç\82Ì\90}</a>\82ð\82²\8eQ\8fÆ\82­\82¾\82³\82¢*/
+class Background : public ObjRectangle 
+{
+public:
+       ///\83X\83v\83\89\83C\83g\83e\83N\83X\83`\83\83\83\8a\83X\83g\94z\97ñ\8c^\82Ì\92è\8b`
+       typedef std::vector<sprite::Sprite *> TextureList;
+       ///\83X\83v\83\89\83C\83g\83e\83N\83X\83`\83\83\8fî\95ñ\83\8a\83X\83g\94z\97ñ\8c^\82Ì\92è\8b`
+       typedef std::vector<sprite::Info> TextureInfoList;
+       ///\83}\83b\83v\83f\81[\83^\8c^\82Ì\92è\8b`
+       typedef std::vector<int> MapData;
+
+       /// \83R\83\93\83X\83g\83\89\83N\83^
+       Background();
+       /// \83f\83X\83g\83\89\83N\83^
+       virtual ~Background();
+       /// \94w\8ci\95`\89æ\82ð\8ds\82¤
+       virtual void draw();
+       // ACCESS //
+
+       /** \8c»\8dÝ\82Ì\89æ\96Ê\82É\91Î\82·\82é\83I\83t\83Z\83b\83g\82w\8dÀ\95W\82ð\8eQ\8fÆ\82·\82é 
+        * @return \83I\83t\83Z\83b\83gX */
+       const float offsetX() const {return mOffsetX;};
+       
+       /** \8c»\8dÝ\82Ì\89æ\96Ê\82É\91Î\82·\82é\83I\83t\83Z\83b\83g\82w\8dÀ\95W\82ð\90Ý\92è\82·\82é 
+        * @param value \83I\83t\83Z\83b\83gX */
+       void offsetX(const float value){mOffsetX = value;};
+        
+       /** \8c»\8dÝ\82Ì\89æ\96Ê\82É\91Î\82·\82é\83I\83t\83Z\83b\83g\82x\8dÀ\95W\82ð\8eQ\8fÆ\82·\82é 
+        * @return \83I\83t\83Z\83b\83g\82x\8dÀ\95W */
+       const float offsetY() const {return mOffsetY;};
+       
+       /** \8c»\8dÝ\82Ì\89æ\96Ê\82É\91Î\82·\82é\83I\83t\83Z\83b\83g\82x\8dÀ\95W\82ð\90Ý\92è\82·\82é 
+        * @param value \83I\83t\83Z\83b\83g\82x\8dÀ\95W */
+       void offsetY(const float value)
+       {
+               if(value < mOffsetYLimit) mOffsetY = value ;else mOffsetY = mOffsetYLimit;
+               if(mOffsetY < 0.0f) mOffsetY = 0.0f;
+       };
+       
+       /** \95Û\91\82µ\82Ä\82¢\82é\83f\81[\83^\82ð\82·\82×\82Ä\94j\8aü\82·\82é */
+       void unload();
+       
+       /** \83}\83b\83v\83f\81[\83^\82ð\83\8d\81[\83h\82·\82é 
+        * @param pMapFileName \83}\83b\83v\83t\83@\83C\83\8bPATH */
+       void load(const char * const pMapFileName);
+
+       /** \83X\83N\83\8a\81[\83\93\82É\83}\83b\83v\83f\81[\83^\82ð\83Z\83b\83g\82·\82é 
+        * @param screenX \83X\83N\83\8a\81[\83\93X\8dÀ\95
+        * @param screenY \83X\83N\83\8a\81[\83\93Y\8dÀ\95W
+        * @param value \83r\83b\83g\83}\83b\83v\83f\81[\83^\82Ì\83C\83\93\83f\83b\83N\83X */
+       void setData(float screenX,float screenY,DWORD value);
+       
+       /** \83}\83b\83v\83f\81[\83^\82ð\95Û\91\82·\82é 
+        * @param pFileName \95Û\91\90æ\82Ì\83}\83b\83v\83t\83@\83C\83\8bPATH 
+        * @retval true \90¬\8c÷
+        * @retval false \8e¸\94s */
+       bool save(const char *pFileName);
+
+       /** \83X\83v\83\89\83C\83g\83e\83N\83X\83`\83\83\83\8a\83X\83g\94z\97ñ\82ð\8eQ\8fÆ\82·\82é 
+        * @return TextureList\82Ì\83|\83C\83\93\83^ */
+       TextureList* textureList(void){ return &mTextureList;};
+
+       /** \83}\83b\83v\8aÖ\98A\82Ì\92è\90\94\92è\8b`\83N\83\89\83X.
+        * \96¼\91O\8bó\8aÔ\82É\82µ\82½\82©\82Á\82½\82Ì\82Å\82·\82ª\81ABackground\82Ì\92\86\82Ì\92è\8b`\82Æ\82¢\82¤\8c`\82É\82±\82¾\82í\82Á\82½\8c\8b\89Ê\82±\82Ì\82æ\82¤\82È\82±\82Æ\82É...*/
+       class SFDLL Map {
+       public:
+               static const int WIDTH;///< Map\82Ì\95\9d
+               static const int HEIGHT_MAX;///< Map\82Ì\8dÅ\91å\92·
+               static const int CELL_SIZE;///< \83Z\83\8b\82Ì\83T\83C\83Y
+               static const int CELL_TEX_COUNT_W;///< \89æ\96Ê\89¡\82Ì\83}\83b\83v\83Z\83\8b\82Ì\90\94
+               static const int CELL_TEX_COUNT_H;///< \89æ\96Ê\8fc\82Ì\83}\83b\83v\83Z\83\8b\82Ì\90\94
+
+               static const int DRAW_HEIGHT;///< \95`\89æ\8fc\83T\83C\83Y
+               static const float DRAW_START_X;///< \95`\89æ\8aJ\8enX
+               static const float DRAW_START_Y;///< \95`\89æ\8aJ\8enY
+               static const float DRAW_CENTER_Y;///< \95`\89æ\92\86\90SY\8dÀ\95W
+       };
+       
+       /** \95`\89æ\8aJ\8en\83I\83t\83Z\83b\83gX\82ð\8eæ\93¾\82·\82é 
+        * @return \95`\89æ\8aJ\8en\83I\83t\83Z\83b\83gX */
+       const float startOffsetX(void) const {return mbEdit ? mStartOffsetX : 0.0f;};
+
+       /** \95`\89æ\8aJ\8en\83I\83t\83Z\83b\83gX\82ð\83Z\83b\83g\82·\82é 
+        * @param value  \95`\89æ\8aJ\8en\83I\83t\83Z\83b\83gX */
+       void startOffsetX(const float value){mStartOffsetX = value;};
+       
+       /** \95`\89æ\8aJ\8en\83I\83t\83Z\83b\83gY\8dÀ\95W\82ð\8eæ\93¾\82·\82é 
+        * @return \95`\89æ\8aJ\8en\83I\83t\83Z\83b\83gY\8dÀ\95W */
+       const float startOffsetY(void) const {return mbEdit ? mStartOffsetY : 0.0f;};
+       
+       /** \95`\89æ\8aJ\8en\83I\83t\83Z\83b\83gY\82ð\83Z\83b\83g\82·\82é 
+        * @param value  \95`\89æ\8aJ\8en\83I\83t\83Z\83b\83gY */
+       void startOffsetY(const float value){mStartOffsetY = value;};
+       
+       /** \95Ò\8fW\92\86\82©\82Ç\82¤\82©
+        * @return true \95Ò\8fW\92\86 false \95Ò\8fW\92\86\82Å\82È\82¢ */
+       const bool edit(void)  const {return mbEdit;};
+       
+       /** \95Ò\8fW\92\86\82©\82Ç\82¤\82©\90Ý\92è\82·\82é
+        * @param value true \95Ò\8fW\92\86 false \95Ò\8fW\92\86\82Å\82È\82¢ */
+       void edit(const bool value){mbEdit = value;};
+
+private:
+       int mMapWidth,///< Map\82Ì\95\9d
+               mMapHeight;///< Map\82Ì\8d\82\82³
+       float mOffsetYLimit;///< \83I\83t\83Z\83b\83gY\82Ì\8cÀ\93x
+       float mOffsetX,///< \83I\83t\83Z\83b\83gX
+                 mOffsetY;///< \83I\83t\83Z\83b\83gY
+       
+       float mStartOffsetX,///< \95`\89æ\8aJ\8en\83I\83t\83Z\83b\83gX
+       mStartOffsetY;///< \95`\89æ\8aJ\8en\83I\83t\83Z\83b\83gY
+       
+       bool mbEdit;///< \95Ò\8fW\92\86\82©\82Ç\82¤\82©
+       int *mpMap;/// Map\82Ì\8c»\8dÝ\88Ê\92u
+       MapData mMapData;///< MapData
+       TextureList mTextureList;///< \83X\83v\83\89\83C\83g\83e\83N\83X\83`\83\83\94z\97ñ
+       TextureInfoList mTextureInfoList;///< \83X\83v\83\89\83C\83g\83e\83N\83X\83`\83\83\8fî\95ñ\94z\97ñ
+       Console *mpConsole;///< Console\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^
+       std::string mFileName;///< Map\82ÌPATH
+       sf::system::console::sprite::Sprite * mpBlankSprite;///< \8bó\94\92\82Ì\83X\83v\83\89\83C\83g
+       sf::system::console::ObjQuadrangle mObj[2];///< \95Ò\8fW\92\86\82Ì\94ñ\95\\8e¦\97Ì\88æ\82ð\95\\8e¦\82·\82é\82½\82ß\82ÌObjQuadrangle\94z\97ñ
+       static const sf::system::console::sprite::Info Background::msBlankSpriteInfo;///< \8bó\94\92\83X\83v\83\89\83C\83g\8fî\95ñ
+};
+               }
+       }
+}
+}
+#endif // !defined(AFX_Background_H__78BD459C_E52C_4BE9_B8DB_8A6DDAFE1E52__INCLUDED_)
diff --git a/project/sfglib/CVS/Entries b/project/sfglib/CVS/Entries
new file mode 100644 (file)
index 0000000..dee1ab3
--- /dev/null
@@ -0,0 +1,54 @@
+/AbstractObj.cpp/1.1/Fri May 11 10:14:04 2001//
+/AbstractSprite.cpp/1.1/Sun Oct 21 12:12:34 2001//
+/BackGround.cpp/1.1/Sun Oct 21 12:12:34 2001//
+/Console.cpp/1.1/Sun Oct 21 12:12:36 2001//
+/Input.cpp/1.1/Sun Oct 21 12:12:36 2001//
+/InputImpl.cpp/1.1/Sun Oct 21 12:12:36 2001//
+/Main.cpp/1.1/Sun Oct 21 12:12:36 2001//
+/Main.h/1.1/Sun Oct 21 12:12:36 2001//
+/Obj2D.cpp/1.1/Sun Oct 21 12:12:36 2001//
+/Obj3D.cpp/1.1/Sun Oct 21 12:12:36 2001//
+/Obj3DL.cpp/1.1/Sun Oct 21 12:12:36 2001//
+/ObjQuadrangle.cpp/1.1/Sun Oct 21 12:12:36 2001//
+/ObjRectangle.cpp/1.1/Sun Oct 21 12:12:36 2001//
+/Sound.cpp/1.1/Sun Oct 21 12:12:36 2001//
+/SoundImpl.cpp/1.1/Sun Oct 21 12:12:36 2001//
+/Sprite2D.cpp/1.1/Sun Oct 21 12:12:36 2001//
+/Sprite3D.cpp/1.1/Sun Oct 21 12:12:36 2001//
+/SpriteMesh.cpp/1.1/Sun Oct 21 12:12:36 2001//
+/StdAfx.cpp/1.1/Fri Oct 19 23:35:04 2001//
+/StdAfx.h/1.1/Sat Oct 20 00:08:16 2001//
+/dxerr8sf.h/1.1/Sun Oct 21 12:12:36 2001//
+/singleton.h/1.1/Sun Oct 21 12:12:36 2001//
+/Obj.cpp/1.2/Sun Oct 28 21:35:56 2001//
+/Obj.h/1.2/Sun Oct 28 21:35:56 2001//
+/Obj2D.h/1.2/Sun Oct 28 21:35:56 2001//
+/Obj3D.h/1.2/Sun Oct 28 21:35:56 2001//
+/Obj3DL.h/1.2/Sun Oct 28 21:35:56 2001//
+/ObjQuadrangle.h/1.2/Sun Oct 28 21:35:56 2001//
+/ObjRectangle.h/1.2/Sun Oct 28 21:35:56 2001//
+/resource.h/1.2/Sun Oct 21 21:55:22 2001//
+/sf.h/1.2/Sun Oct 28 13:01:58 2001//
+/sfdebug.h/1.2/Mon Oct 22 21:04:08 2001//
+/MAKEFILE/1.1/Sun Oct 28 21:40:54 2001//
+/icon1.ico/1.1/Fri May 11 10:14:02 2001/-kb/
+/AbstractSprite.h/1.3/Tue Nov 06 21:27:42 2001//
+/BackGround.h/1.3/Tue Nov 06 21:27:42 2001//
+/Console.h/1.3/Tue Nov 06 21:27:42 2001//
+/ConsoleImpl.cpp/1.2/Tue Nov 06 21:27:42 2001//
+/ConsoleImpl.h/1.3/Tue Nov 06 21:27:42 2001//
+/Exception.cpp/1.2/Tue Nov 06 21:27:42 2001//
+/Exception.h/1.3/Tue Nov 06 21:27:42 2001//
+/Input.h/1.3/Tue Nov 06 21:27:42 2001//
+/InputImpl.h/1.3/Tue Nov 06 21:27:42 2001//
+/Sound.h/1.3/Tue Nov 06 21:27:42 2001//
+/SoundImpl.h/1.3/Tue Nov 06 21:27:42 2001//
+/Sprite2D.h/1.3/Tue Nov 06 21:27:42 2001//
+/Sprite3D.h/1.3/Tue Nov 06 21:27:42 2001//
+/SpriteMesh.h/1.3/Tue Nov 06 21:27:42 2001//
+/System.cpp/1.3/Tue Nov 06 21:27:42 2001//
+/System.h/1.3/Tue Nov 06 21:27:42 2001//
+/SystemImpl.cpp/1.3/Tue Nov 06 21:27:42 2001//
+/SystemImpl.h/1.3/Tue Nov 06 21:27:44 2001//
+/sfglib.cpp/1.3/Sun Nov 04 12:06:46 2001//
+D
diff --git a/project/sfglib/CVS/Repository b/project/sfglib/CVS/Repository
new file mode 100644 (file)
index 0000000..c5e7adb
--- /dev/null
@@ -0,0 +1 @@
+project/sfglib
diff --git a/project/sfglib/CVS/Root b/project/sfglib/CVS/Root
new file mode 100644 (file)
index 0000000..df6650f
--- /dev/null
@@ -0,0 +1 @@
+:local:c:\home
diff --git a/project/sfglib/Console.h b/project/sfglib/Console.h
new file mode 100644 (file)
index 0000000..0660490
--- /dev/null
@@ -0,0 +1,306 @@
+/**
+ * @file Console.h
+ * @brief \89æ\96Ê\95`\89æ\81i\83X\83v\83\89\83C\83g\81E\94w\8ci\89æ\91\9c\81j\82Ì\83C\83\93\83^\81[\83t\83F\81[\83X\81E\92è\90\94\92è\8b`\82ð\8ds\82¤.
+ * \89æ\96Ê\8aÖ\98A\82Ì\92è\90\94\92è\8b`
+ * \8eÀ\8dÛ\82Ì\8f\88\97\9d\82Í\81AOS\88Ë\91\82Ì\8bï\8fÛ\83N\83\89\83X\82É\94C\82¹\82Ü\82·\81B
+ * 2000/02/18 \82Õ\82æ\81[\82ñ\82³\82ñ\82Ì\83\89\83C\83u\83\89\83\8a\82ð\8eQ\8dl\82É\82R\82c\95\94\95ª\82ð\92Ç\89Á
+ *
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+/// \93ñ\8fd\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#if !defined(AFX_IConsole_H__DB7BCF98_4A51_43E3_B919_9A26C58E6A90__INCLUDED_)
+#define AFX_IConsole_H__DB7BCF98_4A51_43E3_B919_9A26C58E6A90__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include <memory>
+
+#include "sf.h"
+
+extern "C" {
+namespace sf{
+       namespace system {
+               /// \89æ\96Ê\8aÖ\98A\82Ì\83N\83\89\83X\81E\92è\90\94
+               /*! \89æ\96Ê\8aÖ\98A\82Ì\83N\83\89\83X\81E\92è\90\94\82Í\82·\82×\82Ä\82Ì\82±\82Ì\96¼\91O\8bó\8aÔ\82É\8aÜ\82Ü\82ê\82Ü\82·\81B */
+               namespace console {
+                       /// \83J\83\89\81[\8c^\82Ì\92è\8b`
+                       typedef unsigned long COLOR;
+                       
+/** R,G,B,A\82Ì\8ae\90F\82©\82ç\81A32bit\82Ì\92l\82ð\93¾\82é 
+ * Red,Green,Blue,Alpha\82Ì\8ae\90F\90¬\95ª(8bit)\82ð\82à\82Æ\82É\81A32bit\82Ìlong\92l\82ð\90\90¬\82µ\82Ü\82· 
+ * @param a ALPHA\90¬\95ª
+ * @param r RED\90¬\95ª
+ * @param g GREEN\90¬\95ª
+ * @param b BLUE\90¬\95ª */
+#define COLOR(a,r,g,b) ((COLOR)((((a) & 0xff) << 24 )) | (((r) & 0xff) << 16) | (((g) & 0xff) << 8) | ((b) & 0xff)))
+
+                       /** RGB\83J\83\89\81[\82ð\90§\8cä\82·\82é\83N\83\89\83X. 
+                        * 32bit\83J\83\89\81[\82Ì\92l\82©\82ç\81A\8ae\90F\90¬\95ª\82ð\8eæ\82è\8fo\82µ\82½\82è\81A\8ae\90F\90¬\95ª\82ð\93Æ\97§\82µ\82Ä\91\80\8dì\82·\82é\82½\82ß\82É\8dì\90¬\82³\82ê\82½\83N\83\89\83X\82Å\82·\82ª\81A\82 \82Ü\82è\8eg\82í\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B
+                       */
+                       class Color {
+                       public:
+                               Color() { mColor.value32 = 0;};
+                               /** \83R\83\93\83X\83g\83\89\83N\83^\82»\82Ì\82Q *
+                                * @param xolor COLOR \8c^\82Ì\92l */
+                               Color(COLOR color){mColor.value32 = color;};
+                               /** COLOR\82Ì\92l\82ð\8eæ\82è\8fo\82·.
+                                * @return COLOR\8c^\82Ì\92l */
+                               COLOR value(void) const {return mColor.value32;};
+                               /** COLOR\82ð\83Z\83b\83g\82·\82é 
+                                * @param color COLOR\8c^\82Ì\92l */
+                               void value(COLOR color){mColor.value32 = color;};
+
+                               /** \90Ô\82Ì\90¬\95ª\82ð\8eæ\93¾\82·\82é 
+                                * @return \90Ô\90¬\95ª(0-255) */
+                               unsigned char red(void) const { return mColor.value.red;};
+                               /** \90Ô\82Ì\90¬\95ª\82ð\83Z\83b\83g\82·\82é 
+                                * @param value \90Ô\90¬\95ª(0-255) */
+                               void red(unsigned char value) { mColor.value.red = value;};
+
+                               /** \90Â\82Ì\90¬\95ª\82ð\8eæ\93¾\82·\82é 
+                                * @return \90Â\90¬\95ª(0-255) */
+                               unsigned char blue(void) const { return mColor.value.blue;};
+                               /** \90Â\82Ì\90¬\95ª\82ð\83Z\83b\83g\82·\82é 
+                                * @param value \90Â\90¬\95ª(0-255) */
+                               void blue(unsigned char value) { mColor.value.blue = value;};
+                               
+                               /** \97Î\82Ì\90¬\95ª\82ð\8eæ\93¾\82·\82é 
+                                * @return \97Î\90¬\95ª(0-255) */
+                               unsigned char green(void) const { return mColor.value.green;};
+                               /** \97Î\82Ì\90¬\95ª\82ð\83Z\83b\83g\82·\82é 
+                                * @param value \97Î\90¬\95ª(0-255) */
+                               void green(unsigned char value){mColor.value.green = value;};
+                               
+                               /** ALPHA\82Ì\90¬\95ª\82ð\8eæ\93¾\82·\82é 
+                                * @return ALPHA\90¬\95ª(0-255) */
+                               unsigned char alpha(void) const { return mColor.value.alpha;};
+                               /** ALPHA\82Ì\90¬\95ª\82ð\83Z\83b\83g\82·\82é 
+                                * @param value ALPHA\90¬\95ª(0-255) */
+                               void alpha(unsigned char value){mColor.value.alpha = value;};
+
+                       private:
+                               ///\81@\96³\96¼\8b¤\97p\91Ì
+                               union {
+                                       COLOR value32;///< ARGB\82Ì\92l(32bit)
+                                       /// \96³\96¼\8d\\91¢\91Ì
+                                       struct {
+                                               unsigned char blue      :       8;///< \90Â\90¬\95ª
+                                               unsigned char green :   8;///< \97Î\90¬\95ª
+                                               unsigned char red       :       8;///< \90Ô\90¬\95ª
+                                               unsigned char alpha     :       8;///< ALPHA\90¬\95ª
+                                       } value;
+                                       
+                               } mColor;
+                       };
+
+                       /// \83X\83N\83\8a\81[\83\93\8aÖ\98A
+                       namespace screen {
+                               const int WIDTH  = 640;///< \83X\83N\83\8a\81[\83\93\82Ì\95\9d
+                               const int HEIGHT = 480;///< \83X\83N\83\8a\81[\83\93\82Ì\8d\82\82³
+                       };
+                       
+                       /// \83r\83\85\81[\83|\81[\83g\8aÖ\98
+                       namespace viewport {
+                               const int X = 120;      ///< \83r\83\85\81[\83|\81[\83g\8d\92[ X
+                               const int Y = 0;        ///< \83r\83\85\81[\83|\81[\83g\8d\92[ Y
+                               const float Z_MIN = 0.0f;///< \83r\83\85\81[\83|\81[\83g\82y\8dÅ\8f¬
+                               const float Z_MAX = 1.0f;///< \83r\83\85\81[\83|\81[\83g\82y\8dÅ\91å        
+                               const int WIDTH = 400;///< \83r\83\85\81[\83|\81[\83g\82Ì\95\9d
+                               const int HEIGHT = 480;///< \83r\83\85\81[\83|\81[\83g\82Ì\8d\82\82³
+                       };
+                       
+                       const int TEXTURE_COUNT_MIN = 0;///< \83e\83N\83X\83`\83\83\81[\90\94\82Ì\8dÅ\8f¬\92l
+                       const int TEXTURE_COUNT_MAX = 1024;///< \83e\83N\83X\83`\83\83\81[\90\94\82Ì\8dÅ\91å\92l
+
+                       // \83X\83v\83\89\83C\83g
+
+                       class ObjQuadrangle;
+                       class ObjRectangle;
+                       class Obj3DL;
+
+
+                       /// \83X\83v\83\89\83C\83g\8aÖ\98A
+                       namespace sprite {
+                               const int MIN = 0;      ///< \83X\83v\83\89\83C\83g\90\94\8dÅ\8f¬\92l\81H
+                               const int MAX = 1024; ///< \83X\83v\83\89\83C\83g\90\94\8dÅ\91å\92l
+       
+                               /// \83X\83v\83\89\83C\83g\82Ì\83^\83C\83v
+                               enum TYPE
+                               {
+                                       SPRITE2D,///< 2D\83X\83v\83\89\83C\83g\82Å\82 \82é(\8dÀ\95W\82ª2D)
+                                       SPRITE3D,///< 3D\83X\83v\83\89\83C\83g\82Å\82 \82é(\8dÀ\95W\82ª3D)
+                                       MESH ///< \83\81\83b\83V\83\85\82Å\82 \82é(X\83t\83@\83C\83\8b)
+                               };
+
+                               /** \83X\83v\83\89\83C\83g\92è\8b`\8fî\95ñ\8d\\91¢\91Ì.
+                               * \83X\83v\83\89\83C\83g\82ð\92è\8b`\82·\82é\82½\82ß\82Ì\8d\\91¢\91Ì\82Å\82·\81B
+                               * \83X\83v\83\89\83C\83g\82Ì\90\90¬\82Í\81AConsole \83C\83\93\83^\81[\83t\83F\81[\83X\82ÌConsole::createSprite()\82Ì\88ø\90\94\82Æ\82µ\82Ä\82±\82Ì\8d\\91¢\91Ì\82ð\93n\82µ\8ds\82¢\82Ü\82·\81B*/
+                               struct Info {
+                                       char fileName[_MAX_PATH];///< \83r\83b\83g\83}\83b\83v\83t\83@\83C\83\8b\83l\81[\83\80
+                                       float centerX;///< \92\86\90S\82ÌX\8dÀ\95W
+                                       float centerY;///< \92\86\90S\82ÌY\8dÀ\95W
+                                       float cellWidth;///< \95\9d
+                                       float cellHeight;///< \8d\82\82³
+                                       COLOR transparentColor;///< \93§\89ß\90F
+                                       TYPE type;///< \83X\83v\83\89\83C\83g\82Ì\83^\83C\83v
+                               };
+
+                       
+                               /** \83X\83v\83\89\83C\83g\82Ì\95`\89æ\90§\8cä\82ð\8ds\82¤. 
+                                * \8eÀ\8dÛ\82Ì\83X\83v\83\89\83C\83g\95`\89æ\82ð\8ds\82¤\83C\83\93\83^\81[\83t\83F\81[\83X\82Å\82·\81B
+                                * ObjRectangle\82È\82Ç\82Ì\8dÀ\95W\82ð\95Û\8e\9d\82·\82é\83N\83\89\83X\82ð\88ø\90\94\82É\89æ\96Ê\82É\8e©\90g\82ª\95Û\8e\9d\82µ\82Ä\82¢\82é\83r\83b\83g\83}\83b\83v\82ð\89æ\96Ê\82É\95`\89æ\82µ\82Ü\82·\81B
+                                * @Section Sprite\83C\83\93\83^\81[\83t\83F\81[\83X\82ÆObj\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8aÖ\8cW\82É\82Â\82¢\82Ä.
+                                * @para Obj\83C\83\93\83^\81[\83t\83F\81[\83X\82ÆSprite\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8aÖ\8cW
+                                * console::Sprite\82Í\81A\83e\83N\83X\83`\83\83\82Ì\83r\83b\83g\83}\83b\83v\81Auv\8dÀ\95W\82ð\95Û\8e\9d\82µ\81Aconsole::Obj\82Ì\8cp\8f³\83N\83\89\83X\82É\89\9e\82\82½console::Sprite::draw()\83\81\83\\83b\83h\82ð\8e\9d\82¿\82Ü\82·\81B<br>
+                                * console::Obj\82Í\81Aconsole::Sprite\82ð\89æ\96Ê\8fã\82Ç\82Ì\82æ\82¤\82É\95\\8e¦\82·\82é\82Ì\82©\82ð\8ew\92è\82·\82é\82½\82ß\82Ì\83C\83\93\83^\81[\83t\83F\81[\83X\82Å\82·*/
+                               class Sprite
+                               {
+                               public:
+                                       /// \83f\83X\83g\83\89\83N\83^
+                                       virtual ~Sprite(){;};
+                                       /** ObjRectangle \82ð\88ø\90\94\82É\83X\83v\83\89\83C\83g\82ð\95`\89æ\82µ\82Ü\82·. 
+                                        * @param pObj ObjRectangle\83N\83\89\83X\82Ö\82Ì\83|\83C\83\93\83^ */
+                                       virtual void draw(const sf::system::console::ObjRectangle * const pObj) = 0;
+                                       /** ObjQuadrangle \82ð\88ø\90\94\82É\83X\83v\83\89\83C\83g\82ð\95`\89æ\82µ\82Ü\82·. 
+                                        * @param pObj ObjQuadrangle\83N\83\89\83X\82Ö\82Ì\83|\83C\83\93\83^ */
+                                       virtual void draw(const sf::system::console::ObjQuadrangle * const pObj) = 0;
+                                       /** Obj3DL \82ð\88ø\90\94\82É\83X\83v\83\89\83C\83g\82ð\95`\89æ\82µ\82Ü\82·. 
+                                        * @param pObj Obj3DL \83N\83\89\83X\82Ö\82Ì\83|\83C\83\93\83^ */
+                                       virtual void draw(const sf::system::console::Obj3DL * const pObj) = 0;
+                                       /** \83X\83v\83\89\83C\83g\82Ì\92\86\90SX\8dÀ\95W\82ð\8eæ\93¾\82·\82é.
+                                        * @return \83X\83v\83\89\83C\83g\82Ì\92\86\90SX\8dÀ\95W */
+                                       virtual const float centerX(void) const = 0;
+                                       /** \83X\83v\83\89\83C\83g\82Ì\92\86\90SY\8dÀ\95W\82ð\8eæ\93¾\82·\82é.
+                                        * @return \83X\83v\83\89\83C\83g\82Ì\92\86\90SY\8dÀ\95W */
+                                       virtual const float centerY(void) const  = 0;
+                                       /** \83X\83v\83\89\83C\83g\82Ì\95\9d\82ð\8eæ\93¾\82·\82é.
+                                        * @return \83X\83v\83\89\83C\83g\82Ì\95\9d */
+                                       virtual const float width(void) const = 0;
+                                       /** \83X\83v\83\89\83C\83g\82Ì\92\86\90S\8d\82\82³\82ð\8eæ\93¾\82·\82é.
+                                        * @return \83X\83v\83\89\83C\83g\82Ì\8d\82\82³ */
+                                       virtual const float height(void) const = 0;
+                               };// Sprite
+                               
+                               /// Sprite\82Ì\83X\83}\81[\83g\83|\83C\83\93\83
+                               typedef std::auto_ptr<Sprite> PSprite;
+
+                       };
+                       
+                       /**  \83t\83H\83\93\83g\8aÖ\98
+                        *\82±\82±\82Å\82¢\82¤\83t\83H\83\93\83g\82Í\81AOS\82ª\8e\9d\82Â\82à\82Ì\82Å\82Í\82È\82­\81A\93Æ\8e©\82É\83r\83b\83g\83}\83b\83v\82Å\95Û\8e\9d\82µ\82Ä\82¢\82é\82à\82Ì\82ð\82³\82µ\82Ü\82·\81B*/
+                       namespace font {
+                               const int COUNT_MAX = 2;///< \83t\83H\83\93\83g\82Ì\90\94
+                               const int TEXTURE_WIDTH = 128;///< \83t\83H\83\93\83g\83r\83b\83g\83}\83b\83v\82Ì\95\9d
+                               const int TEXTURE_HEIGHT = 64;///< \83t\83H\83\93\83g\83r\83b\83g\83}\83b\83v\82Ì\8d\82\82³
+                               const int WIDTH = 8;///< \83t\83H\83\93\83g\82Ì\95\9d
+                               const int HEIGHT = 8;///< \83t\83H\83\93\83g\82Ì\8d\82\82³
+                               /// \83t\83H\83\93\83g\83t\83@\83C\83\8b\83l\81[\83\80\94z\97ñ 
+                               const char FILE_PATH[COUNT_MAX][MAX_PATH_] 
+                                       = {     "media\\font1.png",
+                                       "media\\font2.png"
+                               };
+                       }
+
+                       /// \83e\83L\83X\83g\90§\8cä\8aÖ\98A
+                       namespace text {
+                               const int BUFFER_LENGTH = 1024;///< \83e\83L\83X\83g\95Û\8e\9d\83o\83b\83t\83@\82Ì\83T\83C\83Y
+                               const float COLUMN_PITCH = 8.0f;///< \83e\83L\83X\83g\82Ì\83J\83\89\83\80\83s\83b\83`
+                               const float LINE_PITCH = 10.0f;///< \83e\83L\83X\83g\82Ì\8ds\83s\83b\83`
+                       }
+
+                       /// \83J\83X\83^\83\80\92¸\93_\83t\83H\81[\83}\83b\83g
+                       struct Vertex {
+                               float           x,///< x\8dÀ\95W
+                                                       y,///< y\8dÀ\95W
+                                                       z,///< z\8dÀ\95W
+                                                       rhw;///< ???
+                               DWORD   diffuse,///< \83f\83B\83t\83\85\81[\83Y\90¬\95ª
+                                               specular;///< \83X\83y\83L\83\85\83\89\81[\90¬\95ª
+                               float   tu,///< \83e\83N\83X\83`\83\83\82Ìu\90¬\95ª
+                                               tv;///< \83e\83N\83X\83`\83\83\82Ìv\90¬\95ª
+                       };
+
+
+                       /// \89æ\96Ê\82Ì\95`\89æ\90§\8cä\82ð\8ds\82¤
+                       /*! \89æ\96Ê\82Ì\95`\89æ\90§\8cä\82ð\8ds\82¤\83C\83\93\83^\81[\83t\83F\81[\83X\82Å\82·\81
+                        * @note Console\83N\83\89\83X\82Í\81AOS\8cÅ\97L\82Ì\89æ\96Ê\95`\89æ\8eü\82è\82Ì\8eÀ\91\95\82ð\92\8a\8fÛ\89»\82·\82é\96Ú\93I\82ª\82 \82è\82Ü\82·\81B<br>\92\8a\8fÛ\89»\82ð\8ds\82¤\8dÛ\82É\82Í\81AOS\82É\88Ë\91\82µ\82È\82¢\82æ\82è\88ê\94Ê\89»\82µ\82½\8c¾\97t\82Å\8bL\8fq\82·\82×\82«\82Å\82·\82ª\81A
+                        * \8dì\8eÒ\82ªDirectX\82µ\82©\92m\82ç\82È\82¢\82½\82ß\81A\8eÀ\91\95\82¨\82æ\82Ñ\89ð\90à\82ÉOS\8cÅ\97L\82Ì\95\\8c»\82ª\82 \82é\89Â\94\\90«\82ª\82 \82è\82Ü\82·\81B*/
+                       class Console 
+                       {
+                               // LIFECYCLE //
+                       public:
+                               /// \83f\83X\83g\83\89\83N\83^
+                               virtual ~Console(){;};
+
+                               // OPERATORS //
+                               // OPERATIONS //
+                               /** Console\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8f\89\8aú\89»\82ð\8ds\82¤ 
+                                * Console \83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8eÀ\91\95\83N\83\89\83X\82Ì\8f\89\8aú\89»\82ð\8ds\82¤\82½\82ß\82Ì\89¼\91z\8aÖ\90\94\82Å\81A\92Ê\8fí\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82©\82ç\8cÄ\82Ñ\8fo\82³\82ê\82é\82±\82Æ\82Í\82 \82è\82Ü\82¹\82ñ\81B
+                                */
+                               virtual void initialize(void) = 0;
+
+                               /** \89æ\96Ê\8fÁ\8b\8e\82ð\8ds\82¤.
+                                * \83X\83N\83\8a\81[\83\93\82ð\8fÁ\8b\8e\82µ\82Ü\82·\81B
+                                * @param value \93h\82è\82Â\82Ô\82·\90F */
+                               virtual void clearScreen(COLOR value = 0x00000000) = 0;
+
+                               /** \89æ\96Ê\8fÁ\8b\8e\82ð\8ds\82¤.
+                                * \83X\83N\83\8a\81[\83\93\82ð\8ew\92è\90F\82Å\93h\82è\82Â\82Ô\82µ\82Ü\82·\81B
+                                * @param value \93h\82è\82Â\82Ô\82·\90F */
+                               virtual void fillScreen(COLOR value = 0x00000000) = 0;
+
+                               /** \89æ\96Ê\8dX\90V\82ð\8ds\82¤. 
+                                * \89æ\96Ê\8dX\90V\82ð\8ds\82¢\82Ü\82·\81B
+                                * Windows\82Å\82Í\81A\83o\83b\83N\83o\83b\83t\83@\82©\82ç\83v\83\89\83C\83}\83\8a\83T\81[\83t\83F\81[\83X\82Ö\82Ì\93]\91\97\82ð\8ds\82¢\82Ü\82·\81B
+                                * \82Ü\82½\81A\83X\83v\83\89\83C\83g\82Ì\95`\89æ\81A\83e\83L\83X\83g\83o\83b\83t\83@\82É\92~\90Ï\82³\82ê\82½\95\8e\9a\97ñ\82Ì\95`\89æ\82à\82 \82í\82¹\82Ä\8ds\82¢\82Ü\82·\81B
+                                */
+                               virtual void update(void) = 0;
+                               
+                               /// \83o\83b\83N\83o\83b\83t\83@\82ÉAscii\95\8e\9a\97ñ\82ð\8ew\92è\82µ\82½\83e\83N\83X\83`\83\83\81[\94Ô\8d\86\82Å\95\\8e¦\82·\82é\81B
+                               /*! @param textureNo \83t\83H\83\93\83g\97p\83e\83N\83X\83`\83\83\82Ì\94Ô\8d\86 @ref sf::system::console::font::FILE_PATH \82ð\8eQ\8fÆ
+                                *      @param x \95\\8e¦\8aJ\8enX\8dÀ\95W
+                                *      @param y \95\\8e¦\8aJ\8enY\8dÀ\95W
+                                *      @param angleRad \95\\8e¦\8ap\93x\82ð\83\89\83W\83A\83\93\82Å\8ew\92è
+                                *      @param scale \8ag\91å\8fk\8f¬\97¦
+                                *      @param color \95\\8e¦\90F
+                                *  @param format printf\82Ì\83t\83H\81[\83}\83b\83g\95\8e\9a\97ñ
+                                *  @param ... \95\\8e¦\82µ\82½\82¢\95Ï\90\94\97ñ */  
+                               virtual void print(const int textureNo,const float x,const float y,const float angleRad,const float scale,const COLOR color,
+                                       const char *format,...) = 0;
+
+                               /**  \83X\83v\83\89\83C\83g\83f\81[\83^\82ð\83\8d\81[\83h\82·\82é. 
+                                * sprite::Info\82Ì\8fî\95ñ\82É\8f]\82Á\82Ä\83X\83v\83\89\83C\83g\83f\81[\83^\82ð\83\8d\81[\83h\82µ\81ASprite\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^\82ð\95Ô\82µ\82Ü\82·\81B
+                                * @param pInfo sprite::Info \8d\\91¢\91Ì\82Ì\83|\83C\83\93\83
+                                * @return Sprite\83C\83\93\83^\81[\83t\83F\81[\83X\82Ö\82Ì\83|\83C\83\93\83^ */
+                               virtual sprite::Sprite * const createSprite(const sprite::Info* const pInfo) = 0;
+                               // ACCESS //
+                               
+                               // INQUIRY //
+                               /// \83R\83\93\83\\81[\83\8b\82ª\8eg\97p\89Â\82©\94Û\82©\82ð\95Ô\82·
+                               /*! @retval true \8eg\97p\89 
+                                *  @retval false \8eg\97p\95s\89 */
+                               virtual const bool isEnabled(void) const = 0;
+                       };// Console()
+                       
+                       /** \83X\83v\83\89\83C\83g\95`\89æ\83^\83C\83
+                        *
+                        * \83X\83v\83\89\83C\83g\82Ì\93§\89ß\8f\88\97\9d\82ð\82Ç\82Ì\83^\83C\83v\82Å\8ds\82¤\82©\8ew\92è\82µ\82Ü\82·\81B */
+                       enum DrawMode {
+                               DRAW_TRANS,///< \92Ê\8fí\82Ì\93§\89ß\8f\88\97\9d
+                               DRAW_ADD,///< \89Á\8eZ\8d\87\90¬
+                               DRAW_ADD1,///< \89Á\8eZ\8d\87\90¬1
+                               DRAW_SHADOW,///< \96Y\82ê\82Ü\82µ\82½
+                               DRAW_INV,///< \94½\93]\8d\87\90¬
+                               DRAW_MUL///< \8fæ\8eZ\8d\87\90¬
+                       };// DrawMode
+
+               }// namespace console
+       }// namespace system
+}//namespace sf
+}
+#endif // !defined(AFX_IConsole_H__DB7BCF98_4A51_43E3_B919_9A26C58E6A90__INCLUDED_)
diff --git a/project/sfglib/ConsoleImpl.cpp b/project/sfglib/ConsoleImpl.cpp
new file mode 100644 (file)
index 0000000..a212f01
--- /dev/null
@@ -0,0 +1,891 @@
+/**
+ * @file
+ * @brief \89æ\96Ê\95`\89æ\81i\83X\83v\83\89\83C\83g\81E\94w\8ci\89æ\91\9c\81j\82Ì\8eÀ\91\95\82ð\8ds\82¤.
+ *
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+
+#pragma warning( disable : 4786 4251)  //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+// SYSTEM INCLUDES
+//
+#include <stdio.h>
+#include <queue>
+#include "windows.h"
+#include "windowsx.h"
+
+#include "d3d8.h"
+#include "d3dx8.h"
+#include "dxerr8sf.h"
+
+
+// PROJECT INCLUDES
+//
+#include "exception.h"
+#include "sound.h"
+#include "System.h"
+#include "console.h"
+#include "Obj.h"
+#include "Obj2D.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "input.h"
+#include "AbstractSprite.h"
+
+
+
+#include "ConsoleImpl.h"
+#include "Main.h"
+#include "Sprite2D.h"
+#include "Sprite3D.h"
+#include "SpriteMesh.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+using namespace sf::system::console;
+using namespace sf::system::console::sprite;
+
+
+ConsoleImpl::ConsoleImpl()
+{
+       mbD3DReady = false;
+       mpD3D = NULL;
+       mpD3DDevice = NULL;
+       mpD3DXSprite = NULL;
+}
+
+ConsoleImpl::ConsoleImpl(const HWND hwnd,const bool bWindow)
+{
+       // HWND\82Ì\83R\83s\81[
+       mhWndMain = hwnd;
+       mbWindowed = bWindow;
+
+}
+
+ConsoleImpl::~ConsoleImpl()
+{
+       uninitialize();
+}
+
+void ConsoleImpl::initialize(void)
+{
+       initialize(mhWndMain,mbWindowed);
+};
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ConsoleImpl::initialize(const HWND hwnd,const bool bWindow)
+{
+       int i;
+       HRESULT hr;
+                               
+       // \8ae\8d\80\96Ú\82Ì\83N\83\8a\83A
+                               
+       mpD3D = NULL;
+       mpD3DDevice = NULL;
+       mpD3DXSprite = NULL;
+       
+       mbD3DReady = false;
+       mbWindowed = false;
+       
+       for(i = 0;i < font::COUNT_MAX;i++)
+       {
+               mpFontTexture[i] = NULL;
+       }
+       
+       ZeroMemory( &mD3Dpp, sizeof(mD3Dpp) );
+       
+       // HWND\82Ì\83R\83s\81[
+       mhWndMain = hwnd;
+       
+       // D3D Object \82Ì\90\90¬
+       if( NULL == ( mpD3D = Direct3DCreate8( D3D_SDK_VERSION ) ) )
+               throw FatalErrorException("D3D8 Create Error",__FILE__,__LINE__);
+       
+       checkAndSetDevice();
+       
+       //
+       //D3DPRESENT_PARAMETERS mD3Dpp; 
+       
+       ZeroMemory(&mD3Dpp,sizeof(mD3Dpp));
+
+       if(bWindow){
+               //\83E\83B\83\93\83h\83E\83\82\81[\83h\81i\83f\83o\83b\83O\97p\81j
+               D3DDISPLAYMODE d3ddm;
+               if( FAILED( hr = mpD3D->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &d3ddm ) ) )
+               {       throw FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);     }
+               mD3Dpp.Windowed = TRUE;
+               mD3Dpp.BackBufferFormat = d3ddm.Format;
+               mD3DFormat = d3ddm.Format;
+               mD3Dpp.SwapEffect = D3DSWAPEFFECT_COPY;
+               mbWindowed = true;
+       } else {
+               //\83t\83\8b\83X\83N\83\8a\81[\83\93\83\82\81[\83h
+               mD3Dpp.Windowed = FALSE;
+               mD3Dpp.BackBufferWidth = screen::WIDTH;
+               mD3Dpp.BackBufferHeight = screen::HEIGHT;
+               mD3Dpp.BackBufferCount = 1;
+               mD3Dpp.BackBufferFormat = mD3DFormat;
+               mD3Dpp.FullScreen_RefreshRateInHz = 0;
+               mD3Dpp.FullScreen_PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE ;
+               mD3Dpp.SwapEffect = D3DSWAPEFFECT_COPY;
+//             mD3Dpp.Flags = D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;
+               mbWindowed = false;
+       }
+       
+       mD3Dpp.EnableAutoDepthStencil = TRUE;
+       mD3Dpp.AutoDepthStencilFormat = mDepthFormat;
+       //      mD3Dpp.MultiSampleType = D3DMULTISAMPLE_NONE;
+       mD3Dpp.hDeviceWindow = hwnd;
+       
+       //3D\83f\83o\83C\83X\82Ì\8eæ\93¾//
+       // HAL\82©REF\82Ì\82Ç\82¿\82ç\82©\82ð\8eæ\93¾ //
+       if( FAILED( hr = mpD3D->CreateDevice( D3DADAPTER_DEFAULT, mD3DDeviceType, hwnd,
+               D3DCREATE_SOFTWARE_VERTEXPROCESSING,
+               &mD3Dpp, &mpD3DDevice ) ) )
+       {
+               throw FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+       }
+
+       // \83X\83v\83\89\83C\83g\83I\83u\83W\83F\83N\83g\82Ì\8f\89\8aú\89»
+       for(i = 0;i < sprite::MAX;i++)
+       {
+               mpSprite[i] = NULL;
+               //mSprite[i]->initialize(mpD3DDevice);
+       }
+
+       
+       // D3DDevice\82ªReset\8e\9e\82É\94j\8aü\82µ\82È\82­\82Ä\82Í\82¢\82¯\82È\82¢\83I\83u\83W\83F\83N\83g\82Ì\8f\89\8aú\89»
+       initNotManagedObjects();
+       
+       // \89æ\96Ê\81E\83r\83\85\81[\83|\81[\83g\82Ì\83R\81[\83f\83B\83l\81[\83g
+       initConsoleViewStyle();
+       
+       // \83f\83o\83C\83X\82Ì\8f\89\8aú\89»
+       initDeviceStates();
+       
+       // \95\8e\9a\83t\83H\83\93\83g\82Ì\83\8d\81[\83h
+       loadFont();
+
+       // Lock the surface and write the alpha values for the set pixels
+#ifdef _DEBUG 
+       D3DSURFACE_DESC des;
+       mpFontTexture[0]->GetLevelDesc(0,&des);
+       char pdebug_str[256];
+       sprintf(pdebug_str,"format: %d ",des.Format);
+       OutputDebugString(pdebug_str);
+#endif
+       //\83N\83\8a\83b\83v\97Ì\88æ\82ð\83N\83\8a\83A//
+       mbD3DReady = true;
+}//initialize()
+
+// \8dÅ\93K\82È\82R\82c\83f\83o\83C\83X\82ð\93¾\82é --------------------------------------------------
+void ConsoleImpl::checkAndSetDevice(const D3DDEVTYPE devtype)
+{
+       try {
+               checkAndSetDeviceType(devtype);
+       } catch(RecoverbleErrorException e) {
+               if(e.errorType() == sf::system::Exception::DEVICE_NOT_FOUND){
+                       try {
+                               checkAndSetDeviceType(D3DDEVTYPE_REF);
+                       } catch (RecoverbleErrorException e){
+                               if(e.errorType() == sf::system::Exception::DEVICE_NOT_FOUND){
+                                       throw FatalErrorException("Device Not Found",__FILE__,__LINE__,sf::system::Exception::DEVICE_NOT_FOUND);
+                               }
+                       } catch(...) {
+                               throw;
+                       }
+               } else {
+                       throw;
+               }
+       } catch(...){
+               throw;
+       }
+}// checkAndSetDevice()
+
+// \83f\83o\83C\83X\83^\83C\83v\82ð\83e\83X\83g\82·\82é -------------------------------------------------
+void ConsoleImpl::checkAndSetDeviceType(const D3DDEVTYPE devtype)
+{
+       // \83A\83\8b\83t\83@\83u\83\8c\83\93\83h\83X\83v\83\89\83C\83g\82ð\83T\83|\81[\83g\82µ\82Ä\82¢\82é\82à\82Á\82Æ\82à\8d\82\91¬\82È\83^\83C\83v\8c\9f\8fo
+       // \82Æ\82¢\82Á\82Ä\82àHAL\82©REF\82©\82ð\91I\82Ô\82¾\82¯\82Å\82·\82ª...
+       // REF\82Å\82à\83_\83\81\82È\82ç\83G\83\89\81[\82Å\8fI\97¹ 
+       
+       HRESULT hr = S_OK;
+       D3DCAPS8        d3dcaps8;
+       ZeroMemory(&d3dcaps8,sizeof(d3dcaps8));
+       
+       hr = mpD3D->GetDeviceCaps(D3DADAPTER_DEFAULT,devtype,&d3dcaps8);
+       if(SUCCEEDED(hr))
+       {       
+               if(!((d3dcaps8.SrcBlendCaps & D3DPBLENDCAPS_SRCALPHA) &&
+                       (d3dcaps8.DestBlendCaps & D3DPBLENDCAPS_INVSRCALPHA) &&
+                       (d3dcaps8.TextureFilterCaps & D3DPTFILTERCAPS_MAGFLINEAR ) &&
+                       (d3dcaps8.TextureOpCaps & D3DTEXOPCAPS_MODULATE )
+                       )){
+                       throw RecoverbleErrorException("Device Not Found",__FILE__,__LINE__,sf::system::Exception::DEVICE_NOT_FOUND);
+               } else {
+                       mD3DDeviceType = devtype;
+                       
+                       // 16bit\82Ì\83o\83b\83N\83o\83b\83t\83@\82Ì\83t\83H\81[\83}\83b\83g\82ð\93¾\82é
+                       checkAndSetBackBufferFormat();
+                       
+                       checkAndSetDepthFormat();
+                       
+                       // \93§\89ß\8f\88\97\9d\82ª\8eg\97p\82Å\82«\82é\83e\83N\83X\83`\83\83\83t\83H\81[\83}\83b\83g\82ð\93¾\82é
+                       checkAndSetTextureFormat();
+               }
+               
+       }  
+       return;
+}// checkAndSetDeviceType()
+                       
+// \83o\83b\83N\83o\83b\83t\83@\82Ì\83t\83H\81[\83}\83b\83g\82ð\93¾\82é ---------------------------------------
+void ConsoleImpl::checkAndSetBackBufferFormat(void)
+{
+       //\8dÅ\93K\82È\81A16bit\83J\83\89\81[\83\82\81[\83h\82Ì\91I\91ð
+       if(SUCCEEDED(mpD3D->CheckDeviceType(D3DADAPTER_DEFAULT,mD3DDeviceType ,D3DFMT_A1R5G5B5,D3DFMT_A1R5G5B5,FALSE)))
+               mD3DFormat = D3DFMT_A1R5G5B5;
+       else
+       {
+               if(SUCCEEDED(mpD3D->CheckDeviceType(D3DADAPTER_DEFAULT,mD3DDeviceType ,D3DFMT_A4R4G4B4,D3DFMT_A4R4G4B4,FALSE))){
+                       mD3DFormat = D3DFMT_A4R4G4B4;
+               } else {
+                       if(SUCCEEDED(mpD3D->CheckDeviceType(D3DADAPTER_DEFAULT,mD3DDeviceType ,D3DFMT_X1R5G5B5,D3DFMT_X1R5G5B5,FALSE))){
+                               mD3DFormat = D3DFMT_X1R5G5B5;
+                       } else {
+                               if(SUCCEEDED(mpD3D->CheckDeviceType(D3DADAPTER_DEFAULT,mD3DDeviceType ,D3DFMT_R5G6B5,D3DFMT_R5G6B5,FALSE))){
+                                       mD3DFormat = D3DFMT_R5G6B5;
+                               } else {
+                                       if(SUCCEEDED(mpD3D->CheckDeviceType(D3DADAPTER_DEFAULT,mD3DDeviceType ,D3DFMT_X4R4G4B4,D3DFMT_X4R4G4B4,FALSE))){
+                                               mD3DFormat = D3DFMT_X4R4G4B4;
+                                       } else {
+                                               throw RecoverbleErrorException("Back Buffer Format Not Found",__FILE__,__LINE__,sf::system::Exception::DEVICE_NOT_FOUND);
+                                       }
+                               }
+                       }
+               }
+       }
+}// checkAndSetBackBufferFormat()
+                       
+// \83e\83N\83X\83`\83\83\83T\81[\83t\83F\81[\83X\82Ì\83t\83H\81[\83}\83b\83g\82ð\8eæ\93¾\82·\82é -----------------------------
+void ConsoleImpl::checkAndSetTextureFormat(void)
+{
+       // \83¿\83r\83b\83g\82ð\82à\82Â\83e\83N\83X\83`\83\83\81[\83t\83H\81[\83}\83b\83g\82ð\92T\82· 
+       if(SUCCEEDED(mpD3D->CheckDeviceFormat(D3DADAPTER_DEFAULT,mD3DDeviceType,mD3DFormat,0,D3DRTYPE_TEXTURE,D3DFMT_A1R5G5B5))){
+               mTextureFormat = D3DFMT_A1R5G5B5;
+       } else {
+               if(SUCCEEDED(mpD3D->CheckDeviceFormat(D3DADAPTER_DEFAULT,mD3DDeviceType,mD3DFormat,0,D3DRTYPE_TEXTURE,D3DFMT_A4R4G4B4))){
+                       mTextureFormat = D3DFMT_A4R4G4B4;
+               } else {
+                       if(SUCCEEDED(mpD3D->CheckDeviceFormat(D3DADAPTER_DEFAULT,mD3DDeviceType,mD3DFormat,0,D3DRTYPE_TEXTURE,D3DFMT_A8R3G3B2))){
+                               mTextureFormat = D3DFMT_A8R3G3B2;
+                       } else {
+                               throw RecoverbleErrorException("Texture Format Not Found",__FILE__,__LINE__,sf::system::Exception::DEVICE_NOT_FOUND);
+                       }
+               }
+       }
+}// checkAndSerTextureFormat()
+
+// \90[\93x\83o\83b\83t\83@\82Ì\83t\83H\81[\83}\83b\83g\82ð\93¾\82é ------------------------------------------
+void ConsoleImpl::checkAndSetDepthFormat()
+{
+       if(SUCCEEDED(mpD3D->CheckDeviceFormat(D3DADAPTER_DEFAULT,mD3DDeviceType,mD3DFormat,D3DUSAGE_DEPTHSTENCIL,D3DRTYPE_SURFACE,D3DFMT_D16))){
+               mDepthFormat = D3DFMT_D16;
+       } else {
+               if(SUCCEEDED(mpD3D->CheckDeviceFormat(D3DADAPTER_DEFAULT,mD3DDeviceType,mD3DFormat,D3DUSAGE_DEPTHSTENCIL,D3DRTYPE_SURFACE,D3DFMT_D16_LOCKABLE))){
+                       mDepthFormat = D3DFMT_D16_LOCKABLE;
+               } else {
+                       throw RecoverbleErrorException("Depth Format Not Found",__FILE__,__LINE__,sf::system::Exception::DEVICE_NOT_FOUND);
+               }
+       }
+}// checkAndSetDepthFormat()
+
+// \83\8c\83\93\83_\83\8a\83\93\83O\83X\83e\81[\83g\81A\83e\83N\83X\83`\83\83\83X\83e\81[\83W\83X\83e\81[\83g\82Ì\8f\89\8aú\89» --------------------
+void ConsoleImpl::initDeviceStates(void)
+{
+       HRESULT hr;
+       
+       hr = mpD3DDevice->SetRenderState(D3DRS_SPECULARENABLE,    TRUE);
+       if (FAILED(hr)){
+               throw FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+       }
+       
+       //D3D\83f\83o\83C\83X\82Ì\83\8c\83\93\83_\83\8a\83\93\83O\83X\83e\81[\83g\82Ì\90Ý\92è//////////////////////
+       
+       //\83\89\83C\83e\83B\83\93\83O
+       hr = mpD3DDevice->SetRenderState(D3DRS_LIGHTING,                  TRUE);
+       if (FAILED(hr)){
+               throw FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+       }
+
+       //Z\83o\83b\83t\83@
+       hr = mpD3DDevice->SetRenderState(D3DRS_ZENABLE,                   TRUE);
+       if (FAILED(hr)){
+               throw FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+       }
+//     hr = mpD3DDevice->SetRenderState(D3DRS_ZWRITEENABLE,              TRUE);
+       
+       // Enable vertices to have colors 
+
+       hr = mpD3DDevice->SetRenderState(D3DRS_COLORVERTEX,       TRUE);
+       if (FAILED(hr)){
+               throw FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+       }
+       
+       // Enable vertices to have colors 
+/*     hr = mpD3DDevice->SetRenderState(D3DRS_CULLMODE ,         D3DCULL_NONE  );
+       if (FAILED(hr)){
+               system::instance()->errorTerminate(DXGetErrorString8(hr));
+               return false;
+       }
+*/
+       // \83N\83\8a\83b\83s\83\93\83O
+       hr = mpD3DDevice->SetRenderState( D3DRS_CLIPPING,        TRUE);
+       if (FAILED(hr)){
+               throw FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+       }
+       
+/*     hr = mpD3DDevice->SetRenderState(D3DRS_DIFFUSEMATERIALSOURCE,     TRUE);
+       if (FAILED(hr)){
+               system::instance()->errorTerminate(DXGetErrorString8(hr));
+               return false;
+       }
+*/
+       hr = mpD3DDevice->SetRenderState(D3DRS_AMBIENT,   0xFF808080);
+       if (FAILED(hr)){
+               throw FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+       }
+
+
+       //                      hr = mpD3DDevice->SetRenderState(D3DRS_COLORKEYENABLE,           TRUE);
+       //                      if (FAILED(hr))
+       //                              return false;                   
+       
+       //      hr = mpD3DDevice->SetRenderState( D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL);
+       //      if (FAILED(hr))
+       //              return hr;
+       
+       
+       //      hr = mpD3DDevice->SetRenderState(       D3DRS_ALPHATESTENABLE   , TRUE);
+       //      if (FAILED(hr))
+       //              return hr;
+       
+       //      hr = mpD3DDevice->SetRenderState( D3DRS_ALPHAREF, 0xff);
+       //      if (FAILED(hr))
+       //              return hr;
+       
+       
+       // hr = mpD3DDevice->SetRenderState(D3DRS_DITHERENABLE,    TRUE);
+       //                      hr = mpD3DDevice->SetRenderState(D3DRS_ANTIALIAS,          D3DANTIALIAS_NONE );
+       //                      if (FAILED(hr))
+       //                              return false;                   
+       
+//     hr = mpD3DDevice->SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT);
+//     if (FAILED(hr)){
+//             system::instance()->errorTerminate(DXGetErrorString8(hr));
+//             return false;
+//     }
+       
+       hr = mpD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,        TRUE);  
+       if (FAILED(hr)){
+               throw FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+       }
+       
+       hr = mpD3DDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
+       if (FAILED(hr)){
+               throw FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+       }
+       
+       hr = mpD3DDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
+       if (FAILED(hr)){
+               throw FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+       }
+       
+       // \83e\83N\83X\83`\83\83\83X\83e\81[\83W\83X\83e\81[\83g\82Ì\90Ý\92è //
+       mpD3DDevice->SetTextureStageState( 0, D3DTSS_COLOROP,   D3DTOP_MODULATE );
+       
+       mpD3DDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
+       mpD3DDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
+       mpD3DDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP,   D3DTOP_MODULATE );
+       mpD3DDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
+       mpD3DDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE );
+       
+       mpD3DDevice->SetTextureStageState( 0, D3DTSS_MINFILTER, D3DTEXF_POINT );
+       mpD3DDevice->SetTextureStageState( 0, D3DTSS_MAGFILTER, D3DTEXF_POINT );
+
+       mpD3DDevice->SetTextureStageState( 0, D3DTSS_MIPFILTER, D3DTEXF_NONE );
+
+/*     mpD3DDevice->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, 0 );
+       mpD3DDevice->SetTextureStageState( 0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_DISABLE );
+*/
+
+}// initDeviceStates()
+
+// \89æ\96Ê\82Ì\8f\89\8aú\89»\83r\83\85\81[\83|\81[\83g\82Ì\90Ý\92è\82È\82Ç ------------------------------------------
+void ConsoleImpl::initConsoleViewStyle(void)
+{
+
+       HRESULT hr = E_FAIL;
+
+       initLight();    
+
+       mpD3DDevice->BeginScene();
+
+       initMatrix();
+
+
+       
+       //\89æ\96Ê\83N\83\8a\83A//
+
+       
+       mpD3DDevice->Clear(0,NULL,D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,D3DCOLOR_COLORVALUE(0.0f,0.5f,0.0f,0.0f),0.0f,0);
+       
+       mpD3DDevice->EndScene();
+       
+       mpD3DDevice->Present(NULL,NULL,NULL,NULL);
+       
+       //\83r\83\85\81[\83|\81[\83g\82Ì\90Ý\92è//
+       
+       D3DVIEWPORT8 d3dv;
+       
+       d3dv.X = viewport::X;
+       d3dv.Y = viewport::Y;
+       d3dv.Width = viewport::WIDTH;
+       d3dv.Height = viewport::HEIGHT;
+       d3dv.MinZ = viewport::Z_MIN;
+       d3dv.MaxZ = viewport::Z_MAX;
+       
+       hr = mpD3DDevice->SetViewport(&d3dv);
+       if(FAILED(hr)){
+               throw FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+       }
+       
+       //\81@\83r\83\85\81[\83|\81[\83g\93à\82Ì\83N\83\8a\83A
+       mpD3DDevice->BeginScene();
+       clearScreen();
+       mpD3DDevice->EndScene();
+       mpD3DDevice->Present(NULL,NULL,NULL,NULL);
+}//initConsoleViewStyle();
+
+// \83\89\83C\83g\82Ì\8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ConsoleImpl::initLight()
+{
+       D3DLIGHT8 light;
+       ZeroMemory(&light, sizeof(D3DLIGHT8));
+       light.Type = D3DLIGHT_DIRECTIONAL;
+       light.Diffuse.r = 1.0f;
+       light.Diffuse.g = 1.0f;
+       light.Diffuse.b = 1.0f;
+       D3DXVECTOR3 v(0.7f, -0.8f, 0.1f);
+       D3DXVec3Normalize((D3DXVECTOR3 *)&light.Direction, &v);
+       light.Range = 100.0f;
+       
+       mpD3DDevice->SetLight(0, &light);
+       mpD3DDevice->LightEnable(0, TRUE);
+       mpD3DDevice->SetRenderState(D3DRS_LIGHTING, TRUE);
+}
+
+// \8ds\97ñ\82Ì\8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void ConsoleImpl::initMatrix()
+{
+               // 3D View \82Ì\90Ý\92è(\8eQ\8dl\81F\82Õ\82æ\81[\82ñ\82³\82ñ\82Ì\83\89\83C\83u\83\89\83\8a
+       // \82Ù\82Æ\82ñ\82Ç\81A\82»\82Ì\82Ü\82Ü\82Å\82·\81B
+
+       //\8aî\96{\92l\90Ý\92è
+       float aspect = (float) screen::WIDTH / screen::HEIGHT;      //\83A\83X\83y\83N\83g\94ä(\8d\82\82³\82ð1\82Æ\82µ\82½\82Æ\82«\82Ì\95\9d)
+       float aspect_v = (float) viewport::WIDTH / viewport::HEIGHT;        //\83A\83X\83y\83N\83g\94ä(\8d\82\82³\82ð1\82Æ\82µ\82½\82Æ\82«\82Ì\95\9d)
+
+       float depth = 1.5f;                                                                             //\89\9c\8ds\82«Z
+       float fovy  = (float)atan(1.0f / depth) * 2.0f;                                 //\8e\8b\96ì\82ðZ=0\82Å\83f\83o\83C\83X\82Ì\95\9d\82Æ\8d\82\82³\82É\8d\87\82í\82¹\82é
+       
+       //\8dÀ\95W\82ð\91µ\82¦\82é
+       D3DXMATRIX mat_view;
+       D3DXMatrixLookAtLH( &mat_view, 
+               &D3DXVECTOR3( aspect, -1.0f,-depth),
+               &D3DXVECTOR3( aspect, -1.0f, 0.0f),
+               &D3DXVECTOR3( 0.0f, 1.0f, 0.0f ) );
+
+/*     D3DXMatrixLookAtLH( &mat_view, &D3DXVECTOR3( 0.0f, 3.0f,-5.0f ),
+                              &D3DXVECTOR3( 0.0f, 0.0f, 0.0f ),
+                              &D3DXVECTOR3( 0.0f, 1.0f, 0.0f ) );
+*/
+       mpD3DDevice->SetTransform( D3DTS_VIEW, &mat_view );
+
+       //\89\9c\8ds\82«\82É\91Î\82·\82é\94ä\97¦\82ð\92²\90®
+       D3DXMATRIX mat_proj;
+//     D3DXMatrixPerspectiveFovLH( &mat_proj, D3DX_PI/4, aspect_v, 1.0f, 100.0f );
+
+       D3DXMatrixPerspectiveFovLH( &mat_proj,fovy, aspect_v, 1.0f, 100.0f );
+
+       mpD3DDevice->SetTransform( D3DTS_PROJECTION, &mat_proj );
+       
+       // 
+
+}//initMatrix()
+
+// create\8e\9e\82¨\82æ\82Ñreset\8e\9e\82Ì\8dÄ\8f\89\8aú\89»---------------------------------------------
+void ConsoleImpl::initNotManagedObjects(void)
+{
+       HRESULT hr;
+
+       //\83X\83v\83\89\83C\83g\83I\83u\83W\83F\83N\83g
+       
+       if(FAILED(hr = D3DXCreateSprite(mpD3DDevice,&mpD3DXSprite)))
+       {
+               throw FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+       }
+
+}// initNotManagedObjects
+
+void ConsoleImpl::releaseNotManagedObjects(void)
+{
+       
+       if(mpD3DXSprite)
+       {
+               mpD3DXSprite->Release();
+               mpD3DXSprite = NULL;
+       }
+       
+}// releaseNotManagedObjects
+
+// \8fI\97¹\8f\88\97\9d -------------------------------------------------------------------
+void ConsoleImpl::uninitialize(void)
+{
+       int i;
+       
+       // \83t\83H\83\93\83g\83e\83N\83X\83`\83\83\82Ì\83\8a\83\8a\81[\83X
+       for(i = 0;i < font::COUNT_MAX;i++)
+       {
+               if(mpFontTexture[i]){
+                       mpFontTexture[i]->Release();
+                       mpFontTexture[i] = NULL;
+               }
+       }
+       // \83X\83v\83\89\83C\83g\83I\83u\83W\83F\83N\83g\82Ì\8f\89\8aú\89»
+       for(i = 0;i < sprite::MAX;i++)
+       {
+               if(mpSprite[i]){
+                       delete mpSprite[i];
+               }
+       }
+
+
+       releaseNotManagedObjects();
+
+       // D3D\83f\83o\83C\83X\82Ì\83\8a\83\8a\81[\83X
+       if(mpD3DDevice) {
+               mpD3DDevice->Release();
+               mpD3DDevice = NULL;
+       }
+       
+       // Direct3D\83I\83u\83W\83F\83N\83g\82Ì\83\8a\83\8a\81[\83X
+       if(mpD3D){
+               mpD3D->Release();
+               mpD3D = NULL;
+       }
+       
+       // text queue \82Ì\83N\83\8a\83A
+       
+       while(!mTextQueue.empty())
+       {
+               delete mTextQueue.front();
+               mTextQueue.pop();
+       }
+
+}// Uninitialize
+
+// \83t\83H\83\93\83g\8aÖ\98A\83\81\83\\83b\83h ///////////////////////////////////////////////////////
+
+// \83t\83H\83\93\83g\83\8d\81[\83h   -----------------------------------------------------------
+void ConsoleImpl::loadFont(void)
+{
+       
+       HRESULT hr;
+       for(int i = 0;i < font::COUNT_MAX;i++)
+       {
+               hr = D3DXCreateTextureFromFileExA(
+                       mpD3DDevice,
+                       font::FILE_PATH[i],
+                       D3DX_DEFAULT,
+                       D3DX_DEFAULT,
+                       0,
+                       0,
+                       mTextureFormat,
+                       D3DPOOL_MANAGED,
+                       D3DX_FILTER_NONE,
+                       D3DX_FILTER_NONE,
+                       0xff000000,
+                       NULL,
+                       NULL,
+                       &mpFontTexture[i]);
+
+               if(FAILED(hr))
+               {
+                       throw FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+               }
+       }
+}// LoadFont
+
+// \83L\83\83\83\89\83N\83^\83e\83N\83X\83`\83\83\82ð\8eg\97p\82µ\82Ä\81A\95\8e\9a\97ñ\82ð\95\\8e¦\82·\82é -----------------------
+void ConsoleImpl::textDraw(int textureNo,float x,float y,float angleRad,float scale,COLOR color,
+       char *pBuf)
+{
+
+       int cc = text::BUFFER_LENGTH;
+       int ncc,ix,iy;
+       
+       float startx = x;
+       float starty = y;
+       
+       D3DXVECTOR2 scaling,rotation_center,translation;
+       
+       float line = 0;
+       RECT srect;
+       
+       
+       
+       float   dx = text::COLUMN_PITCH * scale * cosf(angleRad);
+       float   dy = text::COLUMN_PITCH * scale * sinf(angleRad);
+       
+       scaling.x = scaling.y = scale;
+       
+       rotation_center.x = font::WIDTH / 2;
+       rotation_center.y = font::HEIGHT / 2;
+       
+       // \83J\83\89\81[\83L\81[\82Ì\82Ó\82¿\82ª\94²\82¯\82È\82¢\8c»\8fÛ\82ð\96h\8e~\82·\82é\82½\82ß
+       mpD3DDevice->SetTextureStageState(0, D3DTSS_MAGFILTER , D3DTEXF_POINT);
+       mpD3DDevice->SetTextureStageState(0, D3DTSS_MINFILTER , D3DTEXF_POINT);
+       
+       while(*pBuf && cc){
+               ncc = *pBuf++;
+               if (ncc > 0x1f && ncc < 0x80){
+                       ncc -= 0x20;
+                       
+                       ix = (ncc % 16) * font::WIDTH;
+                       iy = (ncc / 16) * font::HEIGHT;
+                       
+                       srect.top = iy;
+                       srect.left = ix;
+                       srect.right = ix + font::WIDTH; 
+                       srect.bottom = iy + font::HEIGHT;
+                       
+                       translation.x = x;
+                       translation.y = y;
+                       
+                       //                      mPointDest.z = zOrder;
+                       
+                       mpD3DXSprite->Draw(
+                               mpFontTexture[textureNo],
+                               &srect,
+                               &scaling,
+                               &rotation_center,
+                               2 * D3DX_PI - angleRad,
+                               &translation,
+                               (D3DCOLOR)color
+                               );
+                       
+                       x += dx;
+                       y += dy;
+                       
+               } else {
+                       
+                       if (ncc == 0xa){//LF
+                               line++;
+                               y = starty + line * text::LINE_PITCH * 
+                                       scale * sinf((angleRad + D3DX_PI/2));
+                               x = startx + line * text::LINE_PITCH * 
+                                       scale * cosf((angleRad + D3DX_PI/2 ));
+                       }
+               }
+               --cc;
+       }
+       return ;
+       
+}// TextDraw
+
+// \83e\83L\83X\83g\83L\83\85\81[\82Ì\93à\97e\82ð\8fo\97Í -----------------------------------------------
+void ConsoleImpl::textOut()
+{
+       TextQueueData* text_q;  
+       mpD3DXSprite->Begin();
+       while(!mTextQueue.empty())
+       {
+               text_q = mTextQueue.front();
+               mTextQueue.pop();
+               textDraw(text_q->textureNo(),text_q->x(),text_q->y(),text_q->angeleRad(),text_q->scale(),text_q->color(),text_q->buffer());
+               delete text_q;
+       }
+       mpD3DXSprite->End();
+}// textOut
+
+// \83L\83\83\83\89\83N\83^\81[\83T\81[\83t\83F\81[\83X\82ð\8eg\97p\82µ\82Ä\81A\95\8e\9a\97ñ\82ð\95\\8e¦\82·\82é -----------------------
+void ConsoleImpl::print(const int textureNo,const float x,const float y,const float angleRad,const float scale,const COLOR color,
+       const char *format,...)
+{
+       va_list varl;
+       //char buf[text::BUFFER_LENGTH];
+       
+       /*      mAlpha = alpha;
+       mAngleRad = angleRad;
+       mScale = scale;
+       mTextureNo = textureNo;
+       mZOrder = zOrder;
+       */      
+
+       TextQueueData* ptext_q = new TextQueueData(textureNo,x,y,angleRad,scale,color);
+       
+       va_start(varl,format);
+       vsprintf(ptext_q->buffer(),format,varl);
+       va_end(varl);
+       
+       mTextQueue.push(ptext_q);
+
+//     textOut(textureNo,x,y,zOrder,alpha,angleRad,scale,color,buf);
+}// Print
+
+// \89æ\96Ê\8dX\90V ------------------------------------------------------------------
+void ConsoleImpl::update(void)
+{
+       if(!isEnabled())
+               return;
+
+       // \83o\83b\83N\83o\83b\83t\83@\82Ì\93à\97e\82ð\95\\8e¦
+       mpD3DDevice->Present(NULL,NULL,NULL,NULL);
+       startFrame();
+//     Sleep(1);
+       clearScreen();
+//     Sleep(1);
+       // \83X\83v\83\89\83C\83g\95`\89æ
+       for(Obj* pobj = Obj::List::moveTop();pobj != NULL;pobj = Obj::List::moveNext())
+       {
+               pobj->draw();
+       }
+
+       // \83e\83L\83X\83g\95`\89æ
+
+       textOut();
+
+       endFrame();
+
+
+
+}// update()
+
+// \89æ\96Ê\8fÁ\8b\8e ------------------------------------------------------------------
+void ConsoleImpl::clearScreen(COLOR value)
+{
+       mpD3DDevice->Clear(0,NULL,D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER ,value,1.0f,0);
+}// clearScreen()
+// \89æ\96Ê\8fÁ\8b\8e(\90F\82Å\96\84\82ß\82é) -------------------------------------------------------
+void ConsoleImpl::fillScreen(COLOR value)
+{
+       mpD3DDevice->Clear(0,NULL,D3DCLEAR_TARGET ,value,1.0f,0);
+}// fillScreen()
+
+// \83t\83\8c\81[\83\80\8aJ\8en --------------------------------------------------------------
+void ConsoleImpl::startFrame(void)
+{
+       // \83f\83o\83C\83X\82Ì\8fó\91Ô\82ð\83`\83F\83b\83N\82·\82é
+       HRESULT hr = mpD3DDevice->TestCooperativeLevel();
+       if(FAILED(hr)){
+               mbD3DReady = false;
+               switch(hr){
+               case D3DERR_DEVICELOST:
+#ifdef _DEBUG
+                       OutputDebugString("DEVICELOST\r\n");
+#endif
+
+                       break;
+               case D3DERR_DEVICENOTRESET:
+#ifdef _DEBUG
+                       OutputDebugString("DEVICENOTRESET\r\n");
+#endif
+                       releaseNotManagedObjects();
+                       
+                       if(FAILED(hr = mpD3DDevice->Reset(&mD3Dpp)))
+                       {
+                               throw FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+                       }
+                       
+                       initConsoleViewStyle();
+                       
+                       initNotManagedObjects();
+                       
+                       // \83f\83o\83C\83X\82Ì\8f\89\8aú\89»
+                       initDeviceStates();
+                       
+                       mbD3DReady = true;
+                       break;
+               }
+       } else {
+               mpD3DDevice->BeginScene();
+       }
+}// startFrame()
+                       
+// \83t\83\8c\81[\83\80\8fI\97¹ --------------------------------------------------------------
+void ConsoleImpl::endFrame(void)
+{
+       mpD3DDevice->EndScene();
+}// endFrame()
+
+
+// \83X\83v\83\89\83C\83g\82Ì\83\8d\81[\83h ---------------------------------------------------------
+// 3D\82Ì\83o\81[\83e\83b\83N\83X\83o\83b\83t\83@\82Ì\90\90¬\95\94\95ª\82Í\81A\82Õ\82æ\81[\82ñ\82³\82ñ\82Ì\83\89\83C\83u\83\89\83\8a\82ð\8eQ\8dl\82É\82µ\82Ä\82¢\82Ü\82·\81B
+sprite::Sprite * const ConsoleImpl::createSprite(const sprite::Info * const pInfo)
+{
+       sprite::AbstractSprite * psprite = NULL;
+
+       switch (pInfo->type)
+       {
+       case SPRITE2D:
+               psprite = new Sprite2D(mpD3DDevice);
+               break;
+       case SPRITE3D:
+               psprite = new Sprite3D(mpD3DDevice);
+               break;
+       case MESH:
+               psprite = new SpriteMesh(mpD3DDevice);
+               break;
+       };
+
+       if(NULL == psprite)
+       {
+               throw FatalErrorException("Sprite is not created",__FILE__,__LINE__);
+       }
+
+       psprite->load(pInfo,mTextureFormat,pInfo->transparentColor);
+       return psprite;
+}// createSprite()
+
+//----------------------------------------------------------------------------
+// TextQueueData -------------------------------------------------------------
+//----------------------------------------------------------------------------
+
+ConsoleImpl::TextQueueData::TextQueueData(const int textureNo,const float x,const float y,const float angleRad,const float scale,const COLOR color,const char *pBuffer)
+{
+       mTextureNo = textureNo;
+       mX = x;
+       mY = y;
+       mAngleRad = angleRad;
+       mScale = scale;
+       mColor = color;
+
+       if(pBuffer != NULL)
+               strncpy(mpBuf,pBuffer,sizeof(mpBuf));
+}// ConsoleImpl::TextQueueData::TextQueueData
+
+ConsoleImpl::TextQueueData::~TextQueueData()
+{
+       ;
+}// ~TextQueueData
+
+
diff --git a/project/sfglib/ConsoleImpl.h b/project/sfglib/ConsoleImpl.h
new file mode 100644 (file)
index 0000000..074bd32
--- /dev/null
@@ -0,0 +1,213 @@
+/**
+ * @file
+ * @brief \89æ\96Ê\95`\89æ\81i\83X\83v\83\89\83C\83g\81E\94w\8ci\89æ\91\9c\81j\82Ì\8eÀ\91\95\82ð\8ds\82¤.
+ *
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+/// \8fd\95¡\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#if !defined(AFX_ConsoleImpl_H__B6F6F87A_C87F_40DA_8F4F_C037111CAC9D__INCLUDED_)
+#define AFX_ConsoleImpl_H__B6F6F87A_C87F_40DA_8F4F_C037111CAC9D__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "sf.h"
+#include "Console.h"
+extern "C" {
+namespace sf { 
+       namespace system {
+               namespace console {
+                       /// \83X\83v\83\89\83C\83g\97\83o\81[\83e\83b\83N\83X\83o\83b\83t\83@\82Ì\83t\83\89\83
+                       const DWORD VertexFVF = 
+                               (D3DFVF_XYZRHW | ///< \8dÀ\95W\8cn
+                               D3DFVF_DIFFUSE | ///< \83f\83B\83t\83\85\81[\83Y
+                               D3DFVF_SPECULAR | ///< \83X\83y\83L\83\85\83\89
+                               D3DFVF_TEX1 );
+
+                       /// 3D\83J\83X\83^\83\80\92¸\93_\83t\83H\81[\83}\83b\83g
+                       struct Vertex2 {
+                           D3DVECTOR position; ///< \83I\83u\83W\83F\83N\83g\8dÀ\95W\81B
+                               DWORD   diffuse; ///< \83f\83B\83t\83\85\81[\83Y
+                               DWORD   specular;///< \83X\83y\83L\83\85\83\89\90¬\95ª
+                               float   tu;///< \83e\83N\83X\83`\83\83u\8dÀ\95W
+                               float   tv;///< \83e\83N\83X\83`\83\83v\8dÀ\95W
+                       };
+
+                       /// 3D\83X\83v\83\89\83C\83g\97\83o\81[\83e\83b\83N\83X\83o\83b\83t\83@\82Ì\83t\83\89\83
+                       const DWORD Vertex2FVF = (D3DFVF_DIFFUSE |  D3DFVF_SPECULAR | D3DFVF_XYZ | D3DFVF_TEX1);
+       
+                       /** Console\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8eÀ\91\95. */
+                       class ConsoleImpl : public Console  
+                       {
+                               // LIFECYCLE //
+                       public:
+                               /// \83R\83\93\83X\83g\83\89\83N\83^
+                               ConsoleImpl();
+                               /** \83R\83\93\83X\83g\83\89\83N\83^
+                               * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b
+                               * @param bWindow \83E\83B\83\93\83h\83E\95\\8e¦\82©\83t\83\8b\83X\83N\83\8a\81[\83\93\95\\8e¦\82© */
+                               ConsoleImpl(const HWND hwnd,const bool bWindow);
+                               /// \83f\83X\83g\83\89\83N\83^                                
+                               virtual ~ConsoleImpl();
+                               // OPERATORS //
+                               // OPERATIONS //
+                               virtual void initialize(void);
+                               /** \8f\89\8aú\89»\82ð\8ds\82¤.
+                                * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b
+                                * @param bWindow true \83E\83B\83\93\83h\83E\95\\8e¦ false \83t\83\8b\83X\83N\83\8a\81[\83\93\95\\8e¦ */
+                               void initialize(const HWND hwnd,const bool bWindow);
+
+                               /** \8fI\97¹\8f\88\97\9d\82ð\8ds\82¤.
+                                * \8fI\97¹\8e\9e\82É\8aJ\95ú\82µ\82È\82­\82Ä\82Í\82¢\82¯\82È\82¢\82à\82Ì\82Í\82±\82±\82Å\8aJ\95ú\82·\82é */
+                               void uninitialize(void);
+
+                               virtual void clearScreen(COLOR value = 0x00000000);
+                               virtual void fillScreen(COLOR value = 0x00000000);
+                               void update(void);
+                               
+                               // \83o\83b\83N\83o\83b\83t\83@\82ÉAscii\95\8e\9a\97ñ\82ð\8ew\92è\82µ\82½\83e\83N\83X\83`\83\83\81[\94Ô\8d\86\82Å\95\\8e¦\82·\82é\81B
+                               virtual void print(const int textureNo,const float x,const float y,const float angleRad,const float scale,const COLOR color,
+                                       const char *format,...);
+                               // \83X\83v\83\89\83C\83g\82Ì\83\8d\81[\83h
+                               sprite::Sprite* const createSprite(const sprite::Info* const pInfo);
+
+                               // ACCESS //
+
+                               // INQUIRY //
+                               virtual const bool isEnabled(void) const {return mbD3DReady;};
+
+                       private:
+                               /** D3D\83f\83o\83C\83X\82ð\83`\83F\83b\83N\82µ\81A\91I\91ð\82·\82é.
+                                * \8c»\8dÝ\82Ì\83n\81[\83h\83E\83F\83A\82ÌD3D\83f\83o\83C\83X\82ð\83`\83F\83b\83N\82µ\81AConsoleImpl\82ª\95K\97v\82Æ\82·\82é\97v\8b\81\82É\91Î\89\9e\82µ\81A\82à\82Á\82Æ\82à\94\\97Í\82Ì\8d\82\82¢\82à\82Ì\82ð\91I\91ð\82µ\82Ü\82·\81B*/
+                               void checkAndSetDevice(const D3DDEVTYPE devtype = D3DDEVTYPE_HAL);
+
+                               /** \83f\83o\83C\83X\83^\83C\83v\82ð\83`\83F\83b\83N\82µ\81A\90Ý\92è\82·\82é */
+                               void checkAndSetDeviceType(const D3DDEVTYPE devtype);
+       
+                               /** \8c»\8dÝ\82Ì\83n\81[\83h\83E\83F\83A\82Ì\83o\83b\83N\83o\83b\83t\83@\83t\83H\81[\83}\83b\83g\82ð\83`\83F\83b\83N\82µ\81A\90Ý\92è\82·\82é
+                                * \83V\83X\83e\83\80\82ª\97v\8b\81\82·\82é\83o\83b\83N\83o\83b\83t\83@\83t\83H\81[\83}\83b\83g\82ª\82 \82é\82©\82Ç\82¤\82©\83`\83F\83b\83N\82µ\81A\82 \82ê\82Î\90Ý\92è\82µ\82Ü\82·\81B<br>
+                                * \82È\82¯\82ê\82Î\81A\97v\8b\81\82·\82é\82à\82Ì\82É\8dÅ\82à\8bß\82¢\83o\83b\83N\83o\83b\83t\83@\82Ì\83t\83H\81[\83}\83b\83g\82ð\91I\91ð\82µ\82Ü\82· */
+                               void checkAndSetBackBufferFormat(void);
+                               /** \8c»\8dÝ\82Ì\83n\81[\83h\83E\83F\83A\82Ì\83e\83N\83X\83`\83\83\83t\83H\81[\83}\83b\83g\82ð\83`\83F\83b\83N\82µ\81A\90Ý\92è\82·\82é */
+                               void checkAndSetTextureFormat(void);
+                               /** \8c»\8dÝ\82Ì\83n\81[\83h\83E\83F\83A\82Ì\83r\83b\83g\90[\93x\82ð\92²\82×\82Ä\81A\90Ý\92è\82·\82é */
+                               void checkAndSetDepthFormat(void);
+                               
+                               /// \83\8c\83\93\83_\83\8a\83\93\83O\83X\83e\81[\83g\81A\83e\83N\83X\83`\83\83\83X\83e\81[\83W\83X\83e\81[\83g\82Ì\8f\89\8aú\89»\82ð\8ds\82¤
+                               void initDeviceStates(void);
+
+                               /// \89æ\96Ê\82Ì\8f\89\8aú\89»\81E\83r\83\85\81[\83|\81[\83g\82Ì\90Ý\92è\82È\82Ç\82ð\8ds\82¤ 
+                               void initConsoleViewStyle(void);
+                               
+                               /// \83\89\83C\83g\82Ì\8f\89\8aú\89»\82ð\8ds\82¤
+                               void initLight();
+
+                               /// \95Ï\8a·\8ds\97ñ\82Ì\8f\89\8aú\89»\82ð\8ds\82¤
+                               void initMatrix();
+
+
+                               /// Reset\8e\9e\82É\8dÄ\8dì\90¬\82µ\82È\82­\82Ä\82Í\82¢\82¯\82È\82¢\8f\88\97\9d\82ð\8ds\82¤
+                               void initNotManagedObjects(void);
+
+                               /// D3DDevice\82Å\8aÇ\97\9d\82³\82ê\82È\82¢\83I\83u\83W\83F\83N\83g\82ð\8aJ\95ú\82·\82é
+                               void releaseNotManagedObjects(void);
+                               
+                               /// \83t\83H\83\93\83g\83t\83@\83C\83\8b\82ð\93Ç\82Ý\8d\9e\82Þ
+                               void loadFont(void);
+
+                               /// \83t\83\8c\81[\83\80\8aJ\8en\82ð\90é\8c¾\82·\82é
+                               void startFrame(void);
+
+                               /// \83t\83\8c\81[\83\80\8fI\97¹\82ð\90é\8c¾\82·\82é
+                               void endFrame(void);
+
+                               /// \83e\83L\83X\83g\82Ì\95`\89æ\82ð\8ds\82¤
+                               void textDraw(int textureNo,float x,float y,float angleRad,float scale,COLOR color,char *pBuf);
+
+                               /// \83e\83L\83X\83g\83L\83\85\81[\82Ì\93à\97e\82ð\8fo\97Í\82·\82é
+                               void textOut(void);
+
+                               HWND    mhWndMain;///< Window\83n\83\93\83h\83\8b
+                               
+                               bool                                    mbD3DReady;///< \82·\82×\82Ä\82Ì\8f\89\8aú\89»\82ª\8a®\97¹\82µ\81A\8eg\97p\89Â\94\
+                               bool                                    mbWindowed;     ///< \83E\83B\83\93\83h\83E\83\82\81[\83h\82©\82Ç\82¤\82©
+                               
+                               LPDIRECT3D9                             mpD3D;///< D3D
+                               D3DDEVTYPE                              mD3DDeviceType;///< D3D\83f\83o\83C\83X\83^\83C\83v                                                                   
+                               
+                               LPDIRECT3DDEVICE9               mpD3DDevice;///< D3DDevice
+                               LPD3DXSPRITE                    mpD3DXSprite;///< D3DXSprite
+                               
+                               D3DFORMAT                               mD3DFormat;///< \83v\83\89\83C\83}\83\8a\81E\83o\83b\83N\83o\83b\83t\83@\82Ì\83t\83H\81[\83}\83b\83g
+                               D3DFORMAT                               mTextureFormat;///< \93§\89ß\83e\83N\83X\83`\83\83\97p\83t\83H\81[\83}\83b\83g
+                               D3DFORMAT                               mDepthFormat;///<\81@\90[\93x\83o\83b\83t\83@\97p\83t\83H\81[\83}\83b\83g
+                               D3DPRESENT_PARAMETERS   mD3Dpp;///< D3DPRESENT_PARAMETERS
+                               
+                               IDirect3DTexture9*              mpFontTexture[font::COUNT_MAX];///< \83t\83H\83\93\83g\83e\83N\83X\83`\83\83\94z\97ñ
+                               sprite::AbstractSprite* mpSprite[sprite::MAX];///< \83X\83v\83\89\83C\83g\83e\83N\83X\83`\83\83\94z\97ñ
+                               
+                               ///\81@\83e\83L\83X\83g\95\8e\9a\97ñ\95Û\8e\9d\83N\83\89\83X
+                               class TextQueueData{
+                               public:
+                                       /**\81@\83R\83\93\83X\83g\83\89\83N\83
+                                        * @param \83e\83N\83X\83`\83\83\94Ô\8d\86
+                                        * @param x \95\\8e¦x\8dÀ\95W
+                                        * @param y \95\\8e¦y\8dÀ\95W
+                                        * @param angleRad \95\\8e¦\8ap\93x(\83\89\83W\83A\83\93)
+                                        * @param scale \8ag\91å\8fk\8f¬\97¦
+                                        * @param color \95\\8e¦\90F
+                                        * @param pBuffer \83e\83L\83X\83g\95\8e\9a\97ñ\82Ì\83|\83C\83\93\83^ */
+                                       TextQueueData(const int textureNo,const float x,const float y,const float angleRad,const float scale,const COLOR color,const char *pBuffer = NULL);
+                                       /// \83f\83X\83g\83\89\83N\83^
+                                       ~TextQueueData();
+                                       // ACCESS 
+                                       /** \83e\83L\83X\83g\95\8e\9a\97ñ\82Ì\83|\83C\83\93\83^\82ð\8eæ\93¾\82·\82é.
+                                        * @return \83e\83L\83X\83g\95\8e\9a\97ñ\82Ì\90æ\93ª\83A\83h\83\8c\83X */
+                                       char * const buffer(void) { return mpBuf;};
+                                       
+                                       /** \83t\83H\83\93\83g\83e\83N\83X\83`\83\83\94Ô\8d\86\82ð\8eæ\93¾\82·\82é.
+                                        * @return \83t\83H\83\93\83g\83e\83N\83X\83`\83\83\94Ô\8d\86 */
+                                       const int textureNo() const { return mTextureNo;};
+                                       
+                                       /** \95\\8e¦\8aJ\8enX\8dÀ\95W\82ð\8eæ\93¾\82·\82é.
+                                        * @return \95\\8e¦\8aJ\8enX\8dÀ\95W */
+                                       const float x() const { return mX;};
+
+                                       /** \95\\8e¦\8aJ\8enY\8dÀ\95W\82ð\8eæ\93¾\82·\82é.
+                                        * @return \95\\8e¦\8aJ\8enY\8dÀ\95W */
+                                       const float y() const { return mY;};
+
+                                       /** \95\\8e¦\8ap\93x\82ð\8eæ\93¾\82·\82é.
+                                        * @return \95\\8e¦\8aJ\8enX\8dÀ\95W */
+                                       const float angeleRad() const { return mAngleRad;};
+
+                                       /** \8ag\91å\8fk\8f¬\97¦\82ð\8eæ\93¾\82·\82é.
+                                        * @return \8ag\91å\8fk\8f¬\97¦ */
+                                       const float scale() const { return mScale;};
+
+                                       /** \95\\8e¦\90F\82ð\8eæ\93¾\82·\82é.
+                                        * @return \95\\8e¦\90F */
+                                       const COLOR color() const { return mColor;};
+                               private:
+                                       int mTextureNo;///< \83t\83H\83\93\83g\83e\83N\83X\83`\83\83\94Ô\8d\86
+                                       float mX;///< \95\\8e¦\8aJ\8enX\8dÀ\95W
+                                       float mY;///< \95\\8e¦\8aJ\8enY\8dÀ\95W
+                                       float mAngleRad;///< \95\\8e¦\8ap\93x\81i\83\89\83W\83A\83\93\81j
+                                       float mScale;///< \8ag\91å\8fk\8f¬\97¦
+                                       COLOR mColor;///< \95\\8e¦\90F
+                                       char mpBuf[text::BUFFER_LENGTH];///< \95\\8e¦\95\8e\9a\97ñ
+                               };
+
+                               /// \83e\83L\83X\83g\95\\8e¦\97p\83L\83\85\81[\83o\83b\83t\83
+                               std::queue<TextQueueData *> mTextQueue;
+
+                       }; // ConsoleImpl
+               } // namespace console
+       } // namespace system
+} // namespace sf
+}
+#endif // !defined(AFX_ConsoleImpl_H__B6F6F87A_C87F_40DA_8F4F_C037111CAC9D__INCLUDED_)
diff --git a/project/sfglib/Exception.h b/project/sfglib/Exception.h
new file mode 100644 (file)
index 0000000..0969d6d
--- /dev/null
@@ -0,0 +1,154 @@
+/**
+ * @file Exception.h
+ * @brief \97á\8aO\82Ì\92è\8b`\82ð\8ds\82¤.
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+/// \8fd\95¡\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#if !defined(AFX_EXCEPTION_H__F0B6B43A_53BE_4C53_AB43_D64FED220C3B__INCLUDED_)
+#define AFX_EXCEPTION_H__F0B6B43A_53BE_4C53_AB43_D64FED220C3B__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "sf.h"
+#include <string>
+#include <strstream>
+#include "boost/format.hpp"
+extern "C" {
+namespace sf {
+       namespace system {
+/// \97á\8a
+class  Exception {
+       public:
+       /// \83G\83\89\81[\82Ì\8eí\97Þ
+       enum ERROR_TYPE{
+               DEFAULT,///< \83f\83t\83H\83\8b\83g
+               DEVICE_NOT_FOUND,///< \83f\83o\83C\83X\82ª\8c©\82Â\82©\82ç\82È\82©\82Á\82½
+               BUFFER_IS_FULL,///< \83o\83b\83t\83@\81[\82ª\83t\83\8b
+               SCENE_IS_EMPTY///< \83V\81[\83\93\82Í\8bó\82Å\82 \82é
+       };
+
+       /// \83R\83\93\83X\83g\83\89\83N\83^              
+       Exception::Exception()
+       {
+               mErrID = DEFAULT;
+       };
+
+       /** \83R\83\93\83X\83g\83\89\83N\83
+        * @param pValue \83G\83\89\81[\95\8e\9a\97ñ
+        * @param fileName \83t\83@\83C\83\8b\83l\81[\83\80
+        * @param line \8ds\94Ô\8d\86
+       * @param err ERROR_TYPE */
+       Exception(const wchar_t * const pValue,const wchar_t * const fileName,const int line,const ERROR_TYPE err = DEFAULT)
+               {mErrString = pValue; mFileName = fileName;mLineNumber = line; mErrID = err;};
+       /** \83R\83\93\83X\83g\83\89\83N\83
+        * @param value \83G\83\89\81[\95\8e\9a\97ñ
+        * @param fileName \83t\83@\83C\83\8b\83l\81[\83\80
+        * @param line \8ds\94Ô\8d\86
+        * @param err ERROR_TYPE */
+       Exception(std::wstring & value,const wchar_t * const fileName,const int line,const ERROR_TYPE err = DEFAULT)
+               {mErrString = value;mFileName = fileName ; mLineNumber = line; mErrID = err;};
+       /// \83f\83X\83g\83\89\83N\83^
+       virtual ~Exception(){};
+       
+       /** \83G\83\89\81[\95\8e\9a\97ñ\82ð\8eQ\8fÆ\82·\82é.
+        * @return \83G\83\89\81[\95\8e\9a\97ñ\82ðstd::string\82Ì\8eQ\8fÆ\82Å\95Ô\82µ\82Ü\82·*/
+       virtual std::wstring & reason(void)
+       {return mErrString;};
+       
+       /** \83G\83\89\81[\95\8e\9a\97ñ\82ð\83Z\83b\83g\82·\82é.
+        * @param value \83G\83\89\81[\95\8e\9a\97ñ(std::string) */
+       virtual void reason(const std::wstring& value){mErrString = value;};
+       
+       /** \83G\83\89\81[\95\8e\9a\97ñ\82ð\83Z\83b\83g\82·\82é.
+        * @param value \83G\83\89\81[\95\8e\9a\97ñ(const char *) */
+       virtual void reason(const wchar_t * const pValue){mErrString = pValue;};
+       
+       /** \83G\83\89\81[\82ð\8bN\82±\82µ\82½\83t\83@\83C\83\8b\83l\81[\83\80\82ð\83Z\83b\83g\82·\82é 
+        * @param pValue \83G\83\89\81[\82ð\8bN\82±\82µ\82½\83t\83@\83C\83\8b\83l\81[\83\80 */
+       virtual void sourceFileName(const wchar_t * const pValue){mFileName = pValue;};
+       
+       /** \83G\83\89\81[\82ð\8bN\82±\82µ\82½\83t\83@\83C\83\8b\83l\81[\83\80\82ð\8eQ\8fÆ\82·\82é 
+        * @return \83G\83\89\81[\82ð\8bN\82±\82µ\82½\83t\83@\83C\83\8b\83l\81[\83\80 */
+       virtual const std::wstring  sourceFileName(void) const {return mFileName;};
+
+       /** \83G\83\89\81[\82ð\8bN\82±\82µ\82½\8ds\94Ô\8d\86\82ð\83Z\83b\83g\82·\82é
+        * @param value \83G\83\89\81[\82ð\8bN\82±\82µ\82½\8ds\94Ô\8d\86 */
+       virtual void lineNumber(const int value){mLineNumber = value;};
+       
+       /** \83G\83\89\81[\82ð\8bN\82±\82µ\82½\8ds\94Ô\8d\86\82ð\83Z\83b\83g\82·\82é
+        * @param value \83G\83\89\81[\82ð\8bN\82±\82µ\82½\8ds\94Ô\8d\86 */
+       virtual const int lineNumber(void){return mLineNumber;};
+       
+       /** ERROR_TYPE\82ð\83Z\83b\83g\82·\82é
+        * @param value ERROR_TYPE(\97á\8aO\82Ì\8eí\97Þ) */
+       virtual void errorType(const ERROR_TYPE value){mErrID = value;};
+       
+       /** ERROR_TYPE\82ð\8eQ\8fÆ\82·\82é
+        * @return ERROR_TYPE(\97á\8aO\82Ì\8eí\97Þ) */
+       virtual const ERROR_TYPE errorType(void) const {return mErrID;};
+
+       /** \83f\83t\83H\83\8b\83g\83G\83\89\81[\95\\8e¦\83\81\83b\83Z\81[\83W\82ð\8eQ\8fÆ\82·\82é
+        * @return \83G\83\89\81[\95\8e\9a\97ñ */
+       virtual const wchar_t * const Exception::getDefaultMessage(void){
+               return (boost::wformat(L"%s\n%s:line%d") % reason() % sourceFileName() % lineNumber()).str().c_str();
+       }// getDefaultMessage()         
+
+private:
+       std::wstring mErrString;///< \83G\83\89\81[\95\8e\9a\97ñ
+       std::wstring mFileName;///< \83G\83\89\81[\82ð\8bN\82±\82µ\82½\83t\83@\83C\83\8b\96¼
+       std::wstring mDefaultMessage;///< \83f\83t\83H\83\8b\83g\82Ì\83\81\83b\83Z\81[\83W
+       int mLineNumber;///< \8ds\94Ô\8d\86
+       ERROR_TYPE mErrID;///< \83G\83\89\81[ID
+};
+
+/// \92v\96½\93I\82È\97á\8aO
+class FatalErrorException : public Exception {
+public:
+               /** \83R\83\93\83X\83g\83\89\83N\83
+                * @param pValue \83G\83\89\81[\95\8e\9a\97ñ
+                * @param fileName \83t\83@\83C\83\8b\83l\81[\83\80
+                * @param line \8ds\94Ô\8d\86
+                * @param err ERROR_TYPE */
+               FatalErrorException(const wchar_t * const pValue,const wchar_t * const fileName,const int line,const ERROR_TYPE err = DEFAULT)
+                       : Exception(pValue,fileName,line)
+                       {;};
+               /** \83R\83\93\83X\83g\83\89\83N\83
+                * @param pValue \83G\83\89\81[\95\8e\9a\97ñ
+                * @param fileName \83t\83@\83C\83\8b\83l\81[\83\80
+                * @param line \8ds\94Ô\8d\86
+                * @param err ERROR_TYPE */
+               FatalErrorException(std::wstring & value,const wchar_t * const fileName,const int line,const ERROR_TYPE err = DEFAULT)
+                       : Exception(value,fileName,line)
+                       {;};
+};
+
+///\8fC\95\9c\89Â\94\\82È\97á\8aO
+class RecoverbleErrorException : public Exception {
+public:
+               /** \83R\83\93\83X\83g\83\89\83N\83
+                * @param pValue \83G\83\89\81[\95\8e\9a\97ñ
+                * @param fileName \83t\83@\83C\83\8b\83l\81[\83\80
+                * @param line \8ds\94Ô\8d\86
+                * @param err ERROR_TYPE */
+               RecoverbleErrorException(const wchar_t * const pValue,const wchar_t * const fileName,const int line,const ERROR_TYPE err = DEFAULT)
+                       : Exception(pValue,fileName,line)
+                       {;};
+               /** \83R\83\93\83X\83g\83\89\83N\83
+                * @param pValue \83G\83\89\81[\95\8e\9a\97ñ
+                * @param fileName \83t\83@\83C\83\8b\83l\81[\83\80
+                * @param line \8ds\94Ô\8d\86
+                * @param err ERROR_TYPE */
+               RecoverbleErrorException(std::wstring & value,const wchar_t * const fileName,const int line,const ERROR_TYPE err = DEFAULT)
+                       : Exception(value,fileName,line)
+                       {;};
+
+};
+       }// system
+}// sf
+}
+#endif // !defined(AFX_EXCEPTION_H__F0B6B43A_53BE_4C53_AB43_D64FED220C3B__INCLUDED_)
diff --git a/project/sfglib/Input.h b/project/sfglib/Input.h
new file mode 100644 (file)
index 0000000..68c6a4e
--- /dev/null
@@ -0,0 +1,338 @@
+/**
+ * @file Input.h
+ * @brief \93ü\97Í\81i\83L\81[\83{\81[\83h\81E\83}\83E\83X\81E\83W\83\87\83C\83X\83e\83B\83b\83N\81j\82Ì\83C\83\93\83^\81[\83t\83F\81[\83X\81A\92è\90\94\92è\8b`\82È\82Ç\82ð\8ds\82¤.
+ * \8eÀ\8dÛ\82Ì\8f\88\97\9d\82Í\81AOS\88Ë\91\82Ì\8eÀ\91\95\83N\83\89\83X\82É\94C\82¹\82Ü\82·\81B
+ *
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+/// \93ñ\8fd\93Ç\82Ý\8d\9e\82Ý\96h\8e~\83}\83N\83\8d
+#if !defined(AFX_INPUT_H__D4B94DF3_02D8_42CE_AC7A_A98CCC9D0115__INCLUDED_)
+#define AFX_INPUT_H__D4B94DF3_02D8_42CE_AC7A_A98CCC9D0115__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "sf.h"
+extern "C" {
+namespace sf{
+       namespace system {
+               /// \93ü\97Í\8eü\82è\82Ì\83N\83\89\83X\81E\92è\90\94\82È\82Ç\82Í\82·\82×\82Ä\82±\82±\82É\8aÜ\82Ü\82ê\82Ü\82·\81B
+               namespace input {
+                       /// \83}\83E\83X\8aÖ\98A\82Ì\83N\83\89\83X\81E\92è\90\94\82È\82Ç\82Í\82·\82×\82Ä\82±\82±\82É\8aÜ\82Ü\82ê\82Ü\82·
+                       namespace mouse {
+                               /// \83}\83E\83X\83C\83x\83\93\83g\82Å\93¯\8e\9e\82É\89\9f\82³\82ê\82½\83L\81[\83R\81[\83h\82ð\97ñ\8b\93\82·\82é
+                               enum MKEY_CODE {
+                                       MKEY_CONTROL = 0x1,///< \83R\83\93\83g\83\8d\81[\83\8b\83L\81[\83}\83X\83N
+                                       MKEY_LBUTTON = 0x2,///< \83}\83E\83X\8d\83{\83^\83\93\83}\83X\83N
+                                       MKEY_RBUTTON = 0x4,///< \83}\83E\83X\89E\83{\83^\83\93\83}\83X\83N
+                                       MKEY_SHIFT = 0x8,///< \83V\83t\83g\83L\81[\83}\83X\83N
+                                       WHEEL_MASK = 0xffff0000///< \83}\83E\83X\83z\83C\81[\83\8b\83}\83X\83N
+                               };
+
+                               /** \83}\83E\83X\83C\83x\83\93\83g\83\8a\83X\83i\81|
+                                *
+                                * \83}\83E\83X\83C\83x\83\93\83g\82Ì\83\8a\83X\83i\81[\82Å\82·\81B\83}\83E\83X\82Ì\83C\83x\83\93\83g\82Í\82·\82×\82Ä\82±\82Ì\83\8a\83X\83i\81[\83C\83\93\83^\81[\83t\83F\81[\83X\82ð\92Ê\82\82Ä\8ds\82í\82ê\82Ü\82·\81B<br>
+                                * \83}\83E\83X\83C\83x\83\93\83g\82ð\8f\88\97\9d\82µ\82½\82¢\8fê\8d\87\81A\82±\82Ì\83C\83\93\83^\81[\83t\83F\81[\83X\82ð\8cp\8f³\82µ\82Ä\8eÀ\91\95\82µ\81A\83C\83x\83\93\83g\82ð\94­\8ds\82·\82éInput\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì
+                                * Input::addMouseListener()\83\81\83\\83b\83h\82Å\93o\98^\82µ\82Ü\82·\81B
+                                */
+                               class Listener 
+                               {
+                               public:
+
+                                       /** \8d\83{\83^\83\93\82ª\89\9f\82³\82ê\82½.
+                                        * \83}\83E\83X\82Ì\8d\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82Æ\82«\82É\8cÄ\82Ñ\8fo\82³\82ê\82é\83\81\83\\83b\83h\82Å\82·\81B
+                                        * @param screenX \83X\83N\83\8a\81[\83\93\8fã\82Ì\83}\83E\83XX\8dÀ\95W
+                                        * @param screenY \83X\83N\83\8a\81[\83\93\8fã\82Ì\83}\83E\83XY\8dÀ\95W
+                                        * @param mkey \93¯\8e\9e\82É\89\9f\82³\82ê\82½\83L\81[\83R\81[\83h @ref MKEY_CODE */
+                                       virtual void leftButtonDown(const int screenX,const int screenY,const DWORD mkey) = 0;
+
+                                       /** \8d\83{\83^\83\93\82ª\97£\82³\82ê\82½.
+                                        * \83}\83E\83X\82Ì\8d\83{\83^\83\93\82ª\97£\82³\82ê\82½\82Æ\82«\82É\8cÄ\82Ñ\8fo\82³\82ê\82é\83\81\83\\83b\83h\82Å\82·\81B
+                                        * @param screenX \83X\83N\83\8a\81[\83\93\8fã\82Ì\83}\83E\83XX\8dÀ\95W
+                                        * @param screenY \83X\83N\83\8a\81[\83\93\8fã\82Ì\83}\83E\83XY\8dÀ\95W
+                                        * @param mkey \93¯\8e\9e\82É\89\9f\82³\82ê\82½\83L\81[\83R\81[\83h @ref MKEY_CODE */
+                                       virtual void leftButtonUp(const int screenX,const int screenY,const DWORD mkey) = 0;
+
+                                       /** \8d\83{\83^\83\93\82ª\83_\83u\83\8b\83N\83\8a\83b\83N\82³\82ê\82½.
+                                        * \83}\83E\83X\82Ì\8d\83{\83^\83\93\82ª\83_\83u\83\8b\83N\83\8a\83b\83N\82³\82ê\82½\82Æ\82«\82É\8cÄ\82Ñ\8fo\82³\82ê\82é\83\81\83\\83b\83h\82Å\82·\81B
+                                        * @param screenX \83X\83N\83\8a\81[\83\93\8fã\82Ì\83}\83E\83XX\8dÀ\95W
+                                        * @param screenY \83X\83N\83\8a\81[\83\93\8fã\82Ì\83}\83E\83XY\8dÀ\95W
+                                        * @param mkey \93¯\8e\9e\82É\89\9f\82³\82ê\82½\83L\81[\83R\81[\83h @ref MKEY_CODE */
+                                       virtual void leftButtonDoubleClick(const int screenX,const int screenY,const DWORD mkey) = 0;
+
+                                       /** \89E\83{\83^\83\93\82ª\89\9f\82³\82ê\82½.
+                                        * \83}\83E\83X\82Ì\89E\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82Æ\82«\82É\8cÄ\82Ñ\8fo\82³\82ê\82é\83\81\83\\83b\83h\82Å\82·\81B
+                                        * @param screenX \83X\83N\83\8a\81[\83\93\8fã\82Ì\83}\83E\83XX\8dÀ\95W
+                                        * @param screenY \83X\83N\83\8a\81[\83\93\8fã\82Ì\83}\83E\83XY\8dÀ\95W
+                                        * @param mkey \93¯\8e\9e\82É\89\9f\82³\82ê\82½\83L\81[\83R\81[\83h @ref MKEY_CODE*/
+                                       virtual void rightButtonDown(const int screenX,const int screenY,const DWORD mkey) = 0;
+                               
+                                       /** \89E\83{\83^\83\93\82ª\97£\82³\82ê\82½.
+                                        * \83}\83E\83X\82Ì\89E\83{\83^\83\93\82ª\97£\82³\82ê\82½\82Æ\82«\82É\8cÄ\82Ñ\8fo\82³\82ê\82é\83\81\83\\83b\83h\82Å\82·\81B
+                                        * @param screenX \83X\83N\83\8a\81[\83\93\8fã\82Ì\83}\83E\83XX\8dÀ\95W
+                                        * @param screenY \83X\83N\83\8a\81[\83\93\8fã\82Ì\83}\83E\83XY\8dÀ\95W
+                                        * @param mkey \93¯\8e\9e\82É\89\9f\82³\82ê\82½\83L\81[\83R\81[\83h @ref MKEY_CODE */
+                                       virtual void rightButtonUp(const int screenX,const int screenY,const DWORD mkey) = 0;
+
+                                       /** \89E\83{\83^\83\93\82ª\83_\83u\83\8b\83N\83\8a\83b\83N\82³\82ê\82½.
+                                        * \83}\83E\83X\82Ì\89E\83{\83^\83\93\82ª\83_\83u\83\8b\83N\83\8a\83b\83N\82³\82ê\82½\82Æ\82«\82É\8cÄ\82Ñ\8fo\82³\82ê\82é\83\81\83\\83b\83h\82Å\82·\81B
+                                        * @param screenX \83X\83N\83\8a\81[\83\93\8fã\82Ì\83}\83E\83XX\8dÀ\95W
+                                        * @param screenY \83X\83N\83\8a\81[\83\93\8fã\82Ì\83}\83E\83XY\8dÀ\95W
+                                        * @param mkey \93¯\8e\9e\82É\89\9f\82³\82ê\82½\83L\81[\83R\81[\83h @ref MKEY_CODE */
+                                       virtual void rightButtonDoubleClick(const int screenX,const int screenY,const DWORD mkey) = 0;
+
+                                       /** \83}\83E\83X\83J\81[\83\\83\8b\8dÀ\95W\82ª\95Ï\89»\82µ\82½.
+                                        * \83}\83E\83X\83J\81[\83\\83\8b\8dÀ\95W\82ª\95Ï\89»\82µ\82½\82Æ\82«\82É\8cÄ\82Ñ\8fo\82³\82ê\82é\83\81\83\\83b\83h\82Å\82·\81B
+                                        * @param screenX \83X\83N\83\8a\81[\83\93\8fã\82Ì\83}\83E\83XX\8dÀ\95W
+                                        * @param screenY \83X\83N\83\8a\81[\83\93\8fã\82Ì\83}\83E\83XY\8dÀ\95W
+                                        * @param mkey \93¯\8e\9e\82É\89\9f\82³\82ê\82½\83L\81[\83R\81[\83h @ref MKEY_CODE */
+                                       virtual void mouseMove(const int screenX,const int screenY,const DWORD mkey) = 0;
+
+                                       /** \83}\83E\83X\83z\83C\81[\83\8b\82Ì\88Ê\92u\82ª\95Ï\89»\82µ\82½.
+                                        * \83}\83E\83X\83z\83C\81[\83\8b\82Ì\88Ê\92u\82ª\95Ï\89»\82µ\82½\82Æ\82«\82É\8cÄ\82Ñ\8fo\82³\82ê\82é\83\81\83\\83b\83h\82Å\82·\81B
+                                        * @param screenX \83X\83N\83\8a\81[\83\93\8fã\82Ì\83}\83E\83XX\8dÀ\95W
+                                        * @param screenY \83X\83N\83\8a\81[\83\93\8fã\82Ì\83}\83E\83XY\8dÀ\95W
+                                        * @param mkey \93¯\8e\9e\82É\89\9f\82³\82ê\82½\83L\81[\83R\81[\83h @ref MKEY_CODE */
+                                       virtual void mouseWheel(const int screenX,const int screenY,const DWORD mkey) = 0;
+                                       
+                                       /** \83}\83E\83X\83C\83x\83\93\83g\82ð\8eó\82¯\8eæ\82é\8fó\91Ô\82©\82Ç\82¤\82©\82ð\96â\82¢\8d\87\82í\82¹\82é.
+                                        * @retval true \8c»\8dÝ\83}\83E\83X\83C\83x\83\93\83g\82ð\8eó\82¯\8eæ\82Á\82Ä\82¢\82é
+                                        * @retval false \8c»\8dÝ\83}\83E\83X\83C\83x\83\93\83g\82ð\8b\91\94Û\82µ\82Ä\82¢\82é */
+                                       virtual const bool isListeningMouse(void) const = 0;
+
+                                       /** \83}\83E\83X\83C\83x\83\93\83g\82ð\94­\8ds\82·\82éTalker\82ª\8dí\8f\9c\82³\82ê\82½. 
+                                        * \83}\83E\83X\83C\83x\83\93\83g\82ð\94­\8ds\82·\82éTalker\82ª\8dí\8f\9c\82³\82ê\82é\8e\9e\82É\8cÄ\82Î\82ê\82Ü\82·\81B
+                                        * \82±\82Ì\83\81\83\\83b\83h\82ª\8cÄ\82Î\82ê\82½\88È\8d~\82Í\81A\83\8a\83X\83i\81[\91¤\82ÍInput::removeMouseListener()\82ð\8cÄ\82Ñ\8fo\82µ\82Ä\82Í\82¢\82¯\82Ü\82¹\82ñ\81B*/                                    
+                                       virtual void mouseTalkerIsDeleted(void) = 0;
+                               };
+                       };
+
+                       /// \83L\81[\83{\81[\83h\8aÖ\98A\82Ì\92è\90\94\81E\83N\83\89\83X\82Í\82·\82×\82Ä\82±\82±\82É\8aÜ\82Ü\82ê\82Ü\82·\81B
+                       namespace keyboard {
+                               /// \93Á\8eê\83L\81[\83R\81[\83h
+                               enum EXTEND_KEYCODE {
+                                       CONTROL = 0x1,///< \83R\83\93\83g\83\8d\81[\83\8b\83L\81[
+                                       SHIFT   = 0x8///< \83V\83t\83g\83L\81[
+                               };
+
+                               /// \89¼\91z\83L\81[\83R\81[\83h
+                               enum VIRTUAL_KEYCODE {
+                                       VKEY_LEFT = 0x25,///< \8d\83J\81[\83\\83\8b\83L\81
+                                       VKEY_UP = 0x26,///< \8fã\83J\81[\83\\83\8b\83L\81[
+                                       VKEY_RIGHT = 0x27,///< \89E\83J\81[\83\\83\8b\83L\81[
+                                       VKEY_DOWN = 0x28///< \89º\83J\81[\83\\83\8b\83L\81[
+                               };
+
+                               /** \89¼\91z\83L\81[\83R\81[\83h\83N\83\89\83X. 
+                                * @note \82È\82º\82±\82ñ\82È\83N\83\89\83X\82ª\82 \82é\82Ì\82©\8c»\8dÝ\95s\96¾
+                                */
+                               class SFDLL VKey {
+                               public:
+                                       static const int UP;///< \8fã\83J\81[\83\\83\8b\83L\81[
+                                       static const int DOWN;///< \89º\83J\81[\83\\83\8b\83L\81[
+                                       static const int LEFT;///< \8d\83J\81[\83\\83\8b\83L\81[
+                                       static const int RIGHT;///< \89E\83J\81[\83\\83\8b\83L\81[
+                               };
+
+                               /** \83L\81[\83{\81[\83h\83C\83x\83\93\83g\83\8a\83X\83i\81|.
+                                *
+                                * \83L\81[\83{\81[\83h\83C\83x\83\93\83g\82Ì\83\8a\83X\83i\81[\82Å\82·\81B\83L\81[\83{\81[\83h\82Ì\83C\83x\83\93\83g\82Í\82·\82×\82Ä\82±\82Ì\83\8a\83X\83i\81[\83C\83\93\83^\81[\83t\83F\81[\83X\82ð\92Ê\82\82Ä\8ds\82í\82ê\82Ü\82·\81B<br>
+                                * \83L\81[\83{\81[\83h\83C\83x\83\93\83g\82ð\8f\88\97\9d\82µ\82½\82¢\8fê\8d\87\81A\82±\82Ì\83C\83\93\83^\81[\83t\83F\81[\83X\82ð\8cp\8f³\82µ\82Ä\8eÀ\91\95\82µ\81A\83C\83x\83\93\83g\82ð\94­\8ds\82·\82éInput\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì
+                                * Input::addKeyboardListener()\83\81\83\\83b\83h\82Å\93o\98^\82µ\82Ü\82·\81B*/
+                   class Listener 
+                               {
+                               public:
+                                       /** \83L\81[\82ª\89\9f\82³\82ê\82½. 
+                                    * \83L\81[\82ª\89\9f\82³\82ê\82½\8fê\8d\87\82É\8cÄ\82Ñ\8fo\82³\82ê\82Ü\82·\81B
+                                        * @param keyCode \83L\81[\83R\81[\83h
+                                        * @param extKeyCode \8ag\92£\83L\81[\83R\81[\83h EXTEND_KEYCODE \82ð\8eQ\8fÆ */
+                                       virtual void keyDown(const DWORD keyCode,const DWORD extKeyCode) = 0;
+
+                                       /** \83L\81[\82ª\97£\82³\82ê\82½. 
+                                    * \83L\81[\82ª\97£\82³\82ê\82½\8fê\8d\87\82É\8cÄ\82Ñ\8fo\82³\82ê\82Ü\82·\81B
+                                        * @param keyCode \83L\81[\83R\81[\83h
+                                        * @param extKeyCode \8ag\92£\83L\81[\83R\81[\83h @ref EXTEND_KEYCODE \82ð\8eQ\8fÆ */
+                                       virtual void keyUp(const DWORD keyCode,const DWORD extKeyCode) = 0;
+
+                                       /** \83L\81[\83{\81[\83h\83C\83x\83\93\83g\82ð\8eó\82¯\8eæ\82é\8fó\91Ô\82©\82Ç\82¤\82©\82ð\96â\82¢\8d\87\82í\82¹\82é.
+                                        * Talker\82ªListener\82ª\8c»\8dÝ\83L\81[\83{\81[\83h\83C\83x\83\93\83g\82ð\8eó\82¯\8eæ\82é\8fó\91Ô\82É\82 \82é\82©\82Ç\82¤\82©\8am\94F\82·\82é\82½\82ß\82Ì\83\81\83\\83b\83h\82Å\82·\81B<br>
+                                        * \88ê\8e\9e\93I\82É\83L\81[\83{\81[\83h\83C\83x\83\93\83g\82ð\8eó\82¯\8eæ\82è\82½\82­\82È\82¢\8fê\8d\87\82Í\82±\82Ì\83\81\83\\83b\83h\82ª\8cÄ\82Î\82ê\82½\82Æ\82«\82Éfalse\82ð\95Ô\82µ\82Ü\82·\81B
+                                        * @retval true \8c»\8dÝ\83L\81[\83{\81[\83h\83C\83x\83\93\83g\82ð\8eó\82¯\8eæ\82Á\82Ä\82¢\82é
+                                        * @retval false \8c»\8dÝ\83L\81[\83{\81[\83h\83C\83x\83\93\83g\82ð\8b\91\94Û\82µ\82Ä\82¢\82é */
+                                       virtual const bool isListeningKeyboard(void) const = 0;
+                                       
+                                       /** \83L\81[\83{\81[\83h\83C\83x\83\93\83g\82ð\94­\8ds\82·\82éTalker\82ª\8dí\8f\9c\82³\82ê\82½. 
+                                        * \83L\81[\83{\81[\83h\83C\83x\83\93\83g\82ð\94­\8ds\82·\82éTalker\82ª\8dí\8f\9c\82³\82ê\82é\8e\9e\82É\8cÄ\82Î\82ê\82Ü\82·\81B<br>
+                                        * \82±\82ê\82ª\8cÄ\82Î\82ê\82½\82ç\81ATalker\8e©\90g\82Í\83\81\83\82\83\8a\8fã\82É\91\8dÝ\82µ\82È\82¢\82±\82Æ\82É\82È\82é\82Ì\82Å\81A
+                                        * \82±\82Ì\83\81\83\\83b\83h\82ª\8cÄ\82Î\82ê\82½\88È\8d~\82Í\81A\83\8a\83X\83i\81[\91¤\82Í\90â\91Î\82ÉInput::removeKeyboardListener()\82ð\8cÄ\82Ñ\8fo\82µ\82Ä\82Í\82¢\82¯\82Ü\82¹\82ñ\81B
+                                        * \8cë\82Á\82Ä\8cÄ\82Ñ\8fo\82µ\82½\8cã\82Ì\8fó\91Ô\82Í\95s\92è\82Æ\82È\82è\82Ü\82·\81B */                                         
+                                       virtual void keyboardTalkerIsDeleted(void) = 0;
+                               };
+                       };
+                       
+                       /// \93ü\97Í\8b@\8aí\83R\83\93\83g\83\8d\81[\83\8b.
+                       /*! \83C\83\93\83v\83b\83g\83f\83o\83C\83X\82Ì\83R\83\93\83g\83\8d\81[\83\8b\82ð\8ds\82¤\83C\83\93\83^\81[\83t\83F\81[\83X\82Å\82· */
+                       class Input  
+                       {
+                               // LIFECYCLE //
+                       public:
+                               /// \83R\83\93\83X\83g\83\89\83N\83^
+                               Input(){};
+                               /// \83f\83X\83g\83\89\83N\83^
+                               virtual ~Input(){};
+                               // OPERATORS //
+                               // OPERATIONS //
+                               /// Input\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8f\89\8aú\89»
+                               /*! Input\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8eÀ\91\95\83N\83\89\83X\82ð\8f\89\8aú\89»\82·\82é\82½\82ß\82É\97p\88Ó\82³\82ê\82Ä\82¢\82Ü\82·\81B<br>
+                                   \92Ê\8fí\83\89\83C\83u\83\89\83\8a\82ð\97\98\97p\82·\82é\91¤\82©\82ç\82±\82Ì\83\81\83\\83b\83h\82ð\8cÄ\82Ñ\8fo\82·\82±\82Æ\82Í\82 \82è\82Ü\82¹\82ñ\81
+                                       @throw FatalErrorException \8f\89\8aú\89»\82É\8e¸\94s\82µ\82½\8fê\8d\87\82à\82µ\82­\82Í\93ü\97Í\83f\83o\83C\83X\82ª\89½\82à\8c©\82Â\82©\82ç\82È\82©\82Á\82½\8fê\8d\87 */
+                               virtual void initialize(void) = 0;
+
+                               /** \93ü\97Í\83f\83o\83C\83X\82Ì\8fó\91Ô\82Ì\8dX\90V. 
+                                * \93ü\97Í\83f\83o\83C\83X\82Ì\8fó\91Ô\82ð\93Ç\82Ý\8eæ\82è\81A\8aÖ\98A\82·\82é\95Ï\90\94\82ð\8dX\90V\82µ\82Ü\82·\81B*/
+                               virtual void update(void) = 0;
+
+                               /** \83}\83E\83X\83\8a\83X\83i\81[\82Ì\93o\98^.
+                                * mouse::Listener \82ð\93o\98^\82µ\82Ü\82·\81B<br>
+                                * \83}\83E\83X\83C\83x\83\93\83g\82ð\8eó\82¯\8eæ\82è\82½\82¢\83N\83\89\83X\82Ímouse::Listener\83C\83\93\83^\81[\83t\83F\81[\83X\82ð\8eÀ\91\95\82µ\81A
+                                * \82±\82Ì\83\81\83\\83b\83h\82Å\93o\98^\82·\82é\82±\82Æ\82É\82æ\82è\83}\83E\83X\83C\83x\83\93\83g\82ð\8eó\82¯\8eæ\82é\82±\82Æ\82ª\82Å\82«\82Ü\82·\81
+                                * @param pListener mouse::Listener \83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^ */
+                               virtual void addMouseListener(mouse::Listener * const pListener) = 0;
+                               
+                               /** \83}\83E\83X\83\8a\83X\83i\81[\82Ì\8dí\8f\9c.
+                                * mouse::Listener \82ð\8dí\8f\9c\82µ\82Ü\82·\81B<br>
+                                * mouse::Listener \8e©\90g\82ª\8dí\8f\9c\82³\82ê\82é\82Æ\82«\81A\82±\82Ì\83\81\83\\83b\83h\82ð\8cÄ\82Ñ\8fo\82µ\82Ä\81ATalker\82É\8e©\90g\82Ì\8dí\8f\9c\82ð\92Ê\92m\82µ\82Ü\82·\81B
+                                * @param pListener mouse::Listener \83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^ */
+                               virtual void removeMouseListener(mouse::Listener * const pListener) = 0;
+
+                               /** \83L\81[\83{\81[\83h\83\8a\83X\83i\81[\82Ì\93o\98^.
+                                * keyboard::Listener \82ð\93o\98^\82µ\82Ü\82·\81B<br>
+                                * \83L\81[\83{\81[\83h\83C\83x\83\93\83g\82ð\8eó\82¯\8eæ\82è\82½\82¢\83N\83\89\83X\82Íkeyboard::Listener\83C\83\93\83^\81[\83t\83F\81[\83X\82ð\8eÀ\91\95\82µ\81A
+                                * \82±\82Ì\83\81\83\\83b\83h\82Å\93o\98^\82·\82é\82±\82Æ\82É\82æ\82è\83L\81[\83{\81[\83h\83C\83x\83\93\83g\82ð\8eó\82¯\8eæ\82é\82±\82Æ\82ª\82Å\82«\82Ü\82·\81
+                                * @param pListener keyboard::Listener \83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^ */
+                               virtual void addKeyboardListener(keyboard::Listener * const pListener) = 0;
+
+                               /** \83L\81[\83{\81[\83h\83\8a\83X\83i\81[\82Ì\8dí\8f\9c.
+                                * keyboard::Listener \82ð\8dí\8f\9c\82µ\82Ü\82·\81B<br>
+                                * keyboard::Listener \8e©\90g\82ª\8dí\8f\9c\82³\82ê\82é\82Æ\82«\81A\82±\82Ì\83\81\83\\83b\83h\82ð\8cÄ\82Ñ\8fo\82µ\82Ä\81ATalker\82É\8e©\90g\82Ì\8dí\8f\9c\82ð\92Ê\92m\82µ\82Ü\82·\81B
+                                * @param pListener keyboard::Listener \83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^ */
+                               virtual void removeKeyboardListener(keyboard::Listener * const pListener) = 0;
+
+                               // ACCESS //
+
+                               /** \8d\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82©\82Ç\82¤\82©. 
+                                * \8d\83{\83^\83\93(\83W\83\87\83C\83X\83e\83B\83b\83N\81E\83J\81[\83\\83\8b\83L\81[\81j\82ª\89\9f\82³\82ê\82½\8fê\8d\87\82Étrue\82ð\95Ô\82µ\82Ü\82·\81B<br>
+                                * @param bTrig false \82Ì\8e\9e\82Í\81A\89\9f\82µ\82Á\82Ï\82È\82µ\82Ì\8fê\8d\87\82Å\82àtrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B<br>
+                                * true\82Ì\8fê\8d\87\82Í\81A\8eÀ\8dÛ\82É\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82Æ\82«\82Ì\82Ý\81Atrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B
+                                * @retval true \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82é
+                                * @retval false \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82È\82¢\81@*/
+                               virtual const bool left(const bool bTrig = false) const = 0;
+
+                               /** \89E\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82©\82Ç\82¤\82©. 
+                                * \89E\83{\83^\83\93(\83W\83\87\83C\83X\83e\83B\83b\83N\81E\83J\81[\83\\83\8b\83L\81[\81j\82ª\89\9f\82³\82ê\82½\8fê\8d\87\82Étrue\82ð\95Ô\82µ\82Ü\82·\81B<br>
+                                * @param bTrig false \82Ì\8e\9e\82Í\81A\89\9f\82µ\82Á\82Ï\82È\82µ\82Ì\8fê\8d\87\82Å\82àtrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B<br>
+                                * true\82Ì\8fê\8d\87\82Í\81A\8eÀ\8dÛ\82É\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82Æ\82«\82Ì\82Ý\81Atrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B
+                                * @retval true \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82é
+                                * @retval false \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82È\82¢\81@*/
+                               virtual const bool right(const bool bTrig = false) const = 0;
+
+                               /** \8fã\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82©\82Ç\82¤\82©. 
+                                * \8fã\83{\83^\83\93(\83W\83\87\83C\83X\83e\83B\83b\83N\81E\83J\81[\83\\83\8b\83L\81[\81j\82ª\89\9f\82³\82ê\82½\8fê\8d\87\82Étrue\82ð\95Ô\82µ\82Ü\82·\81B<br>
+                                * @param bTrig false \82Ì\8e\9e\82Í\81A\89\9f\82µ\82Á\82Ï\82È\82µ\82Ì\8fê\8d\87\82Å\82àtrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B<br>
+                                * true\82Ì\8fê\8d\87\82Í\81A\8eÀ\8dÛ\82É\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82Æ\82«\82Ì\82Ý\81Atrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B
+                                * @retval true \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82é
+                                * @retval false \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82È\82¢\81@*/
+                               virtual const bool up(const bool bTrig = false) const = 0;
+
+                               /** \89º\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82©\82Ç\82¤\82©. 
+                                * \89º\83{\83^\83\93(\83W\83\87\83C\83X\83e\83B\83b\83N\81E\83J\81[\83\\83\8b\83L\81[\81j\82ª\89\9f\82³\82ê\82½\8fê\8d\87\82Étrue\82ð\95Ô\82µ\82Ü\82·\81B<br>
+                                * @param bTrig false \82Ì\8e\9e\82Í\81A\89\9f\82µ\82Á\82Ï\82È\82µ\82Ì\8fê\8d\87\82Å\82àtrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B<br>
+                                * true\82Ì\8fê\8d\87\82Í\81A\8eÀ\8dÛ\82É\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82Æ\82«\82Ì\82Ý\81Atrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B
+                                * @retval true \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82é
+                                * @retval false \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82È\82¢\81@*/
+                               virtual const bool down(const bool bTrig = false) const = 0;
+
+                               /** A\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82©\82Ç\82¤\82©. 
+                                * A\83{\83^\83\93(\83W\83\87\83C\83X\83e\83B\83b\83N\82ÌA\83{\83^\83\93\81E\83L\81[\83{\81[\83h\82ÌZ\81j\82ª\89\9f\82³\82ê\82½\8fê\8d\87\82Étrue\82ð\95Ô\82µ\82Ü\82·\81B<br>
+                                * @param bTrig false \82Ì\8e\9e\82Í\81A\89\9f\82µ\82Á\82Ï\82È\82µ\82Ì\8fê\8d\87\82Å\82àtrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B<br>
+                                * true\82Ì\8fê\8d\87\82Í\81A\8eÀ\8dÛ\82É\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82Æ\82«\82Ì\82Ý\81Atrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B
+                                * @retval true \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82é
+                                * @retval false \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82È\82¢\81@*/
+                               virtual const bool buttonA(const bool bTrig = false) const = 0;
+
+                               /** B\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82©\82Ç\82¤\82©. 
+                                * B\83{\83^\83\93(\83W\83\87\83C\83X\83e\83B\83b\83N\82ÌB\83{\83^\83\93\81E\83L\81[\83{\81[\83h\82ÌX\81j\82ª\89\9f\82³\82ê\82½\8fê\8d\87\82Étrue\82ð\95Ô\82µ\82Ü\82·\81B<br>
+                                * @param bTrig false \82Ì\8e\9e\82Í\81A\89\9f\82µ\82Á\82Ï\82È\82µ\82Ì\8fê\8d\87\82Å\82àtrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B<br>
+                                * true\82Ì\8fê\8d\87\82Í\81A\8eÀ\8dÛ\82É\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82Æ\82«\82Ì\82Ý\81Atrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B
+                                * @retval true \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82é
+                                * @retval false \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82È\82¢\81@*/
+                               virtual const bool buttonB(const bool bTrig = false) const = 0;
+
+                               /** C\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82©\82Ç\82¤\82©. 
+                                * C\83{\83^\83\93(\83W\83\87\83C\83X\83e\83B\83b\83N\82ÌC\83{\83^\83\93\81E\83L\81[\83{\81[\83h\82ÌC\81j\82ª\89\9f\82³\82ê\82½\8fê\8d\87\82Étrue\82ð\95Ô\82µ\82Ü\82·\81B<br>
+                                * @param bTrig false \82Ì\8e\9e\82Í\81A\89\9f\82µ\82Á\82Ï\82È\82µ\82Ì\8fê\8d\87\82Å\82àtrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B<br>
+                                * true\82Ì\8fê\8d\87\82Í\81A\8eÀ\8dÛ\82É\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82Æ\82«\82Ì\82Ý\81Atrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B
+                                * @retval true \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82é
+                                * @retval false \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82È\82¢\81@*/
+                               virtual const bool buttonC(const bool bTrig = false) const = 0;
+
+                               /** D\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82©\82Ç\82¤\82©. 
+                                * D\83{\83^\83\93(\83W\83\87\83C\83X\83e\83B\83b\83N\82ÌD\83{\83^\83\93\81E\83L\81[\83{\81[\83h\82ÌV\81j\82ª\89\9f\82³\82ê\82½\8fê\8d\87\82Étrue\82ð\95Ô\82µ\82Ü\82·\81B<br>
+                                * @param bTrig false \82Ì\8e\9e\82Í\81A\89\9f\82µ\82Á\82Ï\82È\82µ\82Ì\8fê\8d\87\82Å\82àtrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B<br>
+                                * true\82Ì\8fê\8d\87\82Í\81A\8eÀ\8dÛ\82É\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82Æ\82«\82Ì\82Ý\81Atrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B
+                                * @retval true \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82é
+                                * @retval false \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82È\82¢\81@*/
+                               virtual const bool buttonD(const bool bTrig = false) const = 0;
+
+                               /** start\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82©\82Ç\82¤\82©. 
+                                * start\83{\83^\83\93(\83W\83\87\83C\83X\83e\83B\83b\83N\82ÌA\83{\83^\83\93\81E\83L\81[\83{\81[\83h\82Ìspace\81j\82ª\89\9f\82³\82ê\82½\8fê\8d\87\82Étrue\82ð\95Ô\82µ\82Ü\82·\81B<br>
+                                * @param bTrig false \82Ì\8e\9e\82Í\81A\89\9f\82µ\82Á\82Ï\82È\82µ\82Ì\8fê\8d\87\82Å\82àtrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B<br>
+                                * true\82Ì\8fê\8d\87\82Í\81A\8eÀ\8dÛ\82É\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82Æ\82«\82Ì\82Ý\81Atrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B
+                                * @retval true \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82é
+                                * @retval false \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82È\82¢\81@*/
+                               virtual const bool start(const bool bTrig = false) const = 0;
+
+                               /** exit\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82©\82Ç\82¤\82©. 
+                                * exit\83{\83^\83\93(\83L\81[\83{\81[\83h\82ÌESC\81j\82ª\89\9f\82³\82ê\82½\8fê\8d\87\82Étrue\82ð\95Ô\82µ\82Ü\82·\81B<br>
+                                * @param bTrig false \82Ì\8e\9e\82Í\81A\89\9f\82µ\82Á\82Ï\82È\82µ\82Ì\8fê\8d\87\82Å\82àtrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B<br>
+                                * true\82Ì\8fê\8d\87\82Í\81A\8eÀ\8dÛ\82É\83{\83^\83\93\82ª\89\9f\82³\82ê\82½\82Æ\82«\82Ì\82Ý\81Atrue\82ð\95Ô\8bp\82µ\82Ü\82·\81B
+                                * @retval true \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82é
+                                * @retval false \83{\83^\83\93\82ª\89\9f\82³\82ê\82Ä\82¢\82È\82¢\81@*/
+                               virtual const bool exit(const bool bTrig = false) const = 0;
+
+                               /** \83}\83E\83X\83J\81[\83\\83\8b\82ð\95\\8e¦\82·\82é */
+                               virtual void showMouseCursor(void) = 0;
+                               /** \83}\83E\83X\83J\81[\83\\83\8b\82ð\89B\82· */
+                               virtual void hideMouseCursor(void) = 0; 
+                               /** \8c»\8dÝ\82Ì\83}\83E\83X\83J\81[\83\\83\8b\82Ì\8fó\91Ô\82ð\96â\82¢\8d\87\82í\82¹\82é 
+                                @retval true \83}\83E\83X\83J\81[\83\\83\8b\82Í\95\\8e¦\82³\82ê\82Ä\82¢\82Ü\82·\81B
+                                @retval false \83}\83E\83X\83J\81[\83\\83\8b\82Í\94ñ\95\\8e¦\82Æ\82È\82Á\82Ä\82¢\82Ü\82·\81B*/
+                               virtual const bool mouseCursorVisibility(void) const = 0;
+
+                               // INQUIRY //
+                               /** \8c»\8dÝ\82ÌInput\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8fó\91Ô\82ð\96â\82¢\8d\87\82í\82¹\82é 
+                                * @retval true \8c»\8dÝ\81A\97\98\97p\89Â\94\\82Å\82·\81B
+                                * @retval false \8c»\8dÝ\81A\97\98\97p\95s\89Â\94\\82Å\82·\81B*/
+                               virtual const bool isEnabled(void) const = 0;
+                       };
+                       // ----------------------------------------------------------------
+                       /// \83C\83x\83\93\83g\83\8a\83X\83i\81[\83N\83\89\83
+                       // ----------------------------------------------------------------
+                       class Listener
+                       {
+                       public:
+                               virtual void deviceStateChanged(Input * const pInput) = 0;
+                               virtual void eventTalkerIsDeleted(void) = 0;
+                       };// Listener
+                       
+
+               }// namespace input
+       }// namespace system
+}// namespace sf
+}
+#endif // !defined(AFX_INPUT_H__D4B94DF3_02D8_42CE_AC7A_A98CCC9D0115__INCLUDED_)
diff --git a/project/sfglib/InputImpl.cpp b/project/sfglib/InputImpl.cpp
new file mode 100644 (file)
index 0000000..cdb6a06
--- /dev/null
@@ -0,0 +1,666 @@
+/**
+ * @file
+ * @brief \93ü\97Í\81i\83L\81[\83{\81[\83h\81E\83}\83E\83X\81E\83W\83\87\83C\83X\83e\83B\83b\83N\81j\82Ì\8eÀ\91\95\82É\82©\82©\82í\82é\83N\83\89\83X\81A\92è\90\94\92è\8b`\82È\82Ç\82ð\8ds\82¤.
+ *
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#define WIN32_LEAN_AND_MEAN
+#define _WIN32_WINNT  0x0400
+#include "math.h"
+#include <list>
+#include <queue>
+#include <memory>
+#include <map>
+
+#include "windows.h"
+#include "windowsx.h"
+#include "d3d8.h"
+#include "d3dx8.h"
+#include "dmusici.h"
+#include "dinput.h"
+#include "dxerr8sf.h"
+
+// PROJECT INCLUDES
+//
+
+#include "exception.h"
+#include "resource.h"
+#include "System.h"
+#include "Console.h"
+#include "Obj.h"
+#include "singleton.h"
+#include "AbstractSprite.h"
+#include "ConsoleImpl.h"       
+#include "SoundImpl.h"
+
+
+#include "InputImpl.h"
+#include "Main.h"
+#include "SystemWin32.h"
+#include "SystemImpl.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+using namespace sf::system::input;
+
+// \83f\83t\83H\83\8b\83g\83R\83\93\83X\83g\83\89\83N\83^ ---------------------------------------------------
+InputImpl::InputImpl()
+{
+
+}
+
+// \83R\83\93\83X\83g\83\89\83N\83^ -------------------------------------------------------------
+InputImpl::InputImpl(HWND hwnd)
+{
+       mHWND = hwnd;
+//     initialize();           
+}
+
+// \83f\83X\83g\83\89\83N\83^ ---------------------------------------------------------------
+InputImpl::~InputImpl()
+{
+       uninitialize();
+}// ~InputImpl()
+
+// \8f\89\8aú\89» ---------------------------------------------------------------------
+void InputImpl::initialize(void)
+{
+
+       mpDI = NULL;
+       mpJoystick = NULL;
+       mpKeyboard = NULL;
+       mbEnabled = false;
+       
+       mbLeft = false;
+       mbRight = false;
+       mbUp = false;
+       mbDown = false;
+
+       mbButtonA = false;
+       mbButtonB = false;
+       mbButtonC = false;
+       mbButtonD = false;
+
+       mbStart = false;
+       mbExit = false;
+
+       mbBeforeLeft = false;
+       mbBeforeRight = false;
+       mbBeforeUp = false;
+       mbBeforeDown = false;
+
+       mbBeforeButtonA = false;
+       mbBeforeButtonB = false;
+       mbBeforeButtonC = false;
+       mbBeforeButtonD = false;
+
+       mbBeforeStart = false;
+       mbBeforeExit = false;
+//     uninitialize();
+       mbEnabled = false;
+       mbMouseCursor = false;
+
+       HRESULT hr;
+
+
+    // DirectInput \83I\83u\83W\83F\83N\83g\82Ì\90\90¬
+       if( FAILED( hr = DirectInput8Create( GetModuleHandle(NULL), DIRECTINPUT_VERSION, 
+                                         IID_IDirectInput8, (VOID**)&mpDI, NULL ) ) )
+       {       std::string tmp("DirectInput8Create() Error : ");
+               tmp += DXGetErrorString8(hr);
+               tmp += " ";
+               throw FatalErrorException(tmp,__FILE__,__LINE__);
+       }
+
+       // Joystick\82Ì\8f\89\8aú\89» 
+       try {
+               initJoystick();
+       } catch (RecoverbleErrorException e)
+       {
+               if(mpJoystick != NULL){
+                       mpJoystick->Release();
+                       mpJoystick = NULL;
+               }
+       } catch (...){
+               throw;
+       }
+
+
+       // KeyBoard\82Ì\8f\89\8aú\89»
+
+       try {
+               initKeyboard();
+       } catch (RecoverbleErrorException e) {
+               if(mpKeyboard != NULL)
+               {
+                       mpKeyboard->Release();
+                       mpKeyboard = NULL;
+               }
+
+       } catch (...){
+               throw;
+       }
+
+       // \93ü\97Í\83f\83o\83C\83X\82ª\91\8dÝ\82µ\82È\82¢\8fê\8d\87\82Í\81A\83G\83\89\81[\82Å\8fI\97¹\82·\82é\81B
+
+       if(NULL == mpJoystick && NULL == mpKeyboard)
+       {
+               throw FatalErrorException("InputImpl Device Not Found\r\n",__FILE__,__LINE__);
+       };
+
+       addWindowMessageMap();
+
+       mbEnabled = true;
+}// intialize()
+
+// \8fI\97¹ -----------------------------------------------------------------------
+void InputImpl::uninitialize(void)
+{
+       KeyboardListenerList::iterator it = mKeyboardListenerList.begin();
+       
+       while(it != mKeyboardListenerList.end())
+       {
+               if(*it != NULL){
+                       (*it)->keyboardTalkerIsDeleted();
+//                     ++it;
+               }
+               it = mKeyboardListenerList.erase(it);
+       }
+
+       it = mKeyboardListenerQ.begin();
+       
+       while(it != mKeyboardListenerQ.end())
+       {
+               if(*it != NULL){
+                       (*it)->keyboardTalkerIsDeleted();
+
+               }
+               it = mKeyboardListenerQ.erase(it);
+       }
+
+       MouseListenerList::iterator itm = mMouseListenerList.begin();
+
+       while(itm != mMouseListenerList.end())
+       {
+               if(*itm != NULL){
+                       (*itm)->mouseTalkerIsDeleted();
+//                     ++itm;
+               }
+               itm = mMouseListenerList.erase(itm);
+       }
+
+       itm = mMouseListenerQ.begin();
+
+       while(itm != mMouseListenerQ.end())
+       {
+               if(*itm != NULL){
+                       (*itm)->mouseTalkerIsDeleted();
+//                     ++itm;
+               }
+               itm = mMouseListenerQ.erase(itm);
+       }
+
+       if(mpJoystick){
+               mpJoystick->Release();
+               mpJoystick = NULL;
+       }
+
+       if(mpKeyboard){
+               mpKeyboard->Release();
+               mpKeyboard = NULL;
+       }
+       
+       if(mpDI){
+               mpDI->Release();
+               mpDI = NULL;
+       }
+
+}// uninitialize()
+
+// \83W\83\87\83C\83X\83e\83B\83b\83N\83f\83o\83C\83X\97ñ\8b\93\97p\83R\81[\83\8b\83o\83b\83N ---------------------------------
+BOOL InputImpl::enumJoysticksCallback(const DIDEVICEINSTANCE *pdidInstance)
+{
+    HRESULT hr;
+
+    // Obtain an interface to the enumerated joystick.
+    hr = mpDI->CreateDevice( pdidInstance->guidInstance, &mpJoystick, NULL );
+
+    // If it failed, then we can't use this joystick. (Maybe the user unplugged
+    // it while we were in the middle of enumerating it.)
+    if( FAILED(hr) ) 
+        return DIENUM_CONTINUE;
+
+    // Stop enumeration. Note: we're just taking the first joystick we get. You
+    // could store all the enumerated joysticks and let the user pick.
+    return DIENUM_STOP;
+}
+
+
+// \83W\83\87\83C\83X\83e\83B\83b\83N\82Ì\8f\89\8aú\89» ---------------------------------------------------
+void InputImpl::initJoystick(void)
+{
+
+       HRESULT hr = E_FAIL;
+
+       // DirectInput\83f\83o\83C\83X\82Ì\97ñ\8b\93
+    if( FAILED(hr = mpDI->EnumDevices( DI8DEVCLASS_GAMECTRL, 
+                                         enumJoysticksCallback,
+                                         (VOID*)this, DIEDFL_ATTACHEDONLY ) ) )
+       {       
+               throw RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+       }
+
+    // Make sure we got a joystick
+    if( NULL == mpJoystick )
+       {       throw RecoverbleErrorException(" NULL == mpJoystick",__FILE__,__LINE__);}
+
+    if( FAILED(mpJoystick->SetDataFormat( &c_dfDIJoystick2 ) ) )
+       {       
+               throw RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+       }
+
+    // Set the cooperative level to let DInputImpl know how this device should
+    // interact with the system and with other DInputImpl applications.
+    if( FAILED(mpJoystick->SetCooperativeLevel( mHWND, DISCL_EXCLUSIVE | 
+                                                             DISCL_FOREGROUND ) ) )
+       {       
+               throw RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);}
+
+    // Determine how many axis the joystick has (so we don't error out setting
+    // properties for unavailable axis)
+    mDIJoystickDevCaps.dwSize = sizeof(DIDEVCAPS);
+    if ( FAILED(mpJoystick->GetCapabilities(&mDIJoystickDevCaps) ) )
+       {       
+               throw RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+       
+       }
+
+       
+    // Enumerate the axes of the joyctick and set the range of each axis. Note:
+    // we could just use the defaults, but we're just trying to show an example
+    // of enumerating device objects (axes, buttons, etc.).
+    if ( FAILED(mpJoystick->EnumObjects( enumAxesCallback, 
+                                                (VOID*)this, DIDFT_AXIS ) ) )
+       {       
+               throw RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+       
+       }
+}// InitJoystick()
+
+// \83W\83\87\83C\83X\83e\83B\83b\83N\82Ì\90Ý\92è\83R\81[\83\8b\83o\83b\83N\81@-------------------------------------------------
+BOOL InputImpl::enumAxesCallback( const DIDEVICEOBJECTINSTANCE* pdidoi)
+{
+
+    DIPROPRANGE diprg; 
+    diprg.diph.dwSize       = sizeof(DIPROPRANGE); 
+    diprg.diph.dwHeaderSize = sizeof(DIPROPHEADER); 
+    diprg.diph.dwHow        = DIPH_BYID; 
+    diprg.diph.dwObj        = pdidoi->dwType; // Specify the enumerated axis
+    diprg.lMin              = -1000; 
+    diprg.lMax              = +1000; 
+    
+       // Set the range for the axis
+       if( FAILED( mpJoystick->SetProperty( DIPROP_RANGE, &diprg.diph ) ) )
+       {
+               return DIENUM_STOP;
+       }
+
+    return DIENUM_CONTINUE;
+}// enumAxesCallback 
+
+// \83L\81[\83{\81[\83h\83f\83o\83C\83X\82Ì\8f\89\8aú\89» -------------------------------------------------
+void InputImpl::initKeyboard(void)
+{
+    HRESULT hr = E_FAIL;
+
+       // \83L\81[\83{\81[\83h\83f\83o\83C\83X\82Ì\8dì\90¬
+       if( FAILED( hr = mpDI->CreateDevice( GUID_SysKeyboard, &mpKeyboard, NULL ) ) )
+       {       //system::instance()->outputError(DXGetErrorString8(hr));
+               throw RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+       }
+    
+       if( FAILED( hr = mpKeyboard->SetDataFormat( &c_dfDIKeyboard ) ) )
+       {
+               //system::instance()->outputError(DXGetErrorString8(hr));
+               throw RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+       }
+    
+    // \8b¦\92²\83\8c\83x\83\8b\82Ì\90Ý\92è 
+    if(FAILED(mpKeyboard->SetCooperativeLevel( mHWND, DISCL_NONEXCLUSIVE | DISCL_FOREGROUND )))
+    {
+               throw RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);
+    }
+
+    // Acquire the newly created device
+    mpKeyboard->Acquire();
+}// initKeyboard
+
+// \83L\81[\83{\81[\83h\81E\83W\83\87\83C\83X\83e\83B\83b\83N\82Ì\8c»\8dÝ\82Ì\8fó\91Ô\82ð\8eæ\93¾ -----------------------------
+void InputImpl::update(void)
+{
+       HRESULT hr = E_FAIL;
+       bool b_joystick = false;
+       bool b_keyboard = false;
+       
+       // \83W\83\87\83C\83X\83e\83B\83b\83N\82Ì\8c»\8dÝ\8fó\91Ô\82ð\8eæ\93¾ //
+       if(mpJoystick){
+               mpJoystick->Poll();
+               hr = mpJoystick->GetDeviceState(sizeof(DIJOYSTATE2),(LPVOID)&mDIJoyState);
+               if(FAILED(hr)){
+                       mpJoystick->Acquire();
+                       while( hr == DIERR_INPUTLOST ) 
+                               hr = mpJoystick->Acquire();
+               } else {
+                       b_joystick = true;
+               }
+               
+
+       } 
+
+       // \83L\81[\83{\81[\83h\82Ì\8c»\8dÝ\8fó\91Ô\82ð\8eæ\93¾ //
+       if(mpKeyboard){
+//         ZeroMemory( &mDIKeys, sizeof(mDIKeys) );
+               hr = mpKeyboard->GetDeviceState(sizeof(mDIKeys),(LPVOID)&mDIKeys);
+               if(FAILED(hr)){
+#ifdef _DEBUG
+                       OutputDebugString(DXGetErrorString8(hr));
+#endif
+                       mpKeyboard->Acquire();
+                       while( hr == DIERR_INPUTLOST ) 
+                               hr = mpKeyboard->Acquire();
+               } else {
+                       b_keyboard = true;
+               }
+       }
+
+       //
+       mbBeforeLeft = mbLeft;
+       mbBeforeRight = mbRight;
+       mbBeforeUp = mbUp;
+       mbBeforeDown = mbDown;
+
+       mbBeforeButtonA = mbButtonA;
+       mbBeforeButtonB = mbButtonB;
+       mbBeforeButtonC = mbButtonC;
+       mbBeforeButtonD = mbButtonD;
+
+       mbBeforeStart = mbStart;
+       mbBeforeExit = mbExit;
+
+       mbLeft = mbRight = mbUp = mbDown = false;
+       mbButtonA = mbButtonB = mbButtonC = mbButtonD = false;
+       mbStart = mbExit = false;
+       
+
+       if(b_joystick){
+               
+               if(mDIJoyState.lX > 300){
+                       mbRight = true;
+               } else {
+                       if(mDIJoyState.lX < -300)
+                       {
+
+                               mbLeft = true;
+                       }
+               }
+                       
+               if(mDIJoyState.lY > 300)
+                       mbDown = true;
+               else 
+                       if(mDIJoyState.lY < -300)
+                               mbUp = true;
+
+               if(mDIJoyState.rgbButtons[0])
+               {
+                       mbButtonA = true;
+                       mbStart = true;
+               }
+
+               if(mDIJoyState.rgbButtons[1])
+                       mbButtonB = true;
+               
+               if(mDIJoyState.rgbButtons[2])
+                       mbButtonC =  true;
+               
+               if(mDIJoyState.rgbButtons[3])
+                       mbButtonD =  true;
+       }
+
+       if(b_keyboard){
+               
+               if(mDIKeys[DIK_LEFT] & 0x80)
+                       mbLeft = true;
+
+               if(mDIKeys[DIK_RIGHT] & 0x80)
+                       mbRight = true;
+
+               if(mDIKeys[DIK_UP] & 0x80)
+                       mbUp = true;
+
+               if(mDIKeys[DIK_DOWN] & 0x80)
+                       mbDown =  true;
+
+               if(mDIKeys[DIK_Z] & 0x80)
+                       mbButtonA = true;
+               
+               if(mDIKeys[DIK_X] & 0x80)
+                       mbButtonB = true;
+               
+               if(mDIKeys[DIK_C] & 0x80)
+                       mbButtonC = true;
+               
+               if(mDIKeys[DIK_V] & 0x80)
+                       mbButtonD = true;
+               
+               if(mDIKeys[DIK_SPACE] & 0x80)
+                       mbStart = true;
+
+               if(mDIKeys[DIK_ESCAPE] & 0x80)
+                       mbExit = true;
+
+       }
+
+       // \83C\83x\83\93\83g\83\8a\83X\83i\81[Q\81¨\83C\83x\83\93\83g\83\8a\83X\83i\81[\83\8a\83X\83g\82Ö //
+       MouseListenerList::iterator it = mMouseListenerQ.begin();
+       
+       while(it != mMouseListenerQ.end())
+       {
+               if(*it != NULL){
+                       mMouseListenerList.push_back(*it);
+               }
+               it = mMouseListenerQ.erase(it);
+
+       }
+
+       KeyboardListenerList::iterator itk = mKeyboardListenerQ.begin();
+
+       while(itk != mKeyboardListenerQ.end())
+       {
+               if(*itk != NULL){
+                       mKeyboardListenerList.push_back(*itk);
+               }
+               itk = mKeyboardListenerQ.erase(itk);
+       }
+}// update() 
+
+LRESULT                InputImpl::onSetCursor(const HWND hwnd, const WPARAM wParam, const LPARAM lParam)
+{
+       if(system::instance()->isActive() && !mouseCursorVisibility())
+       {
+               SetCursor(NULL);//\83}\83E\83X\83J\81[\83\\83\8b\82ð\8fÁ\82·\81B
+               return 0;
+       }
+       return DefWindowProc (hwnd, WM_SETCURSOR,wParam, lParam);
+}// onSetCursor()
+
+// \83}\83E\83X\82Ì\8d\83{\83^\83\93\82ª\89\9f\82³\82ê\82½ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+LRESULT                InputImpl::onLButtonDown(const HWND hwnd, const WPARAM wParam, const LPARAM lParam)
+{
+       return callMouseListenerMethod(hwnd,wParam,lParam,input::mouse::Listener::leftButtonDown);
+}// onLButtonDown()
+
+// \83}\83E\83X\82Ì\8d\83{\83^\83\93\82ª\97£\82³\82ê\82½ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+LRESULT                InputImpl::onLButtonUp(const HWND hwnd, const WPARAM wParam, const LPARAM lParam)
+{
+       return callMouseListenerMethod(hwnd,wParam,lParam,input::mouse::Listener::leftButtonUp);
+}// onLButtonUp()
+
+// \83}\83E\83X\82Ì\8d\83{\83^\83\93\82ª\83_\83u\83\8b\83N\83\8a\83b\83N\82³\82ê\82½\81@\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+LRESULT                InputImpl::onLButtonDoubleClick(const HWND hwnd, const WPARAM wParam, const LPARAM lParam)
+{
+       return callMouseListenerMethod(hwnd,wParam,lParam,input::mouse::Listener::leftButtonDoubleClick);
+}// onLButtonDoubleClick()
+
+// \83}\83E\83X\82Ì\89E\83{\83^\83\93\82ª\97£\82³\82ê\82½ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+LRESULT                InputImpl::onRButtonDown(const HWND hwnd, const WPARAM wParam, const LPARAM lParam)
+{
+       return callMouseListenerMethod(hwnd,wParam,lParam,input::mouse::Listener::rightButtonDown);
+}// onRButtonDown()
+
+// \83}\83E\83X\82Ì\89E\83{\83^\83\93\82ª\89\9f\82³\82ê\82½ \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+LRESULT                InputImpl::onRButtonUp(const HWND hwnd, const WPARAM wParam, const LPARAM lParam)
+{
+       return callMouseListenerMethod(hwnd,wParam,lParam,input::mouse::Listener::rightButtonUp);
+}// onRButtonUp()
+
+// \83}\83E\83X\82Ì\89E\83{\83^\83\93\82ª\83_\83u\83\8b\83N\83\8a\83b\83N\82³\82ê\82½\81@\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+LRESULT                InputImpl::onRButtonDoubleClick(const HWND hwnd, const WPARAM wParam, const LPARAM lParam)
+{
+       return callMouseListenerMethod(hwnd,wParam,lParam,input::mouse::Listener::rightButtonDoubleClick);
+}// onRButtonDoubleClick()
+
+// \83}\83E\83X\82ª\93®\82¢\82½\81@\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+LRESULT                InputImpl::onMouseMove(const HWND hwnd, const WPARAM wParam, const LPARAM lParam)
+{
+       return callMouseListenerMethod(hwnd,wParam,lParam,input::mouse::Listener::mouseMove);
+}// onMouseMove()
+
+// \83z\83C\81[\83\8b\82ª\93®\82¢\82½\81@\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+LRESULT                InputImpl::onMouseWheel(const HWND hwnd, const WPARAM wParam, const LPARAM lParam)
+{
+       return callMouseListenerMethod(hwnd,wParam,lParam,input::mouse::Listener::mouseWheel);
+}// onMouseWheel()
+
+// MouseListener\82Ì\83\81\83\\83b\83h\82ð\8cÄ\82Ñ\8fo\82· \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+LRESULT InputImpl::callMouseListenerMethod(const HWND hwnd, const WPARAM wParam, const LPARAM lParam,void(mouse::Listener::* pMethod)(const int,const int,const DWORD))
+{
+       using namespace sf::system::input;
+
+       if(mMouseListenerList.size() == 0)
+               return 0;
+
+       POINT pt;
+       
+       pt.x = LOWORD(lParam);
+       pt.y = HIWORD(lParam);
+       
+       ClientToScreen(hwnd,&pt);
+
+       DWORD mkey = 0;
+
+       if(MK_CONTROL & wParam)
+               mkey |= mouse::MKEY_CONTROL;
+       
+       if(MK_SHIFT & wParam)
+               mkey |= mouse::MKEY_SHIFT;
+
+       mkey |= (wParam & 0xffff0000);
+
+       
+       MouseListenerList::iterator it = mMouseListenerList.begin();
+       
+       while(it != mMouseListenerList.end())
+       {
+               if(*it == NULL){
+                       it = mMouseListenerList.erase(it);
+               } else {
+                       if((*it)->isListeningMouse()){
+                               ((*it)->*pMethod)(pt.x,pt.y,mkey);
+                       }
+                       ++it;
+               }
+       }
+
+       return 0;
+}// callListener
+
+// \83L\81[\89\9f\89º\8e\9e\82Ì\8f\88\97\9d -----------------------------------------------------------
+LRESULT InputImpl::onKeyDown(const HWND hwnd, const WPARAM wParam, const LPARAM lParam)
+{
+       DWORD extKey = 0;
+
+       // \82Æ\82è\82 \82¦\82¸\81AESC\83L\81[\82ª\89\9f\82³\82ê\82½\82ç\8fI\97¹\82·\82é\82æ\82¤\82É\82µ\82Ä\82¢\82é
+       switch(wParam)
+       {
+       case 'Q':
+               PostMessage( hwnd, WM_CLOSE, 0, 0L );
+               break;
+       default:
+
+               if(GetAsyncKeyState(VK_SHIFT))
+                       extKey |= keyboard::SHIFT;
+
+               if(GetAsyncKeyState(VK_CONTROL))
+                       extKey |= keyboard::CONTROL;
+
+               
+               KeyboardListenerList::iterator it = mKeyboardListenerList.begin();
+       
+               while(it != mKeyboardListenerList.end())
+               {
+                       if(*it == NULL){
+                               it = mKeyboardListenerList.erase(it);
+                       } else {
+                               if((*it)->isListeningKeyboard()){
+                                               (*it)->keyDown(wParam,extKey);
+                               }
+                               ++it;
+                       }
+               }
+
+       }
+       return 0; // WM_KEYDOWN
+}// onKeyDown
+
+// \83L\81[\82ª\97£\82³\82ê\82½\8e\9e\82Ì\8f\88\97\9d -----------------------------------------------------------
+LRESULT InputImpl::onKeyUp(const HWND hwnd, const WPARAM wParam, const LPARAM lParam)
+{
+       return 0;
+}// onKeyUp
+
+// \83E\83B\83\93\83h\83E\83\81\83b\83Z\81[\83W\83n\83\93\83h\83\89\82ðSystemImpl\82É\93o\98\81|\81|\81|\81|\81|\81|\81|\81|
+void InputImpl::addWindowMessageMap()
+{
+       SystemImpl *pSys = dynamic_cast<SystemImpl *>(system::instance());
+
+       pSys->addWindowMessage(WM_SETCURSOR, new WindowMessageImpl<InputImpl>(this,&InputImpl::onSetCursor));
+       pSys->addWindowMessage(WM_LBUTTONDOWN,new WindowMessageImpl<InputImpl>(this,&InputImpl::onLButtonDown));
+       pSys->addWindowMessage(WM_LBUTTONUP,new WindowMessageImpl<InputImpl>(this,&InputImpl::onLButtonUp));
+       pSys->addWindowMessage(WM_LBUTTONDBLCLK,new WindowMessageImpl<InputImpl>(this,&InputImpl::onLButtonDoubleClick));
+
+       pSys->addWindowMessage(WM_RBUTTONDOWN,new WindowMessageImpl<InputImpl>(this,&InputImpl::onRButtonDown));
+       pSys->addWindowMessage(WM_RBUTTONUP,new WindowMessageImpl<InputImpl>(this,&InputImpl::onRButtonUp));
+       pSys->addWindowMessage(WM_RBUTTONDBLCLK,new WindowMessageImpl<InputImpl>(this,&InputImpl::onRButtonDoubleClick));
+
+       pSys->addWindowMessage(WM_MOUSEMOVE,new WindowMessageImpl<InputImpl>(this,&InputImpl::onMouseMove));
+       pSys->addWindowMessage(WM_MOUSEWHEEL,new WindowMessageImpl<InputImpl>(this,&InputImpl::onMouseWheel));
+
+       pSys->addWindowMessage(WM_KEYDOWN,new WindowMessageImpl<InputImpl>(this,&InputImpl::onKeyDown));
+       pSys->addWindowMessage(WM_KEYUP,new WindowMessageImpl<InputImpl>(this,&InputImpl::onKeyUp));
+
+}
diff --git a/project/sfglib/InputImpl.h b/project/sfglib/InputImpl.h
new file mode 100644 (file)
index 0000000..77e98e9
--- /dev/null
@@ -0,0 +1,311 @@
+/**
+ * @file
+ * @brief \93ü\97Í\81i\83L\81[\83{\81[\83h\81E\83}\83E\83X\81E\83W\83\87\83C\83X\83e\83B\83b\83N\81j\82Ì\8eÀ\91\95\82É\82©\82©\82í\82é\83N\83\89\83X\81A\92è\90\94\92è\8b`\82È\82Ç\82ð\8ds\82¤.
+ *
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+/// \93ñ\8fd\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#if !defined(AFX_INPUTInputImpl_H__CAF65806_66F9_4CFF_89EC_66E36A0FB746__INCLUDED_)
+#define AFX_INPUTInputImpl_H__CAF65806_66F9_4CFF_89EC_66E36A0FB746__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "sf.h"
+#include "Input.h"
+extern "C" {
+namespace sf {
+       namespace system {
+               namespace input {
+
+/** Input\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8eÀ\91\95.
+ *  \8f\89\8aú\89»\95\94\95ª\82Í\82r\82c\82j\82Ì\83T\83\93\83v\83\8b\82ð\8eQ\8dl\82É\82µ\82Ä\82¢\82Ü\82·\81B
+ *  \82Æ\82¢\82¤\82©\82Ù\82Æ\82ñ\82Ç\82»\82Ì\82Ü\82ñ\82Ü\82Å\82·\82ª\81D\81D\81D\81B*/
+class InputImpl : public Input  
+{
+       // LIFECYCLE //
+public:
+       /// \83}\83E\83X\83\8a\83X\83i\81[\83\8a\83X\83g\94z\97ñ\8c^\92è\8b`
+       typedef std::vector<input::mouse::Listener* > MouseListenerList;        
+       /// \83L\81[\83{\81[\83h\83\8a\83X\83i\81[\83\8a\83X\83g\94z\97ñ\8c^\92è\8b`
+       typedef std::vector<input::keyboard::Listener*  > KeyboardListenerList; 
+       /// \83R\83\93\83X\83g\83\89\83N\83^
+       InputImpl();
+
+       /** \83R\83\93\83X\83g\83\89\83N\83^
+        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b */
+       InputImpl(HWND hwnd);
+       
+       /// \83f\83X\83g\83\89\83N\83^
+       virtual ~InputImpl();
+       // OPERATORS //
+       // OPERATIONS //
+       void update(void);
+       
+       /// DirectInput\82©\82ç\82Ì\83R\81[\83\8b\83o\83b\83
+       static  BOOL CALLBACK 
+               enumJoysticksCallback( const DIDEVICEINSTANCE* pdidInstance, VOID* pContext )
+       {
+               return ((InputImpl *)pContext)->enumJoysticksCallback(pdidInstance);
+       };
+       
+       /// DirectInput\82©\82ç\82Ì\83R\81[\83\8b\83o\83b\83N
+       static BOOL CALLBACK enumAxesCallback( const DIDEVICEOBJECTINSTANCE* pdidoi,
+                                VOID* pContext )
+       { return ((InputImpl *)pContext)->enumAxesCallback(pdidoi);};
+       
+       /** \8d\83}\83E\83X\83{\83^\83\93\82ª\89\9f\82³\82ê\82½.
+        * SystemImpl::wndFunc()\82æ\82èWM_LBUTTONDOWN\82ð\8eó\82¯\8eæ\82è\81A\82»\82ê\82ðmouse::Listener\82½\82¿\82É\92Ê\92m\82µ\82Ü\82·\81B
+        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b 
+        * @param wParam WPARAM 
+        * @param lParam LPARAM */
+       LRESULT         onLButtonDown(const HWND hwnd, const WPARAM wParam, const LPARAM lParam);
+       
+       /** \8d\83}\83E\83X\83{\83^\83\93\82ª\83_\83u\83\8b\83N\83\8a\83b\83N\82³\82ê\82½.
+        * SystemImpl::wndFunc()\82æ\82èWM_LBUTTONDBLCLK\82ð\8eó\82¯\8eæ\82è\81Amouse::Listener\82½\82¿\82É\92Ê\92m\82µ\82Ü\82·\81B
+        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b 
+        * @param wParam WPARAM 
+        * @param lParam LPARAM */
+       LRESULT     onLButtonDoubleClick(const HWND hwnd, const WPARAM wParam, const LPARAM lParam);
+       
+       /** \8d\83}\83E\83X\83{\83^\83\93\82ª\97£\82³\82ê\82½.
+        * SystemImpl::wndFunc()\82æ\82èWM_LBUTTONUP\82ð\8eó\82¯\8eæ\82è\81Amouse::Listener\82½\82¿\82É\92Ê\92m\82µ\82Ü\82·\81B
+        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b 
+        * @param wParam WPARAM 
+        * @param lParam LPARAM */
+       LRESULT         onLButtonUp(const HWND hwnd, const WPARAM wParam, const LPARAM lParam);
+
+       /** \89E\83}\83E\83X\83{\83^\83\93\82ª\83_\83u\83\8b\83N\83\8a\83b\83N\82³\82ê\82½.
+        * SystemImpl::wndFunc()\82æ\82èWM_RBUTTONDBLCLK\82ð\8eó\82¯\8eæ\82è\81Amouse::Listener\82½\82¿\82É\92Ê\92m\82µ\82Ü\82·\81B
+        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b 
+        * @param wParam WPARAM 
+        * @param lParam LPARAM */
+       LRESULT     onRButtonDoubleClick(const HWND hwnd, const WPARAM wParam, const LPARAM lParam);
+       
+       /** \89E\83}\83E\83X\83{\83^\83\93\82ª\89\9f\82³\82ê\82½.
+        * SystemImpl::wndFunc()\82æ\82èWM_RBUTTONDOWN\82ð\8eó\82¯\8eæ\82è\81Amouse::Listener\82½\82¿\82É\92Ê\92m\82µ\82Ü\82·\81B
+        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b 
+        * @param wParam WPARAM 
+        * @param lParam LPARAM */
+       LRESULT         onRButtonDown(const HWND hwnd, const WPARAM wParam, const LPARAM lParam);
+       
+       /** \89E\83}\83E\83X\83{\83^\83\93\82ª\97£\82³\82ê\82½.
+        * SystemImpl::wndFunc()\82æ\82èWM_RBUTTONUP\82ð\8eó\82¯\8eæ\82è\81Amouse::Listener\82½\82¿\82É\92Ê\92m\82µ\82Ü\82·\81B
+        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b 
+        * @param wParam WPARAM 
+        * @param lParam LPARAM */
+       LRESULT         onRButtonUp(const HWND hwnd, const WPARAM wParam, const LPARAM lParam);
+       
+       /** \83}\83E\83X\83J\81[\83\\83\8b\82ª\93®\82¢\82½.
+        * SystemImpl::wndFunc()\82æ\82èWM_MOUSEMOVE\82ð\8eó\82¯\8eæ\82è\81Amouse::Listener\82½\82¿\82É\92Ê\92m\82µ\82Ü\82·\81B
+        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b 
+        * @param wParam WPARAM 
+        * @param lParam LPARAM */
+       LRESULT         onMouseMove(const HWND hwnd, const WPARAM wParam, const LPARAM lParam);
+
+       /** \83}\83E\83X\83z\83C\81[\83\8b\82ª\95Ï\89»\82µ\82½.
+        * SystemImpl::wndFunc()\82æ\82èWM_MOUSEWHEEL\82ð\8eó\82¯\8eæ\82è\81Amouse::Listener\82½\82¿\82É\92Ê\92m\82µ\82Ü\82·\81B
+        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b 
+        * @param wParam WPARAM 
+        * @param lParam LPARAM */
+       LRESULT         onMouseWheel(const HWND hwnd, const WPARAM wParam, const LPARAM lParam);
+
+       /** WM_ONSETCURSOR\82ð\8eó\82¯\8eæ\82é.
+        * SystemImpl::wndFunc()\82æ\82èWM_ONSETCURSOR\82ð\8eó\82¯\8eæ\82è\82Ü\82·\81B
+        * \82±\82Ì\83V\83X\83e\83\80\82Å\82Í\81A\83}\83E\83X\83J\81[\83\\83\8b\82ð\8fÁ\8b\8e\81E\95\\8e¦\82Ì\83R\83\93\83g\83\8d\81[\83\8b\82Ì\82½\82ß\81A\82±\82Ì\83\81\83b\83Z\81[\83W\82ð\8eó\82¯\8eæ\82Á\82Ä\82¢\82Ü\82·\81B
+        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b 
+        * @param wParam WPARAM 
+        * @param lParam LPARAM 
+        * @note WM_SETCURSOR \83C\83x\83\93\83g\82Í\81A\83}\83E\83X\93ü\97Í\82ª\83L\83\83\83v\83`\83\83\82³\82ê\82¸\81A\83E\83B\83\93\83h\83E\93à\82Å\83J\81[\83\\83\8b\82ð\88Ú\93®\82·\82é\82Æ\82«\82É\94­\90\82·\82é\83\81\83b\83Z\81[\83W\82Å\82·\81B*/
+       LRESULT         onSetCursor(const HWND hwnd, const WPARAM wParam, const LPARAM lParam);
+
+       /** \83}\83E\83X\83\8a\83X\83i\81[\82Ì\83\81\83\\83b\83h\82ð\8cÄ\82Ñ\8fo\82·.
+        * \83E\83B\83\93\83h\83E\83\81\83b\83Z\81[\83W\82ð\8eó\82¯\8eæ\82Á\82Ämouse::Listener\82Ì\8ae\83\81\83\\83b\83h\82ð\8cÄ\82Ñ\8fo\82·\8dì\8bÆ\82ð\8aÈ\97ª\89»\82µ\82Ü\82·\81B
+        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b 
+        * @param wParam WPARAM 
+        * @param lParam LPARAM 
+        * @param pMethod mouse::Listener\82Ì\83\81\83\\83b\83h\82Ì\83|\83C\83\93\83^\81@*/
+       LRESULT         callMouseListenerMethod(const HWND hwnd, const WPARAM wParam, const LPARAM lParam,void(input::mouse::Listener::*pMethod)(const int,const int,const DWORD));
+       
+       // \83L\81[\83{\81[\83h\83\81\83b\83Z\81[\83W\83n\83\93\83h\83\89
+       /** \83L\81[\83{\81[\83h\82ª\89\9f\82³\82ê\82½.
+        * system::SystemImpl::wndFunc()\82æ\82èWM_KEYDOWN\82ð\8eó\82¯\8eæ\82è\81Akeyboard::Listener\82½\82¿\82É\92Ê\92m\82µ\82Ü\82·\81B
+        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b 
+        * @param wParam WPARAM 
+        * @param lParam LPARAM */
+       LRESULT         onKeyDown(const HWND hwnd, const WPARAM wParam, const LPARAM lParam);
+       
+       /** \83L\81[\83{\81[\83h\82ª\97£\82³\82ê\82½.
+        * system::SystemImpl::wndFunc()\82æ\82èWM_KEYUP\82ð\8eó\82¯\8eæ\82è\81Akeyboard::Listener\82½\82¿\82É\92Ê\92m\82µ\82Ü\82·\81B
+        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b 
+        * @param wParam WPARAM 
+        * @param lParam LPARAM */
+       LRESULT         onKeyUp(const HWND hwnd, const WPARAM wParam, const LPARAM lParam);
+
+       /** \83E\83B\83\93\83h\83E\83\81\83b\83Z\81[\83W\83}\83b\83v\82Ö\93o\98^\82ð\8ds\82¤. 
+        * \83\8b\81[\83e\83B\83\93\83O\82µ\82½\82¢\83E\83B\83\93\83h\83E\83\81\83b\83Z\81[\83W\82ð\93o\98^\82µ\82Ü\82·\81B*/
+       void            addWindowMessageMap();
+
+       /** MouseListener\82Ì\92Ç\89Á\82ð\8ds\82¤. 
+        * mouse::Listener\82ðInputImpl::mMouseListenerQ\82É\92Ç\89Á\82µ\82Ü\82·\81B
+        * @param pListener mouse::Listener\82Ì\83|\83C\83\93\83^ */
+       void addMouseListener(input::mouse::Listener * const pListener){
+                       mMouseListenerQ.push_back(pListener);                           
+       };
+       
+
+       /** MouseListener\82Ì\8dí\8f\9c\82ð\8ds\82¤ 
+        * @param pListener mouse::Listener\82Ì\83|\83C\83\93\83^*/
+       void removeMouseListener(input::mouse::Listener * const pListener){
+               MouseListenerList::iterator it;
+               for(it = mMouseListenerList.begin();
+                       it != mMouseListenerList.end();it++){
+                       if(pListener == *it){
+//                             mMouseListenerList.erase(it);
+                               *it = NULL;
+                               break;
+                       }
+               }
+
+               for(it = mMouseListenerQ.begin();
+                       it != mMouseListenerQ.end();it++){
+                       if(pListener == *it){
+                               *it = NULL;
+                               return;
+                       }
+               }
+       };
+
+       /** KeyboardListener\82Ì\92Ç\89Á\82ð\8ds\82¤ 
+        * @param pListener keyboard::Listener \82Ì\83|\83C\83\93\83^ */
+       void addKeyboardListener(input::keyboard::Listener * const pListener){
+                       mKeyboardListenerQ.push_back(pListener);                                
+       };
+       
+
+       /** KeyboardListener\82Ì\8dí\8f\9c\82ð\8ds\82¤
+        * @param pListener keyboard::Listener\82Ì\83|\83C\83\93\83^ */
+       void removeKeyboardListener(input::keyboard::Listener * const pListener){
+               KeyboardListenerList::iterator it;
+               for(it = mKeyboardListenerList.begin();
+                       it != mKeyboardListenerList.end();it++){
+                       if(pListener == *it){
+//                             mKeyboardListenerList.erase(it);
+                               *it = NULL;
+                               break;
+                       }
+               }
+
+               for(it = mKeyboardListenerQ.begin();
+                       it != mKeyboardListenerQ.end();it++){
+                       if(pListener == *it){
+                               *it = NULL;
+                               return;
+                       }
+               }
+       };
+
+       // ACCESS //
+       const bool left(const bool bTrig = false) const 
+               { if(!bTrig) return mbLeft; else return ((mbLeft ^ mbBeforeLeft) & mbLeft) ;};
+       const bool right(const bool bTrig = false) const 
+               { if(!bTrig) return mbRight; else return ((mbRight ^ mbBeforeRight) & mbRight) ;};
+       const bool up(const bool bTrig = false) const
+               { if(!bTrig) return mbUp; else return ((mbUp ^ mbBeforeUp) & mbUp) ;};
+       const bool down(const bool bTrig = false) const
+               { if(!bTrig) return mbDown; else return ((mbDown ^ mbBeforeDown) & mbDown) ;};
+       const bool buttonA(const bool bTrig = false) const
+               { if(!bTrig) return mbButtonA; else return ((mbButtonA ^ mbBeforeButtonA) & mbButtonA) ;};
+       const bool buttonB(const bool bTrig = false) const
+               { if(!bTrig) return mbButtonB; else return ((mbButtonB ^ mbBeforeButtonB) & mbButtonB) ;};
+       const bool buttonC(const bool bTrig = false) const
+               { if(!bTrig) return mbButtonC; else return ((mbButtonC ^ mbBeforeButtonC) & mbButtonC) ;};
+       const bool buttonD(const bool bTrig = false) const 
+               { if(!bTrig) return mbButtonD; else return ((mbButtonD ^ mbBeforeButtonD) & mbButtonD) ;};
+       const bool start(const bool bTrig = false) const
+               { if(!bTrig) return mbStart; else return ((mbStart ^ mbBeforeStart) & mbStart) ;};
+       const bool exit(const bool bTrig = false) const 
+               { if(!bTrig) return mbExit; else return ((mbExit ^ mbBeforeExit) & mbExit) ;};
+       
+       void showMouseCursor(void){mbMouseCursor = true;};
+       void hideMouseCursor(void){mbMouseCursor = false;};
+       
+       const bool mouseCursorVisibility  (void) const{return mbMouseCursor;};
+
+       // INQUIRY //
+       const bool isEnabled(void) const {return mbEnabled;};
+
+       void initialize(void);
+private:
+       /** \8fI\97¹\8e\9e\82Ì\8f\88\97\9d\82ð\8ds\82¤.
+        * \8fI\97¹\8e\9e\82É\8aJ\95ú\82µ\82È\82­\82Ä\82Í\82¢\82¯\82È\82¢\82à\82Ì\82Í\82±\82±\82Å\8aJ\95ú\82µ\82Ü\82·\81B*/
+       void uninitialize(void);
+       /** \83W\83\87\83C\83X\83e\83B\83b\83N\82Ì\8f\89\8aú\89»\82ð\8ds\82¤
+        * @exception RecoverbleErrorException \83W\83\87\83C\83X\83e\83B\83b\83N\82Ì\8f\89\8aú\89»\82É\8e¸\94s\82µ\82½\8fê\8d\87 */
+       void initJoystick(void);
+       /** \83L\81[\83{\81[\83h\82Ì\8f\89\8aú\89»\82ð\8ds\82¤ 
+        * @exception RecoverbleErrorException \83L\81[\83{\81[\83h\82Ì\8f\89\8aú\89»\82É\8e¸\94s\82µ\82½\8fê\8d\87 */
+       void initKeyboard(void);
+
+       /// DirectInput\82©\82ç\82Ì\83R\81[\83\8b\83o\83b\83N\82ð\8f\88\97\9d\82·\82é 
+       BOOL enumJoysticksCallback(const DIDEVICEINSTANCE* pdidInstance);
+       /// DirectInput\82©\82ç\82Ì\83R\81[\83\8b\83o\83b\83N\82ð\8f\88\97\9d\82·\82é 
+       BOOL enumAxesCallback( const DIDEVICEOBJECTINSTANCE* pdidoi);
+       
+       
+       bool mbEnabled;///< Sound\83C\83\93\83^\81[\83t\83F\81[\83X\82ª\8c»\8dÝ\8eg\97p\89Â\82©\82Ç\82¤\82©
+       bool mbMouseCursor;///< \83}\83E\83X\83J\81[\83\\83\8b\82ª\95\\8e¦\82³\82ê\82Ä\82¢\82é\82©\82¢\82È\82¢\82©
+       
+       LPDIRECTINPUT8           mpDI;///< DirectInput8 \83C\83\93\83^\81[\83t\83F\81[\83X                   
+       
+       LPDIRECTINPUTDEVICE8 mpJoystick;///< \83W\83\87\83C\83X\83e\83B\83b\83N\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^
+       LPDIRECTINPUTDEVICE8 mpKeyboard;///< \83L\81[\83{\81[\83h\83f\83o\83C\83X\82Ì\83|\83C\83\93\83^
+       
+       DIDEVCAPS                               mDIJoystickDevCaps;///< \83f\83o\83C\83X\94\\97Í
+       DIJOYSTATE2                             mDIJoyState;///< \83W\83\87\83C\83X\83e\83B\83b\83N\82Ì\8fó\91Ô
+       BYTE    mDIKeys[256];   ///< DirectInput keyboard state buffer 
+
+       HWND                                    mHWND;///< \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b
+
+       // \83}\83E\83X\83C\83x\83\93\83g\83R\81[\83\8b\83o\83b\83N\97p
+       MouseListenerList mMouseListenerList;///< mouse::Listener\82Ì\94z\97ñ
+       MouseListenerList mMouseListenerQ;///< mouse::Listener\82Ì\94z\97ñ(\88ê\8e\9e\95Û\8e\9d\97p)
+
+       KeyboardListenerList mKeyboardListenerList;///< keyboard::Listener\82Ì\94z\97ñ
+       KeyboardListenerList mKeyboardListenerQ;///< keyboard::Listener\82Ì\94z\97ñ(\88ê\8e\9e\95Û\8e\9d\97p)
+
+       bool mbUp;///< \8fã\83{\83^\83\93
+       bool mbDown;///< \89º\83{\83^\83\93
+       bool mbLeft;///< \8d\83{\83^\83\93
+       bool mbRight;///< \89E\83{\83^\83\93
+       
+       bool mbButtonA;///< \83{\83^\83\93A
+       bool mbButtonB;///< \83{\83^\83\93B
+       bool mbButtonC;///< \83{\83^\83\93C
+       bool mbButtonD;///< \83{\83^\83\93D
+       
+       bool mbStart;///< START\83{\83^\83\93
+       bool mbExit;///< EXIT\83{\83^\83\93
+
+       bool mbBeforeUp;///< \8fã\83{\83^\83\93\82Ì1\83t\83\8c\81[\83\80\91O\82Ì\8fó\91Ô
+       bool mbBeforeDown;///< \89º\83{\83^\83\93\82Ì1\83t\83\8c\81[\83\80\91O\82Ì\8fó\91Ô
+       bool mbBeforeLeft;///< \8d\83{\83^\83\93\82Ì1\83t\83\8c\81[\83\80\91O\82Ì\8fó\91Ô
+       bool mbBeforeRight;///< \89E\83{\83^\83\93\82Ì1\83t\83\8c\81[\83\80\91O\82Ì\8fó\91Ô
+       
+       bool mbBeforeButtonA;///< \83{\83^\83\93A\82Ì1\83t\83\8c\81[\83\80\91O\82Ì\8fó\91Ô
+       bool mbBeforeButtonB;///< \83{\83^\83\93B\82Ì1\83t\83\8c\81[\83\80\91O\82Ì\8fó\91Ô
+       bool mbBeforeButtonC;///< \83{\83^\83\93C\82Ì1\83t\83\8c\81[\83\80\91O\82Ì\8fó\91Ô
+       bool mbBeforeButtonD;///< \83{\83^\83\93D\82Ì1\83t\83\8c\81[\83\80\91O\82Ì\8fó\91Ô
+
+       bool mbBeforeStart;///< START\83{\83^\83\93\82Ì1\83t\83\8c\81[\83\80\91O\82Ì\8fó\91Ô
+       bool mbBeforeExit;///< EXIT\83{\83^\83\93\82Ì1\83t\83\8c\81[\83\80\91O\82Ì\8fó\91Ô
+};
+               } // namespace input
+       } // namespace system
+} // namespace sf
+}
+#endif // !defined(AFX_INPUTInputImpl_H__CAF65806_66F9_4CFF_89EC_66E36A0FB746__INCLUDED_)
diff --git a/project/sfglib/MAKEFILE b/project/sfglib/MAKEFILE
new file mode 100644 (file)
index 0000000..085843b
--- /dev/null
@@ -0,0 +1,118 @@
+#//@STATE=\8a®\90¬
+#//@DESCRIPTION
+# Borland C++ 5.5\97p\83\81\83C\83N\83t\83@\83C\83\8b
+#$Log: MAKEFILE,v $
+#Revision 1.1  2001/10/28 21:40:53  fujiwara
+#DLL\82É\95ª\8a\84
+#
+#//@DESCRIPTION_END
+#//@AUTHOR=S.F.
+
+
+CC   = bcc32
+RC   = brc32
+AS   = tasm32
+CXX  = bcc32 -P
+CPP  = bcc32 -P
+CPP32 = cpp32
+
+LINKER = ilink32
+LINK   = ilink32
+LIBRARIAN = tlib /P128
+
+# \83R\83\93\83p\83C\83\8b\83I\83u\83W\83F\83N\83g\90\90¬\90æ\83f\83B\83\8c\83N\83g\83\8a\82ð\91\8a\91Î\83p\83X\82Å\8ew\92è
+INT = .
+PRODUCT = ..\..
+OUT = $(PRODUCT)\obj
+INTDIR = $(OUT)
+
+#\8c\9f\8dõ\83p\83X\82Ì\90Ý\92è
+.path.obj = $(OUT)
+.path.cpp  = $(INT)
+.path.h    = $(INT)
+
+# \83C\83\93\83N\83\8b\81[\83h\83t\83@\83C\83\8b\82Ì\83p\83XDirectX
+INCLUDEPATH = $(PRODUCT)\lib\;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;
+LIBPATH =  $(PRODUCT)\lib\;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;
+!ifdef _DEBUG
+CFLAGS = -c -v -N -Od -WM- -WD  -H -Hs -5 -a8  -I$(INCLUDEPATH) -L$(LIBPATH) -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n$(OUT)
+!else
+CFLAGS = -c -N -O2 -WM- -WD  -H -Hs -5 -a8 -I$(INCLUDEPATH) -L$(LIBPATH) -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n$(OUT)
+!endif
+CFLAGS1 = -VM
+CFLAGS1 = $(CFLAGS1) -Dsinf=(float)sin
+CFLAGS1 = $(CFLAGS1) -Dcosf=(float)cos
+CFLAGS1 = $(CFLAGS1) -Dasinf=(float)asin
+CFLAGS1 = $(CFLAGS1) -Dacosf=(float)acos
+CFLAGS1 = $(CFLAGS1) -Dsqrtf=(float)sqrt
+CFLAGS1 = $(CFLAGS1) -Dexpf=(float)exp
+CFLAGS1 = $(CFLAGS1) -D_BORLAND  -DSFGLIB_EXPORTS
+!ifdef _DEBUG
+       CFLAGS1 = $(CFLAGS1) -D_DEBUG
+!endif
+
+CFLAGS = $(CFLAGS) $(CFLAGS1)
+
+RCFLAGS = -r -i$(INCLUDEPATH) -D_BORLAND -w32
+!ifdef _DEBUG
+LINKFLAGS = -Tpd -aa -v -r -c -L$(LIBPATH)  /j$(OUT) /I$(OUT)
+!else
+LINKFLAGS = -Tpd -aa -r -c -x -L$(LIBPATH)  /j$(OUT) /I$(OUT)
+#LINKFLAGS = -Tpd -Gl -r -c -x -L$(LIBPATH)  /j$(OUT) /I$(OUT)
+
+!endif
+LINKLIBS = dsound.lib c_dinput.lib import32.lib cw32.lib dinput8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib dxerr8bor.lib winmm.lib
+
+.cpp.obj:
+       $(CC) $(CFLAGS) $<
+
+.h.obj:
+       $(CC) $(CFLAGS) $&.cpp
+
+.rc.res:
+  $(RC) $(RCFLAGS) $&.rc  -fo$(OUT)\$&
+
+
+PROJ    = sfglib
+DLL     = $(PROJ).dll
+
+OBJS =         "$(INTDIR)\AbstractSprite.obj" \
+       "$(INTDIR)\BackGround.obj" \
+       "$(INTDIR)\ConsoleImpl.obj" \
+       "$(INTDIR)\Exception.obj" \
+       "$(INTDIR)\InputImpl.obj" \
+       "$(INTDIR)\Obj.obj" \
+       "$(INTDIR)\Obj2D.obj" \
+       "$(INTDIR)\Obj3D.obj" \
+       "$(INTDIR)\Obj3DL.obj" \
+       "$(INTDIR)\ObjQuadrangle.obj" \
+       "$(INTDIR)\ObjRectangle.obj" \
+       "$(INTDIR)\sfglib.obj" \
+       "$(INTDIR)\SoundImpl.obj" \
+       "$(INTDIR)\Sprite2D.obj" \
+       "$(INTDIR)\Sprite3D.obj" \
+       "$(INTDIR)\SpriteMesh.obj" \
+       "$(INTDIR)\StdAfx.obj" \
+       "$(INTDIR)\System.obj" \
+       "$(INTDIR)\SystemImpl.obj" 
+
+RESOURCE_OBJ = $(PROJ).res
+
+## DEFS = $(PROJ).def
+
+$(OUT)\$(DLL): {$(OUT)}$(OBJS) {$(OUT)}$(RESOURCE_OBJ)
+  $(LINKER) $(LINKFLAGS) c0d32w.obj $(OBJS),$*,,$(LINKLIBS),$(DEFS),$(OUT)\$(RESOURCE_OBJ)
+       copy $(OUT)\$(DLL) $(PRODUCT)
+       implib .\lib\$(PROJ).lib $(OUT)\$(DLL)
+       copy $(OUT)\$(DLL) $(PRODUCT)
+##     copy .\media\*.* $(PRODUCT)\media
+
+all: $(OUT)\$(DLL)
+
+clean:
+       del $(OUT)\*.obj 
+       del $(OUT)\*.i?? 
+       del     $(OUT)\*.t?? 
+       del $(OUT)\*.res 
+       del $(OUT)\$(DLL)
+
diff --git a/project/sfglib/Main.h b/project/sfglib/Main.h
new file mode 100644 (file)
index 0000000..561c327
--- /dev/null
@@ -0,0 +1,51 @@
+/**
+ * @file
+ * @brief Main \83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\92è\8b`\81A\82»\82ê\82É\82©\82©\82í\82é\92è\90\94\92è\8b`\82ð\8ds\82¤\81B
+ *
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+/// \8fd\95¡\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#if !defined(AFX_Main_H__FFF94F56_3A52_413E_9CD2_A5E815DCFB90__INCLUDED_)
+#define AFX_Main_H__FFF94F56_3A52_413E_9CD2_A5E815DCFB90__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+namespace sf{
+       namespace application {
+               
+               const int INIT_PLAYER = 3;///< \8f\89\8aú\83v\83\8c\81[\83\84\81[\90\94
+               const int STAGE_NUM_MAX = 1;///< \83X\83e\81[\83W\82Ì\90\94
+
+               /** \83\81\83C\83\93\83C\83\93\83^\81[\83t\83F\81[\83X.*/
+               class Main  
+               {
+                       // LIFECYCLE //
+               public:
+                       /// \83R\83\93\83X\83g\83\89\83N\83^
+                       Main(){;};
+                       /// \83f\83X\83g\83\89\83N\83^
+                       virtual ~Main(){;};
+                       /// \8f\89\8aú\89»\82ð\8ds\82¤
+                       virtual void initialize(void) = 0;
+                       // OPERATORS //
+                       // OPERATIONS //
+                       /// \83A\83v\83\8a\83P\81[\83V\83\87\83\93\82ð\8eÀ\8ds\82·\82é
+                       virtual void run() = 0;
+                       /** \8bó\94\92\83X\83v\83\89\83C\83g\82ð\8eæ\93¾\82·\82é.
+                        * @return sf::system::console::sprite::Sprite \82Ì\83|\83C\83\93\83^ */
+                       virtual sf::system::console::sprite::Sprite * const getBlankSprite() = 0;
+
+                       // INQUIRY //
+                       /** \83\81\83C\83\93\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^\82ð\8eæ\93¾\82·\82é.
+                        @return Main \83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\97B\88ê\82Ì\83C\83\93\83X\83^\83\93\83X\82Ì\83|\83C\83\93\83^*/
+                       static Main * instance();
+               };// Main
+       }// application
+}// sf
+#endif // !defined(AFX_Main_H__FFF94F56_3A52_413E_9CD2_A5E815DCFB90__INCLUDED_)
diff --git a/project/sfglib/Obj.cpp b/project/sfglib/Obj.cpp
new file mode 100644 (file)
index 0000000..5bf8dc4
--- /dev/null
@@ -0,0 +1,151 @@
+/**
+ * @file Obj.h
+ * @brief \83X\83v\83\89\83C\83g\82Ì\95\\8e¦\91®\90«\8aÖ\98A\82Ì\8eÀ\91\95\82ð\8ds\82¤\81B
+ * 
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#ifdef _DEBUG
+#ifndef _BORLAND
+#define _CRTDBG_MAP_ALLOC
+#include <stdlib.h>
+#include <crtdbg.h>
+#endif
+#endif
+
+#include <string>
+#include "stdio.h"
+
+#include "system.h"
+#include "console.h"
+
+#include "Obj.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+using namespace sf::system::console;
+
+int Obj::List::mCount = 0;
+Obj* Obj::List::mspBottom = NULL;
+Obj* Obj::List::mspTop = NULL;
+Obj* Obj::List::mspCurrent = NULL;
+
+//----------------------------------------------------------------------------
+// Obj Class
+//----------------------------------------------------------------------------
+
+// \83R\83\93\83X\83g\83\89\83N\83^ -------------------------------------------------------------
+Obj::Obj()
+{
+
+}// Obj
+
+// \83f\83X\83g\83\89\83N\83^ ---------------------------------------------------------------
+Obj::~Obj()
+{
+
+}// Obj
+
+//----------------------------------------------------------------------------
+// Obj::List Class
+//----------------------------------------------------------------------------
+
+// Obj\82ðZ\92l\82Å\83\\81[\83g\82µ\82È\82ª\82ç\91}\93ü\82·\82é --------------------------------------------
+void Obj::List::insertObj(Obj *value)
+{
+       Obj *pobj = mspTop;
+       if(mspTop == NULL){
+               mspTop = value;
+               mspCurrent = value;
+               mspBottom = value;
+               value->next(NULL);
+               value->previous(NULL);
+               mCount++;
+       } else {
+               while(pobj != NULL)
+               {
+                       if(value->z() <= pobj->z())
+                       {
+                               pobj = pobj->next();
+                               
+                       } else {
+       
+                               value->next(pobj);
+                               
+                               if(pobj->previous() != NULL){
+                                       value->previous(pobj->previous());
+                                       value->previous()->next(value);
+                                       pobj->previous(value);
+                               } else {
+                                       value->previous(NULL);
+                                       mspTop = value; 
+                                       pobj->previous(value);
+                               }
+
+                               mCount++;
+                               return;
+                       }
+
+               }
+
+               mspBottom->next(value);
+               value->previous(mspBottom);
+               value->next(NULL);
+               mspBottom = value;
+               mCount++;
+       }
+}// insertObj()
+
+// Obj\82ð\8dí\8f\9c\82·\82é --------------------------------------------------------------
+void Obj::List::deleteObj(Obj *value)
+{
+       if(value->next() != NULL)
+       {
+               if(value->previous() != NULL)
+               {
+                       value->previous()->next(value->next());
+                       value->next()->previous(value->previous());
+                       value->next(NULL);
+                       value->previous(NULL);
+               } else {
+                       mspTop = value->next();
+                       value->next()->previous(NULL);
+                       value->next(NULL);
+               }
+       } else {
+               if(value->previous() != NULL){
+                       mspBottom = value->previous();
+                       value->previous()->next(NULL);
+                       value->previous(NULL);
+               } else {
+                       value->next(NULL);
+                       value->previous(NULL);
+                       mspBottom = NULL;
+                       mspTop = NULL;
+               }
+       }
+       mCount --;
+} // deleteObj()
+
+Obj * Obj::List::moveNext()
+{
+       if(mspCurrent != NULL)
+               mspCurrent = mspCurrent->next();
+       return mspCurrent;
+};
+
+Obj * Obj::List::movePrevious()
+{      if(mspCurrent != NULL)
+               mspCurrent = mspCurrent->previous();
+       return mspCurrent;
+};
+
+Obj * Obj::List::moveTop(){mspCurrent = mspTop ; return mspTop ;};
+Obj * Obj::List::moveBottom(){mspCurrent = mspBottom ; return  mspBottom;};
diff --git a/project/sfglib/Obj.h b/project/sfglib/Obj.h
new file mode 100644 (file)
index 0000000..f87eee0
--- /dev/null
@@ -0,0 +1,149 @@
+/**
+ * @file Obj.h
+ * @brief \83X\83v\83\89\83C\83g\82Ì\95\\8e¦\91®\90«(\8dÀ\95W\88Ê\92u\81Aetc)\82È\82Ç\82ð\95Û\8e\9d\82µ\82Ä\82¢\82é\83C\83\93\83^\81[\83t\83F\81[\83X\81A\92è\90\94\82Ì\92è\8b`\82ð\8ds\82¤\81B
+ * 
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+/// \8fd\95¡\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#if !defined(AFX_OBJ_H__848EAA84_F65D_4C04_982A_EC1A7484C2E7__INCLUDED_)
+#define AFX_OBJ_H__848EAA84_F65D_4C04_982A_EC1A7484C2E7__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include "sf.h"
+extern "C" {
+namespace sf {
+       namespace system {
+               namespace console {
+
+typedef        int OBJNO;///< OBJNO\8c^\82Ì\92è\8b`
+
+/** \83X\83v\83\89\83C\83g\95\\8e¦\91®\90«\83C\83\93\83^\81[\83t\83F\81[\83X.
+ * Obj\83C\83\93\83^\81[\83t\83F\81[\83X\82Í\81A\83X\83v\83\89\83C\83g\82Ì\95\\8e¦\91®\90«\82ð\95Û\8e\9d\82µ\82Ü\82·\81B
+ * Obj\8e©\90g\82ª\81A\83\8a\83X\83g\82Ì\83m\81[\83h\82Æ\82È\82Á\82Ä\82¢\82Ä\81AObj::List\82É\93o\98^\82³\82ê\82Ü\82·\81B*/
+class SFDLL Obj
+{
+public:
+       /// \83R\83\93\83X\83g\83\89\83N\83^
+       Obj();
+       /// \83f\83X\83g\83\89\83N\83^
+       virtual ~Obj();
+
+       /// \83I\83u\83W\83F\82ð\95`\89æ\82·\82é
+       virtual void draw() = 0;
+
+       // ACCESS //
+
+       /** Sprite\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83A\83h\83\8c\83X\82ð\8eæ\93¾\82·\82é 
+        * @return Sprite\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^ */
+       virtual sprite::Sprite * const sprite() const = 0;
+       
+       /** Sprite\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83A\83h\83\8c\83X\82ð\90Ý\92è\82·\82é 
+        * @param value Sprite\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^*/
+       virtual void sprite(sprite::Sprite* const value) = 0;
+
+       /** \83X\83v\83\89\83C\83g\83C\83\93\83f\83b\83N\83X\82ð\8eQ\8fÆ\82·\82é. 
+        * \83C\83\93\83f\83b\83N\83X\82Í\81ASprite\83r\83b\83g\83}\83b\83v\82Ì\92\86\82Ì\89½\94Ô\96Ú\82ð\95\\8e¦\82·\82é\82©\82ð\82³\82µ\82Ü\82·\81B
+        * @return \83C\83\93\83f\83b\83N\83X */
+       virtual const int index() const = 0;
+       
+       /** \83X\83v\83\89\83C\83g\83C\83\93\83f\83b\83N\83X\82ð\90Ý\92è\82·\82é 
+        * @param value \83X\83v\83\89\83C\83g\83C\83\93\83f\83b\83N\83X */
+       virtual void index(const int value) = 0;
+
+       /** \95\\8e¦\81E\94ñ\95\\8e¦\91®\90«\82ð\8eQ\8fÆ\82·\82é 
+        * @retval true \95\\8e¦
+        * @retval false \94ñ\95\\8e¦ */
+       virtual const bool visibility() const = 0;
+
+       /** \95\\8e¦\81E\94ñ\95\\8e¦\91®\90«\82ð\90Ý\92è\82·\82é 
+        * @retval true \95\\8e¦
+        * @retval false \94ñ\95\\8e¦ */
+       virtual void visibility(const bool value) = 0;
+
+       /** \91O\82Ì\83m\81[\83h\82Ì\83|\83C\83\93\83^\82ð\8eæ\93¾\82·\82é 
+        @return Obj\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^\81B
+        null\82Ì\8fê\8d\87\82Í\82±\82ê\88È\8fã\91O\82É\83f\81[\83^\82Í\82È\82¢   */
+       virtual Obj * const previous() const  = 0;
+
+       /** \91O\82Ì\83m\81[\83h\82Ì\83|\83C\83\93\83^\82ð\90Ý\92è\82·\82é 
+        @param value Obj\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^*/
+       virtual void previous(Obj * const value) = 0;
+       
+       /** \8e\9f\82Ì\83m\81[\83h\82Ì\83|\83C\83\93\83^\82ð\8eæ\93¾\82·\82é 
+        @return Obj\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^\81B
+        null\82Ì\8fê\8d\87\82Í\82±\82ê\88È\8fã\8cã\82É\83f\81[\83^\82Í\82È\82¢   */
+       virtual Obj * const next() const  = 0;
+
+       /** \8e\9f\82Ì\83m\81[\83h\82Ì\83|\83C\83\93\83^\82ð\90Ý\92è\82·\82é 
+        @param value Obj\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^*/
+       virtual void next(Obj * const value) = 0;
+
+       /** z\8dÀ\95W\82ð\8eæ\93¾\82·\82é 
+        * @return z\8dÀ\95W */
+       virtual const float z() const  = 0;
+       
+       /** z\8dÀ\95W\82ð\90Ý\92è\82·\82é 
+        * @param value z\8dÀ\95W */
+       virtual void    z(const float value) = 0;
+
+       /** \95`\89æ\83\82\81[\83h\82ð\90Ý\92è\82·\82é 
+        * @param value DrawMode */
+       virtual void drawMode(const DrawMode value) = 0;
+       /** \95`\89æ\83\82\81[\83h\82ð\8eQ\8fÆ\82·\82é 
+        * @return DrawMode */
+       virtual const DrawMode drawMode() const  = 0;
+
+       ///\91o\95û\8cü\83\8a\83X\83g\82ð\95Û\8e\9d\82·\82é\83N\83\89\83
+       /*! Obj\82Ì\83\8a\83X\83g\82ð\95Û\8e\9d\82µ\82Ü\82·\81B<br>
+       \82·\82×\82Ä\83X\83^\83e\83B\83b\83N\83\81\83\93\83o\82Å\8d\\92z\82µ\82Ä\82Ý\82Ü\82µ\82½\81B*/
+       class SFDLL List
+       {
+       public:
+               /** Obj\82ð\91}\93ü\82·\82é.
+                * @param value Obj\82Ì\83|\83C\83\93\83^ */
+               static void insertObj(Obj *value);
+               
+               /** Obj\82ð\8dí\8f\9c\82·\82é.
+                * @param value Obj\82Ì\83|\83C\83\93\83^ */
+               static void deleteObj(Obj *value);
+
+               /** \90æ\93ª\82É\88Ú\93®\82·\82é.
+                * @return Obj\82Ì\83|\83C\83\93\83^ NULL\82Ì\8fê\8d\87\82Í\83f\81[\83^\82ª\82È\82¢*/
+               static Obj * moveTop();
+               
+               /** \8fI\92[\82É\88Ú\93®\82·\82é.
+                * @return value Obj\82Ì\83|\83C\83\93\83^ NULL\82Ì\8fê\8d\87\82Í\83f\81[\83^\82ª\82È\82¢*/
+               static Obj * moveBottom();
+
+               /** \8e\9f\82É\88Ú\93®\82·\82é.
+                * @return value Obj\82Ì\83|\83C\83\93\83^ NULL\82Ì\8fê\8d\87\82Í\83f\81[\83^\82ª\82È\82¢*/
+               static Obj * moveNext();
+
+               /** \91O\82É\88Ú\93®\82·\82é.
+                * @return value Obj\82Ì\83|\83C\83\93\83^ NULL\82Ì\8fê\8d\87\82Í\83f\81[\83^\82ª\82È\82¢*/
+               static Obj * movePrevious();
+               
+       private:
+               
+               static Obj* mspCurrent;///< \83J\83\8c\83\93\83g\83m\81[\83h
+               static Obj* mspTop;///< \90æ\93ª\83m\81[\83h
+               static Obj* mspBottom;///< \8fI\92[\83m\81[\83h
+               static int mCount;///< \83m\81[\83h\82Ì\90\94
+               
+       };// List
+
+};// Obj
+
+
+               }
+       }
+}
+}
+#endif // !defined(AFX_OBJ_H__848EAA84_F65D_4C04_982A_EC1A7484C2E7__INCLUDED_)
diff --git a/project/sfglib/Obj2D.cpp b/project/sfglib/Obj2D.cpp
new file mode 100644 (file)
index 0000000..1e6c2d6
--- /dev/null
@@ -0,0 +1,60 @@
+/**
+ * @file
+ * @brief 2D\83X\83v\83\89\83C\83g\91®\90«\95Û\8e\9d\83N\83\89\83X\82Ì\8eÀ\91\95\82ð\8ds\82¤.
+ * 
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.*/
+
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#ifdef _DEBUG
+#ifndef _BORLAND
+#define _CRTDBG_MAP_ALLOC
+#include <stdlib.h>
+#include <crtdbg.h>
+#endif
+#endif
+
+#include <string>
+#include "stdio.h"
+
+#include "system.h"
+#include "console.h"
+
+#include "Obj.h"
+#include "Obj2D.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+using namespace sf::system::console;
+
+
+//----------------------------------------------------------------------------
+// Obj2D Class
+//----------------------------------------------------------------------------
+
+// \83R\83\93\83X\83g\83\89\83N\83^ -------------------------------------------------------------
+
+Obj2D::Obj2D()
+{
+       mbVisibility = false;
+       mIndex = 0;
+       mpNext = mpPrevious = NULL;
+       mRad = mAngle = 0.0f;
+       mScalingX = mScalingY = 1.0f;
+       mX = mY = 0.0f;
+       mZ = 0.0f;
+       mbReverseX = mbReverseY = false;
+       mpSprite = NULL;
+
+}// Obj2D
+
+// \83f\83X\83g\83\89\83N\83^ ---------------------------------------------------------------
+Obj2D::~Obj2D()
+{
+}// ~Obj2D
+
diff --git a/project/sfglib/Obj2D.h b/project/sfglib/Obj2D.h
new file mode 100644 (file)
index 0000000..1efd09c
--- /dev/null
@@ -0,0 +1,146 @@
+/**
+ * @file
+ * @brief 2D\83X\83v\83\89\83C\83g\91®\90«\82Ì\92è\8b`\82ð\8ds\82¤.
+ * 
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+/// \8fd\95¡\83C\83\93\83N\83\8b\81[\83h\96h\8e~\97p\83}\83N\83\8d
+#if !defined(OBJ2D)
+#define OBJ2D
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+extern "C" {
+namespace sf {
+       namespace system {
+               namespace console {
+
+#include "sf.h"
+
+/// 2D\83X\83v\83\89\83C\83g\91®\90«
+class SFDLL Obj2D : public Obj
+{
+public:
+       /// \83R\83\93\83X\83g\83\89\83N\83^
+       Obj2D();
+       /// \83f\83X\83g\83\89\83N\83^
+       virtual ~Obj2D();
+
+       /** X\8dÀ\95W\82ð\8eæ\93¾\82·\82é 
+        * @return X \8dÀ\95W */
+       virtual const float x() const { return mX;};
+       
+       /** X\8dÀ\95W\82ð\90Ý\92è\82·\82é 
+        * @param value X \8dÀ\95W */
+       virtual void    x(const float value) { mX = value;}; 
+       
+       /** Y\8dÀ\95W\82ð\8eæ\93¾\82·\82é 
+        * @return Y \8dÀ\95W */
+       virtual const float     y()     const { return mY;};
+       
+       /** Y\8dÀ\95W\82ð\90Ý\92è\82·\82é 
+        * @param value Y \8dÀ\95W */
+       virtual void    y(const float value) { mY = value;}; 
+       
+       /** Z\8dÀ\95W\82ð\8eæ\93¾\82·\82é.
+        * OBJ2D\82Å\82ÍZ\92l\82Í\95`\89æ\97D\90æ\8f\87\88Ê\82Æ\82È\82è\82Ü\82·\81BZ\92l\82É\89\9e\82\82½\83X\83P\81[\83\8a\83\93\83O\82Í\8ds\82í\82ê\82Ü\82¹\82ñ\81B
+        * @return Z \8dÀ\95W */
+       virtual const float z() const { return mZ;};
+       
+       /** Z\8dÀ\95W\82ð\90Ý\92è\82·\82é 
+        * @param value Z \8dÀ\95W */
+       virtual void    z(const float value) { mZ = value;List::deleteObj(this); List::insertObj(this);};
+       
+       /** \89ñ\93]\8ap\93x\82ð\8eæ\93¾\82·\82é 
+        * @param value \89ñ\93]\8ap\93x(\83\89\83W\83A\83\93) */
+       virtual const float angle() const { return mAngle;};
+       
+       /** \89ñ\93]\8ap\93x\82ð\90Ý\92è\82·\82é 
+        * @return \89ñ\93]\8ap\93x(\83\89\83W\83A\83\93) */
+       virtual void    angle(const float value) { mAngle = value;};
+       
+       /** X\8e²\95û\8cü\82Ì\8ag\91å\8fk\8f¬\97¦\82ð\8eæ\93¾\82·\82é
+        * @return X\8e²\95û\8cü\82Ì\8ag\91å\97¦\8fk\8f¬\97¦ */
+       virtual const float scalingX() const { return mScalingX;}; 
+       
+       /** X\8e²\95û\8cü\82Ì\8ag\91å\8fk\8f¬\97¦\82ð\90Ý\92è\82·\82é
+        * @param value X\8e²\95û\8cü\82Ì\8ag\91å\8fk\8f¬\97¦ */
+       virtual void scalingX(const float value) { mScalingX = value;}; 
+       
+       /** Y\8e²\95û\8cü\82Ì\8ag\91å\8fk\8f¬\97¦\82ð\8eæ\93¾\82·\82é
+        * @return Y\8e²\95û\8cü\82Ì\8ag\91å\8fk\8f¬\97¦ */
+       virtual const float scalingY() const { return mScalingY;}; 
+       
+       /** Y\8e²\95û\8cü\82Ì\8ag\91å\8fk\8f¬\97¦\82ð\90Ý\92è\82·\82é
+        * @param value Y\8e²\95û\8cü\82Ì\8ag\91å\8fk\8f¬\97¦ */
+       virtual void scalingY(const float value) { mScalingY = value;}; 
+
+       /** X\94½\93]\82Ì\8fó\91Ô\82ð\8eæ\93¾\82·\82é 
+        * @retval true X\94½\93]\82µ\82Ä\82¢\82é 
+          @retval false X\94½\93]\82µ\82Ä\82¢\82È\82¢\81@*/
+       virtual const bool reverseX() const { return mbReverseX;};
+       
+       /** X\94½\93]\82Ì\8fó\91Ô\82ð\90Ý\92è\82·\82é
+        * @param value true X\94½\93]\82·\82é false X\94½\93]\82µ\82È\82¢*/
+       virtual void reverseX(const bool value) { mbReverseX = value;}; 
+       
+       /** Y\94½\93]\82Ì\8fó\91Ô\82ð\8eæ\93¾\82·\82é 
+        * @retval true Y\94½\93]\82µ\82Ä\82¢\82é 
+          @retval false Y\94½\93]\82µ\82Ä\82¢\82È\82¢\81@*/
+       virtual const bool reverseY() const { return mbReverseY;};
+       
+       /** Y\94½\93]\82Ì\8fó\91Ô\82ð\90Ý\92è\82·\82é
+        * @param value true Y\94½\93]\82·\82é false Y\94½\93]\82µ\82È\82¢*/
+       virtual void reverseY(const bool value) { mbReverseY = value;}
+       
+       virtual void drawMode(const DrawMode value) { mDrawMode = value;};
+       
+       virtual const DrawMode drawMode() const  {return mDrawMode;}
+       
+       virtual sprite::Sprite * const sprite() const {return mpSprite;};
+       virtual void sprite(sprite::Sprite* const value){ mpSprite = value;};
+
+       virtual const int index() const { return mIndex;};
+       virtual void index(const int value) { mIndex = value;};
+
+       
+       virtual const bool visibility() const {return mbVisibility;};
+       virtual void visibility(const bool value){ mbVisibility = value;};
+       
+       virtual Obj * const previous()  const {return mpPrevious;};
+       virtual void previous(Obj * const value){mpPrevious = value;};
+       
+       virtual Obj * const next() const {return mpNext;};
+       virtual void next(Obj * const value){mpNext = value;};
+
+private:
+
+       float mX,///< X\8dÀ\95W
+                 mY,///< Y\8dÀ\95W
+                 mZ,///< Z\8dÀ\95W(\95`\89æ\97D\90æ\8f\87\88Ê)
+                 mRad,///< \89ñ\93]\8ap\93x(\83\89\83W\83A\83\93\81j
+                 mAngle;///< \89ñ\93]\8ap\93x(\83\89\83W\83A\83\93\81j
+       float mScalingX,///< X\8e²\95û\8cü\82Ì\8ag\91å\8fk\8f¬\97¦
+                 mScalingY;///< Y\8e²\95û\8cü\82Ì\8ag\91å\8fk\8f¬\97¦
+       bool mbVisibility;///< \95\\8e¦\82·\82é\82©\82µ\82È\82¢\82©
+       bool mbReverseX;///< X\94½\93]\82·\82é\82©\82µ\82È\82¢\82©
+       bool mbReverseY;///< Y\94½\93]\82·\82é\82©\82µ\82È\82¢\82©
+       
+       sprite::Sprite *mpSprite;///< Sprite\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^
+       int mIndex;///< Sprite\82Ì\92\86\82Ì\83C\83\93\83f\83b\83N\83X
+
+       DrawMode mDrawMode;///< DrawMode
+       Obj* mpPrevious;///< \91O\82ÌObj\82Ì\83|\83C\83\93\83^
+       Obj* mpNext;///< \8e\9f\82ÌObj\82Ì\83|\83C\83\93\83^
+
+};// Obj
+               }
+       }
+}
+}
+#endif // !defined(AFX_OBJ_H__848EAA84_F65D_4C04_982A_EC1A7484C2E7__INCLUDED_)
diff --git a/project/sfglib/Obj3D.cpp b/project/sfglib/Obj3D.cpp
new file mode 100644 (file)
index 0000000..0feca7c
--- /dev/null
@@ -0,0 +1,99 @@
+/**
+ * @file
+ * @brief 3D\83X\83v\83\89\83C\83g\91®\90«\82Ì\8eÀ\91\95\82ð\8ds\82¤.
+ * 
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.*/
+
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include <string>
+#include "stdio.h"
+#include "math.h"
+
+#include "system.h"
+#include "console.h"
+
+#include "Obj3D.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+using namespace sf::system::console;
+
+Obj3D::Obj3D()
+{
+       mX = mY = mZ = 0.0f;
+       mAngleX = mAngleY = mAngleZ = 0.0f;
+       mScalingX = mScalingY = mScalingZ = 1.0f;
+       mRotXSin = mRotYSin = mRotZSin = sinf(0.0f); 
+       mRotXCos = mRotYCos = mRotZCos = cosf(0.0f); 
+       
+       mSpaceX = mSpaceY = mSpaceZ = 0.0f;
+       
+       mbVisibility = false;
+       mIndex = 0;
+       mpNext = mpPrevious = NULL;
+       mDrawMode = DRAW_TRANS;
+       mpSprite = NULL;
+}
+
+Obj3D::~Obj3D()
+{;
+}
+
+// X\8dÀ\95\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Obj3D::x(const float value)
+{
+       mX = value;
+       mSpaceX = value * 2.0f / (float)screen::HEIGHT;
+}// x
+
+// X\8dÀ\95\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Obj3D::y(const float value)
+{
+       mY = value;
+       mSpaceY = - value * 2.0f / (float)screen::HEIGHT;
+}// x
+
+// X\8dÀ\95\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Obj3D::z(const float value)
+{
+       mSpaceZ = mZ =  value;
+       List::deleteObj(this);
+       List::insertObj(this);
+
+       //mSpaceZ = value * 2.0f / (float)screen::HEIGHT; 
+}// x
+
+// X\8ap\93\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Obj3D::angleX(const float value)
+{
+       mAngleX = value;
+       mRotXCos = cosf(value);
+       mRotXSin = sinf(value);
+}// AngleX()
+
+// Y\8ap\93\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Obj3D::angleY(const float value)
+{
+       mAngleY = value;
+       mRotYCos = cosf(value);
+       mRotYSin = sinf(value);
+}// AngleY()
+
+// X\8ap\93\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Obj3D::angleZ(const float value)
+{
+       mAngleZ = value;
+       mRotZCos = cosf(value);
+       mRotZSin = sinf(value);
+}// AngleZ()
+
+
diff --git a/project/sfglib/Obj3D.h b/project/sfglib/Obj3D.h
new file mode 100644 (file)
index 0000000..af4c85e
--- /dev/null
@@ -0,0 +1,197 @@
+/**
+ * @file
+ * @brief 3D\83X\83v\83\89\83C\83g\91®\90«\82Ì\92è\8b`\82ð\8ds\82¤.
+ * 
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.*/
+
+/// \8fd\95¡\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#if !defined(AFX_OBJ3D_H__6F81DB0E_4F49_491D_9D09_E729679CE97A__INCLUDED_)
+#define AFX_OBJ3D_H__6F81DB0E_4F49_491D_9D09_E729679CE97A__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "sf.h"
+#include "Obj.h"
+extern "C" {
+namespace sf{
+       namespace system{
+               namespace console {
+/** 3D\83X\83v\83\89\83C\83g\91®\90«\83N\83\89\83X\82Ì\92è\8b` */
+class SFDLL Obj3D : public Obj  
+{
+       // LIFECYCLE //
+public:
+       /// \83R\83\93\83X\83g\83\89\83N\83^
+       Obj3D();
+       /// \83f\83X\83g\83\89\83N\83^
+       virtual ~Obj3D();
+       // OPERATORS //
+       // OPERATIONS //
+       
+       // ACCESS //
+       
+       /** \83X\83N\83\8a\81[\83\93X\8dÀ\95W\82ð\90Ý\92è\82·\82é
+        * @param value \83X\83N\83\8a\81[\83\93X\8dÀ\95W */
+       void x(float value);
+       
+       /** \8c»\8dÝ\90Ý\92è\82³\82ê\82Ä\82¢\82é\83X\83N\83\8a\81[\83\93X\8dÀ\95W\82ð\8eæ\93¾\82·\82é
+        * @return value \83X\83N\83\8a\81[\83\93X\8dÀ\95W */
+       const float x(void) const {return mX;};
+       
+       /** \8c»\8dÝ\90Ý\92è\82³\82ê\82Ä\82¢\82é\83\8f\81[\83\8b\83h\8bó\8aÔX\8dÀ\95W\82ð\8eæ\93¾\82·\82é
+        * @return \83\8f\81[\83\8b\83h\8bó\8aÔX\8dÀ\95W */
+       const float spaceX(void) const {return mSpaceX;};
+               
+       /** \83X\83N\83\8a\81[\83\93Y\8dÀ\95W\82ð\90Ý\92è\82·\82é
+        * @param value \83X\83N\83\8a\81[\83\93Y\8dÀ\95W */
+       void y(const float value);
+       
+       /** \8c»\8dÝ\90Ý\92è\82³\82ê\82Ä\82¢\82é\83X\83N\83\8a\81[\83\93Y\8dÀ\95W\82ð\8eæ\93¾\82·\82é
+        * @return value \83X\83N\83\8a\81[\83\93Y\8dÀ\95W */
+       const float y(void) const { return mY;};
+       
+       /** \8c»\8dÝ\90Ý\92è\82³\82ê\82Ä\82¢\82é\83\8f\81[\83\8b\83h\8bó\8aÔY\8dÀ\95W\82ð\8eæ\93¾\82·\82é
+        * @return \83\8f\81[\83\8b\83h\8bó\8aÔY\8dÀ\95W */
+       const float spaceY(void) const {return mSpaceY;};
+
+       /** \83X\83N\83\8a\81[\83\93Z\8dÀ\95W\82ð\90Ý\92è\82·\82é
+        * @param value \83X\83N\83\8a\81[\83\93Z\8dÀ\95W */
+       void  z(const float value);
+       
+       /** \8c»\8dÝ\90Ý\92è\82³\82ê\82Ä\82¢\82é\83X\83N\83\8a\81[\83\93Z\8dÀ\95W\82ð\8eæ\93¾\82·\82é
+        * @return value \83X\83N\83\8a\81[\83\93Z\8dÀ\95W */
+       const float  z(void) const {return mZ;};
+
+       /** \8c»\8dÝ\90Ý\92è\82³\82ê\82Ä\82¢\82é\83\8f\81[\83\8b\83h\8bó\8aÔZ\8dÀ\95W\82ð\8eæ\93¾\82·\82é
+        * @return \83\8f\81[\83\8b\83h\8bó\8aÔZ\8dÀ\95W */
+       const float spaceZ(void) const { return mSpaceZ;};
+
+       /** X\89ñ\93]\8ap(\83\89\83W\83A\83\93 0-2\83Î)\82ð\8eæ\93¾\82·\82é 
+        * @return \89ñ\93]\8ap 0-2\83Π*/
+       const float angleX(void) const {return mAngleX;};
+       /** X\89ñ\93]\8ap(\83\89\83W\83A\83\93 0-2\83Î)\82ð\90Ý\92è\82·\82é 
+        * @param value X\89ñ\93]\8ap */
+       void  angleX(const float value);
+
+       /** Y\89ñ\93]\8ap(\83\89\83W\83A\83\93 0-2\83Î)\82ð\8eæ\93¾\82·\82é 
+        * @return \89ñ\93]\8ap 0-2\83Π*/
+       const float angleY(void) const {return mAngleY;};
+       /** Y\89ñ\93]\8ap(\83\89\83W\83A\83\93 0-2\83Î)\82ð\90Ý\92è\82·\82é 
+        * @param value Y\89ñ\93]\8ap */
+       void  angleY(const float value);
+
+       /** Z\89ñ\93]\8ap(\83\89\83W\83A\83\93 0-2\83Î\81j\82ð\8eæ\93¾\82·\82é 
+        @return \89ñ\93]\8ap 0-2\83Π*/
+       const float angleZ(void){return mAngleZ;};
+       /** Z\89ñ\93]\8ap(\83\89\83W\83A\83\93 0-2\83Î\81j\82ð\90Ý\92è\82·\82é 
+        @param value Z\89ñ\93]\8ap */
+       void  angleZ(const float value);
+
+       // 
+       /** X\89ñ\93]\8ap\82ÌCos\92l\82ð\8eæ\93¾\82·\82é 
+       * @return X\89ñ\93]\8ap\82ÌCos\92l */
+       const float rotXCos(void) const { return mRotXCos;};
+       /** X\89ñ\93]\8ap\82ÌSin\92l\82ð\8eæ\93¾\82·\82é 
+       * @return X\89ñ\93]\8ap\82ÌSin\92l */
+       const float rotXSin(void) const { return mRotXSin;};
+
+       /** Y\89ñ\93]\8ap\82ÌCos\92l\82ð\8eæ\93¾\82·\82é 
+       * @return Y\89ñ\93]\8ap\82ÌCos\92l */
+       const float rotYCos(void) const { return mRotYCos;};
+       /** Y\89ñ\93]\8ap\82ÌSin\92l\82ð\8eæ\93¾\82·\82é 
+       * @return Y\89ñ\93]\8ap\82ÌSin\92l */
+       const float rotYSin(void) const { return mRotYSin;};
+
+       /** Z\89ñ\93]\8ap\82ÌCos\92l\82ð\8eæ\93¾\82·\82é 
+       * @return Z\89ñ\93]\8ap\82ÌCos\92l */
+       const float rotZCos(void) const { return mRotZCos;};
+       /** Z\89ñ\93]\8ap\82ÌSin\92l\82ð\8eæ\93¾\82·\82é 
+       * @return Z\89ñ\93]\8ap\82ÌSin\92l */
+       const float rotZSin(void) const { return mRotZSin;};
+
+       // \83X\83P\81[\83\8a\83\93\83O
+
+       /** X\8ag\91å\8fk\8f¬\97¦ \82ð\8eæ\93¾\82·\82é
+        * @return X\8ag\91å\8fk\8f¬\97¦ */
+       const float scalingX(void) const {return mScalingX;};
+       /** X\8ag\91å\8fk\8f¬\97¦ \82ð\90Ý\92è\82·\82é
+        * @param value  X\8ag\91å\8fk\8f¬\97¦ */
+       void  scalingX(const float value){mScalingX = value;};
+
+       /** Y\8ag\91å\8fk\8f¬\97¦\82ð\8eæ\93¾\82·\82é 
+        * @return Y\8ag\91å\8fk\8f¬\97¦ */
+       const float scalingY(void) const {return mScalingY;};
+       /** Y\8ag\91å\8fk\8f¬\97¦ \82ð\90Ý\92è\82·\82é
+        * @param value  Y\8ag\91å\8fk\8f¬\97¦ */
+       void  scalingY(const float value){mScalingY = value;};
+
+       // Z
+       /** Z\8ag\91å\8fk\8f¬\97¦\82ð\8eæ\93¾\82·\82é 
+        * @return Z\8ag\91å\8fk\8f¬\97¦ */
+       const float scalingZ(void) const {return mScalingZ;};
+       /** Z\8ag\91å\8fk\8f¬\97¦ \82ð\90Ý\92è\82·\82é
+        * @param value  Z\8ag\91å\8fk\8f¬\97¦ */
+       void  scalingZ(const float value){mScalingZ = value;};
+
+       void drawMode(const DrawMode value) { mDrawMode = value;};
+       const DrawMode drawMode() const {return mDrawMode;}
+       
+       // \83X\83v\83\89\83C\83g\82Ì\83A\83h\83\8c\83X //
+       virtual sprite::Sprite * const sprite() const {return mpSprite;};
+       virtual void sprite(sprite::Sprite* const value){ mpSprite = value;};
+
+       virtual const int index() const { return mIndex;};
+       virtual void index(const int value) { mIndex = value;};
+       
+       const bool visibility() const {return mbVisibility;};
+       void visibility(const bool value){ mbVisibility = value;};
+       
+       Obj * const previous() const   {return mpPrevious;};
+       void previous(Obj * const value){mpPrevious = value;};
+       
+       Obj * const next() const {return mpNext;};
+       void next(Obj * const value){mpNext = value;};
+       // INQUIRY //
+private:
+       // \83X\83N\83\8a\81[\83\93\8dÀ\95W
+       float mX;///< \83X\83N\83\8a\81[\83\93\8dÀ\95WX
+       float mY;///< \83X\83N\83\8a\81[\83\93\8dÀ\95WY
+       float mZ;///< \83X\83N\83\8a\81[\83\93\8dÀ\95WZ
+
+       // \83\8f\81[\83\8b\83h\8bó\8aÔ\8dÀ\95W
+       float mSpaceX;///< \83\8f\81[\83\8b\83h\8bó\8aÔ\8dÀ\95WX
+       float mSpaceY;///< \83\8f\81[\83\8b\83h\8bó\8aÔ\8dÀ\95WY
+       float mSpaceZ;///< \83\8f\81[\83\8b\83h\8bó\8aÔ\8dÀ\95WZ
+       
+       float mAngleX;///< X\89ñ\93]\8ap\81i\83\89\83W\83A\83\93 0-2\83Î\81j
+       float mAngleY;///< Y\89ñ\93]\8ap\81i\83\89\83W\83A\83\93 0-2\83Î\81j
+       float mAngleZ;///< Z\89ñ\93]\8ap\81i\83\89\83W\83A\83\93 0-2\83Î\81j
+
+       float mRotXSin;///< X\89ñ\93]\8ap\82ÌSin\92l
+       float mRotYSin;///< X\89ñ\93]\8ap\82ÌSin\92l
+       float mRotZSin;///< X\89ñ\93]\8ap\82ÌSin\92l
+       float mRotXCos;///< X\89ñ\93]\8ap\82ÌCos\92l
+       float mRotYCos;///< X\89ñ\93]\8ap\82ÌCos\92l
+       float mRotZCos;///< X\89ñ\93]\8ap\82ÌCos\92l
+       
+       float mScalingX;///< X\8ag\91å\8fk\8f¬\97¦
+       float mScalingY;///< Y\8ag\91å\8fk\8f¬\97¦
+       float mScalingZ;///< Z\8ag\91å\8fk\8f¬\97¦
+       
+       bool mbVisibility;///< \95\\8e¦\82·\82é\82©\82µ\82È\82¢\82©
+       sprite::Sprite *mpSprite;///< sprite::Sprite\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^
+       int mIndex;///< \95\\8e¦\83C\83\93\83f\83b\83N\83X
+       DrawMode mDrawMode;///< DrawMode
+       Obj* mpPrevious;///< \91O\82ÌObj\83C\83\93\83^\81[\83t\83F\81[\83X
+       Obj* mpNext;///< \8e\9f\82ÌObj\83C\83\93\83^\81[\83t\83F\81[\83X
+
+};
+               }
+       }
+}
+}
+#endif // !defined(AFX_OBJ3D_H__6F81DB0E_4F49_491D_9D09_E729679CE97A__INCLUDED_)
diff --git a/project/sfglib/Obj3DL.cpp b/project/sfglib/Obj3DL.cpp
new file mode 100644 (file)
index 0000000..98c3622
--- /dev/null
@@ -0,0 +1,41 @@
+/**
+ * @file
+ * @brief \83\89\83C\83e\83B\83\93\83O\8dÏ\82Ý3D\83X\83v\83\89\83C\83g\91®\90«\82Ì\92è\8b`\82ð\8ds\82¤.
+ * 
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.*/
+#include "sfdebug.h"
+
+#include <string>
+#include "stdio.h"
+#include "math.h"
+
+#include "system.h"
+#include "console.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "Obj3D.h"
+#include "Obj3DL.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+using namespace sf::system::console;
+
+Obj3DL::Obj3DL() : Obj3D()
+{
+       mColor = 0xffffffff;
+       mSpecular = 0;
+
+       Obj::List::insertObj(this);
+}
+
+Obj3DL::~Obj3DL()
+{
+       Obj::List::deleteObj(this);
+}
diff --git a/project/sfglib/Obj3DL.h b/project/sfglib/Obj3DL.h
new file mode 100644 (file)
index 0000000..162d3eb
--- /dev/null
@@ -0,0 +1,55 @@
+/**
+ * @file
+ * @brief \83\89\83C\83e\83B\83\93\83O\8dÏ\82Ý3D\83X\83v\83\89\83C\83g\91®\90«\82Ì\92è\8b`\82ð\8ds\82¤.
+ * 
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.*/
+/// \8fd\95¡\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#if !defined(AFX_OBJ3DL_H__D55D6FF5_0A23_4FDD_A6A5_4C2EFE1B6E28__INCLUDED_)
+#define AFX_OBJ3DL_H__D55D6FF5_0A23_4FDD_A6A5_4C2EFE1B6E28__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "sf.h"
+#include "Obj3D.h"
+extern "C" {
+namespace sf {
+       namespace system {
+               namespace console {
+/** \83\89\83C\83e\83B\83\93\83O\8dÏ\82Ý\83e\83N\83X\83`\83\83\83X\83v\83\89\83C\83g\91®\90« */
+class SFDLL Obj3DL : public Obj3D  
+{
+public:
+       /// \83R\83\93\83X\83g\83\89\83N\83^
+       Obj3DL();
+       /// \83f\83X\83g\83\89\83N\83^
+       virtual ~Obj3DL();
+       
+       virtual void draw(){if(visibility()) sprite()->draw(this);};
+       
+       /** \95\\8e¦\90F\82ð\8eæ\93¾\82·\82é
+        @return console::COLOR */
+       const COLOR color() const { return mColor;}; 
+       /** \95\\8e¦\90F\82ð\90Ý\92è\82·\82é
+        @param value console::COLOR */
+       void  color(const COLOR value) { mColor = value;}; 
+                               
+       /** \83X\83y\83L\83\85\83\89\90F\82ð\8eæ\93¾\82·\82é
+        @return console::COLOR */
+       const COLOR specular() const { return mSpecular;}; 
+       /** \83X\83y\83L\83\85\83\89\90F\82ð\90Ý\92è\82·\82é
+        @param value console::COLOR */
+       void  specular(const COLOR value) { mSpecular = value;}; 
+
+private:
+       COLOR mColor;///< \95\\8e¦\90F
+       COLOR mSpecular;///< \83X\83y\83L\83\85\83\89\90F
+};
+               }
+       }
+}
+}
+#endif // !defined(AFX_OBJ3DL_H__D55D6FF5_0A23_4FDD_A6A5_4C2EFE1B6E28__INCLUDED_)
diff --git a/project/sfglib/ObjQuadrangle.cpp b/project/sfglib/ObjQuadrangle.cpp
new file mode 100644 (file)
index 0000000..aec5508
--- /dev/null
@@ -0,0 +1,53 @@
+// ObjQuadrangle.cpp: ObjQuadrangle \83N\83\89\83X\82Ì\83C\83\93\83v\83\8a\83\81\83\93\83e\81[\83V\83\87\83\93
+//
+//     \97\9a\97ð:
+// $Log: ObjQuadrangle.cpp,v $
+// Revision 1.1  2001/10/21 12:12:35  fujiwara
+// (none)
+//
+// Revision 1.3  2001/07/01 21:30:34  fujiwara
+// \83\81\83\82\83\8a\83\8a\81[\83N\83`\83F\83b\83N\8c©\92¼\82µ
+//
+// Revision 1.2  2001/05/12 00:49:24  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//     2001/01/29 \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p\83\89\83C\83u\83\89\83\8a\82Ì\92Ç\89Á 
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include <string>
+#include "stdio.h"
+
+#include "system.h"
+#include "console.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "Obj.h"
+#include "Obj2D.h"
+#include "ObjQuadrangle.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+using namespace sf::system::console;
+
+ObjQuadrangle::ObjQuadrangle()
+{
+       Obj::List::insertObj(this);
+
+
+}
+
+ObjQuadrangle::~ObjQuadrangle()
+{
+       Obj::List::deleteObj(this);
+
+}
diff --git a/project/sfglib/ObjQuadrangle.h b/project/sfglib/ObjQuadrangle.h
new file mode 100644 (file)
index 0000000..cdb2ac8
--- /dev/null
@@ -0,0 +1,52 @@
+/**
+ * @file
+ * @brief \8el\8ap\8c`\82Ì\92è\8b`\82ð\8ds\82¤.
+ * 
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.*/
+
+/// \8fd\95¡\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#if !defined(AFX_OBJQUADRANGLE_H__ED2DE6B9_7EFB_40FC_9DB2_F8B6D1338B88__INCLUDED_)
+#define AFX_OBJQUADRANGLE_H__ED2DE6B9_7EFB_40FC_9DB2_F8B6D1338B88__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "sf.h"
+extern "C" {
+namespace sf {
+       namespace system {
+               namespace console {
+                       
+                       /** \8el\8ap\8c`\83X\83v\83\89\83C\83g\91®\90« */
+                       class SFDLL ObjQuadrangle : public Obj2D
+                       {
+                               // LIFECYCLE 
+                       public:
+                               /// \83R\83\93\83X\83g\83\89\83N\83^
+                               ObjQuadrangle();
+                               /// \83f\83X\83g\83\89\83N\83^
+                               virtual ~ObjQuadrangle();
+                               // OPERATORS //
+                               // OPERATIONS //
+                               virtual void draw(){if(visibility()) sprite()->draw(this);};
+                               // ACCESS // 
+                               /** \92¸\93_\94Ô\8d\86\82ð\82à\82Æ\82É\81A\92¸\93_\8fî\95ñ\82ð\93¾\82é.
+                                @param i \92¸\93_\94Ô\8d\86
+                                @return Vertex \82Ì\83|\83C\83\93\83^*/
+                               virtual const Vertex * const vertex(const int i) const {return &mVertex[i];};
+                               /** \92¸\93_\94Ô\8d\86\82ð\82à\82Æ\82É\81A\92¸\93_\8fî\95ñ\82ð\93¾\82é.
+                                @param i \92¸\93_\94Ô\8d\86
+                                @return Vertex \82Ì\83|\83C\83\93\83^*/
+                               virtual Vertex * const vertex(const int i){return &mVertex[i];};
+                       private:
+                               mutable Vertex mVertex[4];///< \92¸\93_\82Ì\8fî\95ñ
+                       };// ObjQuadrangle
+               }
+       }
+}
+}
+
+#endif // !defined(AFX_OBJQUADRANGLE_H__ED2DE6B9_7EFB_40FC_9DB2_F8B6D1338B88__INCLUDED_)
diff --git a/project/sfglib/ObjRectangle.cpp b/project/sfglib/ObjRectangle.cpp
new file mode 100644 (file)
index 0000000..d99580b
--- /dev/null
@@ -0,0 +1,45 @@
+/**
+ * @file
+ * @brief \95û\8c`\83X\83v\83\89\83C\83g\91®\90«\83N\83\89\83X\82Ì\8eÀ\91\95\82ð\8ds\82¤.
+ * 
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.*/
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+#include <string>
+#include "stdio.h"
+
+#include "system.h"
+#include "console.h"
+
+
+#include "Obj.h"
+#include "Obj2D.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "ObjRectangle.h"
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+using namespace sf::system::console;
+
+ObjRectangle::ObjRectangle()
+{
+       mColor = 0;
+       mSpecular = 0;
+       Obj::List::insertObj(this);
+
+}
+
+ObjRectangle::~ObjRectangle()
+{
+       Obj::List::deleteObj(this);
+
+}
diff --git a/project/sfglib/ObjRectangle.h b/project/sfglib/ObjRectangle.h
new file mode 100644 (file)
index 0000000..658a56c
--- /dev/null
@@ -0,0 +1,59 @@
+/**
+ * @file
+ * @brief \95û\8c`\83X\83v\83\89\83C\83g\91®\90«\83N\83\89\83X\82Ì\92è\8b`\82ð\8ds\82¤.
+ * 
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.*/
+
+/// \8fd\95¡\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#if !defined(AFX_ObjRectangle_H__50602D13_69D5_4210_BB85_14A2CA649768__INCLUDED_)
+#define AFX_ObjRectangle_H__50602D13_69D5_4210_BB85_14A2CA649768__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "sf.h"
+#include "Obj.h"
+extern "C" {
+namespace sf {
+       namespace system {
+               namespace console {
+
+                       /** \95û\8c`\83X\83v\83\89\83C\83g. */
+                       class SFDLL ObjRectangle : public Obj2D   
+                       {
+                               // LIFECYCLE 
+                       public:
+                               /// \83R\83\93\83X\83g\83\89\83N\83^
+                               ObjRectangle();//
+                               /// \83f\83X\83g\83\89\83N\83^
+                               virtual ~ObjRectangle();
+                               // OPERATORS //
+                               // OPEARATIONS //
+                               virtual void draw(){if(visibility()) sprite()->draw(this);};
+                               // ACCESS 
+                               /** \95\\8e¦\90F\82ð\8eæ\93¾\82·\82é.
+                                * @return COLOR \95\\8e¦\90F */
+                               const COLOR color() const { return mColor;}; 
+                               /** \95\\8e¦\90F\82ð\90Ý\92è\82·\82é.
+                                * @param value COLOR \95\\8e¦\90F */
+                               void  color(const COLOR value) { mColor = value;}; 
+                               /** \83X\83y\83L\83\85\83\89\90F\82ð\8eæ\93¾\82·\82é.
+                                * @return COLOR \83X\83y\83L\83\85\83\89\90F */
+                               const COLOR specular() const { return mSpecular;}; 
+                               /** \83X\83y\83L\83\85\83\89\90F\82ð\90Ý\92è\82·\82é.
+                                * @param value COLOR \83X\83y\83L\83\85\83\89\90F */
+                               void  specular(const COLOR value) { mSpecular = value;}; 
+                               
+                       private:
+                               COLOR mColor;///< \95\\8e¦\90F
+                               COLOR mSpecular;///< \83X\83y\83L\83\85\83\89\90F
+                               
+                       };// ObjRectangle
+               }
+       }
+}
+}
+#endif // !defined(AFX_ObjRectangle_H__50602D13_69D5_4210_BB85_14A2CA649768__INCLUDED_)
diff --git a/project/sfglib/ReadMe.txt b/project/sfglib/ReadMe.txt
new file mode 100644 (file)
index 0000000..7cd4fdb
--- /dev/null
@@ -0,0 +1,41 @@
+========================================================================
+       \83_\83C\83i\83~\83b\83\83\8a\83\93\83\83\89\83C\83u\83\89\83\8a : sfglib
+========================================================================
+
+
+AppWizard \82Í\82±\82Ì sfglib DLL \82ð\8dì\90¬\82µ\82Ü\82µ\82½\81B
+
+\82±\82Ì\83t\83@\83C\83\8b\82É\82Í sfglib \83A\83v\83\8a\83P\81[\83V\83\87\83\93\82ð\8d\\90¬\82µ\82Ä\82¢\82é\8ae\83t\83@\83C\83\8b\82Ì\8aT\97v
+\90à\96¾\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82Ü\82·\81B
+
+sfglib.dsp
+    \82±\82Ì\83t\83@\83C\83\8b (\83v\83\8d\83W\83F\83N\83\83t\83@\83C\83\8b\82Í\83v\83\8d\83W\83F\83N\83\83\8c\83x\83\8b\82Ì\8fî\95ñ\82ð\8aÜ\82Ý\81A
+    \83V\83\93\83O\83\8b \83v\83\8d\83W\83F\83N\83g\82Ü\82½\82Í\83T\83\83v\83\8d\83W\83F\83N\83g\82Ì\83r\83\8b\83h\82É\8eg\97p\82³\82ê\82Ü\82·\81B\91¼\82Ì
+    \83\86\81[\83U\81[\82Æ\83v\83\8d\83W\83F\83N\83\83t\83@\83C\83\8b (.dsp) \82ð\8b¤\97L\82Å\82«\82Ü\82·\82ª\81A\83\81\83C\83\83t\83@\83C\83\8b
+    \82Í\83\8d\81[\83J\83\8b\82É\83G\83N\83X\83|\81[\83g\82µ\82Ä\82­\82¾\82³\82¢\81B
+sfglib.cpp
+    \82±\82Ì\83t\83@\83C\83\8b\82Í DLL \82Ì\92\86\90S\82Æ\82È\82é\83\\81[\83\83t\83@\83C\83\8b\82Å\82·\81B
+
+       \8dì\90¬\82³\82ê\82½\8fó\91Ô\82Å\82Í\81A\82±\82Ì DLL \82Í\83V\83\93\83{\83\8b\82Ì\83G\83N\83X\83|\81[\83g\82ð\8ds\82Á\82Ä\82¢\82Ü\82¹\82ñ\81B
+       \82»\82Ì\82½\82ß\83r\83\8b\83h\82ð\8ds\82Á\82Ä\82à .LIB \83t\83@\83C\83\8b\82Í\8dì\90¬\82³\82ê\82Ü\82¹\82ñ\81B\82±\82Ì\83v\83\8d\83W\83F\83N\83g\82ð
+       \91¼\82Ì\83v\83\8d\83W\83F\83N\83g\82É\88Ë\91\8aÖ\8cW\82ð\8e\9d\82½\82¹\82½\82¢\8fê\8d\87\82É\82Í\81A\82±\82Ì DLL \82©\82ç\83V\83\93\83{\83\8b\82ð
+       \83G\83N\83X\83|\81[\83g\82·\82é\82½\82ß\82Ì\83R\81[\83h\82ð\92Ç\89Á\82µ\82Ä\83\89\83C\83u\83\89\83\8a\82Ì\83G\83N\83X\83|\81[\83g\82ð\8ds\82¢\81A
+       \83v\83\8d\83W\83F\83N\83g\90Ý\92è\82Ì [\83\8a\83\93\83N] \83^\83u\8fã\82Å [LIB \83t\83@\83C\83\8b\82ð\90\90¬\82µ\82È\82¢] \83I\83v\83V\83\87\83\93
+       \82ð\83N\83\8a\83A\82·\82é\95K\97v\82ª\82 \82è\82Ü\82·\81B
+
+/////////////////////////////////////////////////////////////////////////////
+\82»\82Ì\91¼\82Ì\95W\8f\80\83t\83@\83C\83\8b:
+
+StdAfx.h, StdAfx.cpp
+    \82±\82ê\82ç\82Ì\83t\83@\83C\83\8b\82Í\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\82Ý\83w\83b\83_\81[\83t\83@\83C\83\8b (PCH) sfglib.pch
+    \82â\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\82Ý\8c^\83t\83@\83C\83\8b StdAfx.obj \82ð\8d\\92z\82·\82é\82½\82ß\82É\8eg\97p\82³\82ê\82Ü\82·\81B
+
+
+/////////////////////////////////////////////////////////////////////////////
+\82»\82Ì\91¼\82Ì\92\8d\88Ó:
+
+AppWizard \82Í "TODO:" \82Å\8en\82Ü\82é\83R\83\81\83\93\83g\82Å\81A\83\\81[\83X\83R\81[\83h\82Ì\92Ç\89Á\82â\83J\83X\83^\83}\83C\83Y\82Ì\95K\97v
+\82È\8fê\8f\8a\82ð\8e¦\82µ\82Ü\82·\81B
+
+
+/////////////////////////////////////////////////////////////////////////////
diff --git a/project/sfglib/SFGLIB.CFG b/project/sfglib/SFGLIB.CFG
new file mode 100644 (file)
index 0000000..0ddae88
--- /dev/null
@@ -0,0 +1,901 @@
+# Doxyfile 1.2.13
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# General configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
+# by quotes) that should identify the project.
+
+PROJECT_NAME           = SFGLIB
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
+# This could be handy for archiving the generated documentation or 
+# if some version control system is used.
+
+PROJECT_NUMBER         = 
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
+# base path where the generated documentation will be put. 
+# If a relative path is entered, it will be relative to the location 
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = c:/inetpub/wwwroot/s2001/sfglib
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
+# documentation generated by doxygen is written. Doxygen will use this 
+# information to generate all constant output in the proper language. 
+# The default language is English, other supported languages are: 
+# Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French, 
+# German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, 
+# Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish.
+
+OUTPUT_LANGUAGE        = Japanese
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
+# documentation are documented, even if no documentation was available. 
+# Private class members and static file members will be hidden unless 
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = YES
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file 
+# will be included in the documentation.
+
+EXTRACT_STATIC         = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
+# defined locally in source files will be included in the documentation. 
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
+# undocumented members of documented classes, files or namespaces. 
+# If set to NO (the default) these members will be included in the 
+# various overviews, but no documentation section is generated. 
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
+# undocumented classes that are normally visible in the class hierarchy. 
+# If set to NO (the default) these class will be included in the various 
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
+# include brief member descriptions after the members that are listed in 
+# the file and class documentation (similar to JavaDoc). 
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
+# the brief description of a member or function before the detailed description. 
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
+# Doxygen will generate a detailed section even if there is only a brief 
+# description.
+
+ALWAYS_DETAILED_SEC    = YES
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited 
+# members of a class in the documentation of that class as if those members were 
+# ordinary class members. Constructors, destructors and assignment operators of 
+# the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
+# path before files name in the file list and in the header files. If set 
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
+# can be used to strip a user defined part of the path. Stripping is 
+# only done if one of the specified strings matches the left-hand part of 
+# the path. It is allowed to use relative paths in the argument list.
+
+STRIP_FROM_PATH        = "c:\my documents\genx\project"
+
+# The INTERNAL_DOCS tag determines if documentation 
+# that is typed after a \internal command is included. If the tag is set 
+# to NO (the default) then the documentation will be excluded. 
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
+# doxygen to hide any special comment blocks from generated source code 
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
+# file names in lower case letters. If set to YES upper case letters are also 
+# allowed. This is useful if you have classes or files whose names only differ 
+# in case and if your file system supports case sensitive file names. Windows 
+# users are adviced to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
+# (but less readable) file names. This can be useful is your file systems 
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
+# will show members with their full class and namespace scopes in the 
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
+# will generate a verbatim copy of the header file for each class for 
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = YES
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
+# will put list of the files that are included by a file in the documentation 
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
+# will interpret the first line (until the first dot) of a JavaDoc-style 
+# comment as the brief description. If set to NO, the JavaDoc 
+# comments  will behave just like the Qt-style comments (thus requiring an 
+# explict @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF      = YES
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
+# member inherits the documentation from any documented member that it 
+# reimplements.
+
+INHERIT_DOCS           = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
+# will sort the (detailed) documentation of file and class members 
+# alphabetically by member name. If set to NO the members will appear in 
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
+# tag is set to YES, then doxygen will reuse the documentation of the first 
+# member in the group (if any) for the other members of the group. By default 
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 4
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or 
+# disable (NO) the todo list. This list is created by putting \todo 
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or 
+# disable (NO) the test list. This list is created by putting \test 
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or 
+# disable (NO) the bug list. This list is created by putting \bug 
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# This tag can be used to specify a number of aliases that acts 
+# as commands in the documentation. An alias has the form "name=value". 
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
+# put the command \sideeffect (or @sideeffect) in the documentation, which 
+# will result in a user defined paragraph with heading "Side Effects:". 
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                = 
+
+# The ENABLED_SECTIONS tag can be used to enable conditional 
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       = 
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
+# the initial value of a variable or define consist of for it to appear in 
+# the documentation. If the initializer consists of more lines than specified 
+# here it will be hidden. Use a value of 0 to hide initializers completely. 
+# The appearance of the initializer of individual variables and defines in the 
+# documentation can be controlled using \showinitializer or \hideinitializer 
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 
+# only. Doxygen will then generate output that is more tailored for C. 
+# For instance some of the names that are used will be different. The list 
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
+# at the bottom of the documentation of classes and structs. If set to YES the 
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated 
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are 
+# generated by doxygen. Possible values are YES and NO. If left blank 
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# The WARN_FORMAT tag determines the format of the warning messages that 
+# doxygen can produce. The string should contain the $file, $line, and $text 
+# tags, which will be replaced by the file and line number from which the 
+# warning originated and the warning text.
+
+WARN_FORMAT            = 
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning 
+# and error messages should be written. If left blank the output is written 
+# to stderr.
+
+WARN_LOGFILE           = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain 
+# documented source files. You may enter file names like "myfile.cpp" or 
+# directories like "/usr/src/myproject". Separate the files or directories 
+# with spaces.
+
+#INPUT                  = "j:\project\sfglib" j:/project/s2001scene j:/project/s2001editor j:/project/s2001game j:/project/s2001
+#INPUT                  = ./sfglib ./s2001scene ./s2001editor ./s2001game ./s2001
+INPUT                  = . 
+
+# If the value of the INPUT tag contains directories, you can use the 
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank the following patterns are tested: 
+# *.c *.cc *.cxx *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp 
+# *.h++ *.idl
+
+#FILE_PATTERNS          = SYSTEM* INPUT* CONSOLE* SOUND*
+FILE_PATTERNS          = *.cpp *.h
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
+# should be searched for input files as well. Possible values are YES and NO. 
+# If left blank NO is used.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should 
+# excluded from the INPUT source files. This way you can easily exclude a 
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                = 
+
+# If the value of the INPUT tag contains directories, you can use the 
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
+# certain files from those directories.
+
+EXCLUDE_PATTERNS       = 
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or 
+# directories that contain example code fragments that are included (see 
+# the \include command).
+
+EXAMPLE_PATH           = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included.
+
+EXAMPLE_PATTERNS       = 
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
+# searched for input files to be used with the \include or \dontinclude 
+# commands irrespective of the value of the RECURSIVE tag. 
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or 
+# directories that contain image that are included in the documentation (see 
+# the \image command).
+
+IMAGE_PATH             = 
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should 
+# invoke to filter for each input file. Doxygen will invoke the filter program 
+# by executing (via popen()) the command <filter> <input-file>, where <filter> 
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
+# input file. Doxygen will then use the output that the filter program writes 
+# to standard output.
+
+INPUT_FILTER           = "nkf32 -Se "
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
+# INPUT_FILTER) will be used to filter the input files when producing source 
+# files to browse.
+
+FILTER_SOURCE_FILES    = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
+# be generated. Documented entities will be cross-referenced with these sources.
+
+SOURCE_BROWSER         = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body 
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
+# then for each documented function all documented 
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default) 
+# then for each documented function all documented entities 
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
+# of all compounds will be generated. Enable this if the project 
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = NO
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all 
+# classes will be put under the same header in the alphabetical index. 
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = 
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard header.
+
+HTML_HEADER            = 
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard footer.
+
+HTML_FOOTER            = 
+
+# The HTML_STYLESHEET tag can be used to specify a user defined cascading 
+# style sheet that is used by each HTML page. It can be used to 
+# fine-tune the look of the HTML output. If the tag is left blank doxygen 
+# will generate a default style sheet
+
+HTML_STYLESHEET        = 
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
+# files or namespaces will be aligned in HTML using tables. If set to 
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
+# will be generated that can be used as input for tools like the 
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
+# controls if a separate .chi index file is generated (YES) or that 
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
+# controls whether a binary table of contents is generated (YES) or a 
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members 
+# to the contents of the Html help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
+# top of each HTML page. The value NO (the default) enables the index and 
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20]) 
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that 
+# is generated for HTML Help). For this to work a browser that supports 
+# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, 
+# or Internet explorer 4.0+). Note that for large projects the tree generation 
+# can take a very long time. In such cases it is better to disable this feature. 
+# Windows users are probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = YES
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
+# used to set the initial width (in pixels) of the frame in which the tree 
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
+# generate Latex output.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = 
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
+# LaTeX documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used 
+# by the printer. Possible values are: a4, a4wide, letter, legal and 
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         = 
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
+# the generated latex document. The header should contain everything until 
+# the first chapter. If it is left blank doxygen will generate a 
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           = 
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
+# contain links (just like the HTML output) instead of page references 
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
+# plain latex in the generated Makefile. Set this option to YES to get a 
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
+# command to the generated LaTeX files. This will instruct LaTeX to keep 
+# running if errors occur, instead of asking the user for help. 
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
+# The RTF output is optimised for Word 97 and may not look very pretty with 
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = 
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
+# RTF documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
+# will contain hyperlink fields. The RTF file will 
+# contain links (just like the HTML output) instead of page references. 
+# This makes the output suitable for online browsing using WORD or other 
+# programs which support those fields. 
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's 
+# config file, i.e. a series of assigments. You only have to provide 
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    = 
+
+# Set optional variables used in the generation of an rtf document. 
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = 
+
+# The MAN_EXTENSION tag determines the extension that is added to 
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = 
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
+# then it will generate one additional man file for each entity 
+# documented in the real man page(s). These additional files 
+# only source the real man page, but without them the man command 
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will 
+# generate an XML file that captures the structure of 
+# the code including all documentation. Note that this 
+# feature is still experimental and incomplete at the 
+# moment.
+
+GENERATE_XML           = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
+# generate an AutoGen Definitions (see autogen.sf.net) file 
+# that captures the structure of the code including all 
+# documentation. Note that this feature is still experimental 
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
+# evaluate all C-preprocessor directives found in the sources and include 
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
+# names in the source code. If set to NO (the default) only conditional 
+# compilation will be performed. Macro expansion can be done in a controlled 
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
+# then the macro expansion is limited to the macros specified with the 
+# PREDEFINED and EXPAND_AS_PREDEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that 
+# contain include files that are not input files but should be processed by 
+# the preprocessor.
+
+INCLUDE_PATH           = ./ ../ ../s2001scene ../s2001editor ../s2001game ../s2001 c:\dxsdk\include 
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
+# patterns (like *.h and *.hpp) to filter out the header-files in the 
+# directories. If left blank, the patterns specified with FILE_PATTERNS will 
+# be used.
+
+INCLUDE_FILE_PATTERNS  = 
+
+# The PREDEFINED tag can be used to specify one or more macro names that 
+# are defined before the preprocessor is started (similar to the -D option of 
+# gcc). The argument of the tag is a list of macros of the form: name 
+# or name=definition (no spaces). If the definition and the = are 
+# omitted =1 is assumed.
+
+PREDEFINED             = 
+
+# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then 
+# this tag can be used to specify a list of macro names that should be expanded. 
+# The macro definition that is found in the sources will be used. 
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      = 
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
+# doxygen's preprocessor will remove all function-like macros that are alone 
+# on a line and do not end with a semicolon. Such function macros are typically 
+# used for boiler-plate code, and will confuse the parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to external references   
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tagfiles.
+
+TAGFILES               = 
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       = c:/inetpub/wwwroot/s2001/sfglib/sfglib.tag
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
+# in the class index. If set to NO only the inherited external classes 
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# The PERL_PATH should be the absolute path and name of the perl script 
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
+# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or 
+# super classes. Setting the tag to NO turns the diagrams off. Note that this 
+# option is superceded by the HAVE_DOT option below. This is only a fallback. It is 
+# recommended to install and use dot, since it yield more powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
+# available from the path. This tool is part of Graphviz, a graph visualization 
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = YES
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect inheritance relations. Setting this tag to YES will force the 
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect implementation dependencies (inheritance, containment, and 
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If set to YES, the inheritance and collaboration graphs will show the 
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide 
+# inheritance and usage relations if the target is undocumented 
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
+# tags are set to YES then doxygen will generate a graph for each documented 
+# file showing the direct and indirect include dependencies of the file with 
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
+# documented header file showing the documented files that directly or 
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be 
+# found. If left blank, it is assumed the dot tool can be found on the path.
+
+DOT_PATH               = "C:\Program Files\ATT\Graphviz\bin"
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that 
+# contain dot files that are included in the documentation (see the 
+# \dotfile command).
+
+DOTFILE_DIRS           = 
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_WIDTH    = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT   = 1024
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
+# generate a legend page explaining the meaning of the various boxes and 
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
+# remove the intermedate dot files that are used to generate 
+# the various graphs.
+
+DOT_CLEANUP            = YES
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to the search engine   
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be 
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE           = NO
+
+# The CGI_NAME tag should be the name of the CGI script that 
+# starts the search engine (doxysearch) with the correct parameters. 
+# A script with this name will be generated by doxygen.
+
+CGI_NAME               = 
+
+# The CGI_URL tag should be the absolute URL to the directory where the 
+# cgi binaries are located. See the documentation of your http daemon for 
+# details.
+
+CGI_URL                = 
+
+# The DOC_URL tag should be the absolute URL to the directory where the 
+# documentation is located. If left blank the absolute path to the 
+# documentation, with file:// prepended to it, will be used.
+
+DOC_URL                = 
+
+# The DOC_ABSPATH tag should be the absolute path to the directory where the 
+# documentation is located. If left blank the directory on the local machine 
+# will be used.
+
+DOC_ABSPATH            = 
+
+# The BIN_ABSPATH tag must point to the directory where the doxysearch binary 
+# is installed.
+
+BIN_ABSPATH            = 
+
+# The EXT_DOC_PATHS tag can be used to specify one or more paths to 
+# documentation generated for other projects. This allows doxysearch to search 
+# the documentation for these projects as well.
+
+EXT_DOC_PATHS          = 
diff --git a/project/sfglib/Sound.h b/project/sfglib/Sound.h
new file mode 100644 (file)
index 0000000..589b641
--- /dev/null
@@ -0,0 +1,114 @@
+/**
+ * @file Sound.h
+ * @brief \83T\83E\83\93\83h\8eü\82è\82Ì\83N\83\89\83X\81A\92è\90\94\81A\95Ï\90\94\92è\8b`\82ð\8ds\82¤\81B
+ *
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+/// \93ñ\8fd\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#if !defined(AFX_SOUND_H__87CC9C63_C71A_4276_9ACF_912DC2A4DD44__INCLUDED_)
+#define AFX_SOUND_H__87CC9C63_C71A_4276_9ACF_912DC2A4DD44__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "sf.h"
+extern "C" {
+namespace sf{
+       namespace system {
+               /// \83T\83E\83\93\83h\8aÖ\8cW\82Ì\83N\83\89\83X\81E\92è\90\94\82È\82Ç\82Í\82·\82×\82Ä\82±\82±\82É\8aÜ\82Ü\82ê\82Ü\82·\81B
+               namespace sound {
+                       const int OBJECT_MAX = 128;///< \83T\83E\83\93\83h\83I\83u\83W\83F\83N\83g\82Ì\8dÅ\91å\90\94
+                       const int LOAD_ERROR = -1; ///< \83\8d\81[\83h\83G\83\89\81[
+                       /// \83T\83E\83\93\83h\82Ì\83^\83C\83v
+                       enum TYPE
+                       {
+                               NONE,///< \89½\82à\82È\82ç\82È\82¢
+                               TEST///< TEST
+                       };
+
+                       /// \83T\83E\83\93\83h\81E\83{\83\8a\83\85\81[\83\80
+                       namespace volume {
+                               const int MAX = 0;///< \8dÅ\91å\89¹\97Ê
+                               const int MIN = -9600;///< \8dÅ\8f¬\89¹\97Ê
+                       };
+
+                       /** \83T\83E\83\93\83h\82ð\90§\8cä\82·\82é.
+                        * BGM\81E\8cø\89Ê\89¹\82ð\90§\8cä\82·\82é\83C\83\93\83^\81[\83t\83F\81[\83X\82Å\82·\81B*/
+                       class Sound 
+                       {
+                               // LIFECYCLE //
+                       public:
+                               /// \83R\83\93\83X\83g\83\89\83N\83^
+                               Sound(){};
+                               /// \83f\83X\83g\83\89\83N\83^
+                               virtual ~Sound(){};
+                               // OPERATORS //
+                               // OPERATIONS //
+                               /** \83T\83E\83\93\83h\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8f\89\8aú\89»\82ð\8ds\82¤ 
+                               \81@@throw FatalErrorException \8f\89\8aú\89»\82É\8e¸\94s\82µ\82½\8fê\8d\87 */
+                               virtual void initialize(void) = 0;
+       
+                               /** \8ew\92è\82µ\82½\83T\83E\83\93\83h\94Ô\8d\86\82É\83T\83E\83\93\83h\83t\83@\83C\83\8b\82Ì\83\8d\81[\83h\82ð\8ds\82¤.
+                                * @param ObjNo \83\8d\81[\83h\82µ\82½\82¢\83T\83E\83\93\83h\83I\83u\83W\83F\83N\83g\82Ì\94Ô\8d\86
+                                * @param pFileName \83t\83@\83C\83\8b\83l\81[\83\80\95\8e\9a\97ñ\82Ì\83|\83C\83\93\83^ */
+                               virtual void load(const int ObjNo,const char * const pFileName) = 0;
+
+                               /** \83T\83E\83\93\83h\83t\83@\83C\83\8b\82Ì\83\8d\81[\83h\82ð\8ds\82¤.
+                                * \82 \82¢\82Ä\82¢\82é\83T\83E\83\93\83h\94Ô\8d\86\82ª\82 \82ê\82Î\81A\82»\82±\82É\83\8d\81[\83h\82µ\81A\83\8d\81[\83h\82µ\82½\94Ô\8d\86\82ð\95Ô\82µ\82Ü\82·\81B
+                                * @param pFileName \83T\83E\83\93\83h\83t\83@\83C\83\8b\82ÌPATH
+                                * @return \83T\83E\83\93\83h\94Ô\8d\86(0 - OBJECT_MAX) */
+                               virtual const int load(const char * const pFileName) = 0;
+
+                               /** \83T\83E\83\93\83h\83\8a\83\\81[\83X\82Ì\83A\83\93\83\8d\81[\83h\82ð\8ds\82¤.
+                                * \83T\83E\83\93\83h\83\8a\83\\81[\83X\82ð\8aJ\95ú\82µ\82Ü\82· */
+                               virtual void unload() = 0;
+
+                               /** \83T\83E\83\93\83h\82Ì\8dÄ\90\82ð\8ds\82¤.
+                                * @param ObjNo \83T\83E\83\93\83h\94Ô\8d\86
+                                * @param Repeat \83\8a\83s\81[\83g\89ñ\90\94(0\82Í\81\87\89ñ)
+                                * @param bPrimary \83v\83\89\83C\83}\83\8a\83o\83b\83t\83@\82Å\8dÄ\90\82·\82é\82©\82Ç\82¤\82©
+                                * @param bSync BGM\82É\93¯\8aú\82µ\82Ä\8dÄ\90\82·\82é\82©\82Ç\82¤\82©*/
+                               virtual void play(const int ObjNo,const DWORD Repeat,const bool bPrimary,const bool bSync) = 0;
+
+                               /** \83T\83E\83\93\83h\8dÄ\90\82ð\8e~\82ß\82é. 
+                                * @param ObjNo \8e~\82ß\82½\82¢\83T\83E\83\93\83h\82Ì\94Ô\8d\86 */
+                               virtual void stop(const int ObjNo = 0) = 0;
+
+                               /** \83T\83E\83\93\83h\83I\83u\83W\83F\83N\83g\82Ì\8dX\90V\82ð\82¨\82±\82È\82¤.
+                                * \8dÄ\90\82Ì\8dX\90V\8dì\8bÆ\82ð\8ds\82¢\82Ü\82·\81B*/
+                               virtual void update() = 0;
+                               // ACCESS //
+
+                               /** \83}\83X\83^\81[\83{\83\8a\83\85\81[\83\80(\91S\91Ì\82Ì\89¹\97Ê)\82ð\83Z\83b\83g\82·\82é. 
+                                * @param value \89¹\97Ê volume::MIN \81` volume::MAX \8aÔ\82Å\82Ì\92l */
+                               virtual void masterVolume(const int value) = 0;
+
+                               /** \83}\83X\83^\81[\83{\83\8a\83\85\81[\83\80(\91S\91Ì\82Ì\89¹\97Ê)\82ð\93Ç\82Ý\8fo\82·. 
+                               * @return  \89¹\97Ê volume::MIN \81` volume::MAX \8aÔ\82Å\82Ì\92l*/
+                               virtual const int masterVolume() const = 0;
+                               
+                               /**\81@\8dÅ\91å\89¹\97Ê\82ð\83Z\83b\83g\82·\82é. 
+                                * @param value \89¹\97Ê volume::MIN \81` volume::MAX \8aÔ\82Å\82Ì\92l*/
+                               virtual void volumeMax(const int value) = 0;
+
+                               /** \8dÅ\91å\89¹\97Ê\82ð\93Ç\82Ý\8fo\82·. 
+                               * @return  \89¹\97Ê volume::MIN \81` volume::MAX \8aÔ\82Å\82Ì\92l*/
+                               virtual const int volumeMax()  const = 0;
+                               
+                               // INQUIRY //
+                               
+                               /**  \83T\83E\83\93\83h\83I\83u\83W\83F\83N\83g\82Ì\8fó\91Ô\82ð\96â\82¢\8d\87\82í\82¹\82é
+                                * @retval true \8c»\8dÝ\8eg\97p\89Â\94\
+                                * @retval false \8c»\8dÝ\8eg\97p\95s\89Â*/
+                               virtual const bool isEnabled(void) const = 0;
+
+                       };
+               }
+       }
+}
+}
+#endif // !defined(AFX_SOUND_H__87CC9C63_C71A_4276_9ACF_912DC2A4DD44__INCLUDED_)
diff --git a/project/sfglib/SoundImpl.cpp b/project/sfglib/SoundImpl.cpp
new file mode 100644 (file)
index 0000000..86cc566
--- /dev/null
@@ -0,0 +1,515 @@
+/**
+ * @file
+ * @brief Sound\8aÖ\98A\82Ì\8eÀ\91\95\83N\83\89\83X\81E\82»\82ê\82É\8aÖ\82·\82é\92è\90\94\92è\8b`\82È\82Ç\82ð\8ds\82¤\81B
+ * 
+ * DirectSound DirectMusic \82ð\8eg\97p\82µ\82Ä\8eÀ\91\95\82µ\82Ä\82¢\82Ü\82·\81B
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+// SYSTEM INCLUDES
+//
+#define WIN32_LEAN_AND_MEAN
+#include "windows.h"
+#include "windowsx.h"
+//#include <dmusici.h>
+#include "Xact3.h"
+#include "dxerr8sf.h"
+#include <string>
+
+// PROJECT INCLUDES
+//
+#include "exception.h"
+#include "System.h"
+#include "Input.h"
+#include "Sound.h"
+#include "Console.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "SoundImpl.h"
+
+// namespace 
+using namespace sf::system::sound;
+
+// ---------------------------------------------------------------------------
+//
+// SoundImpl \83N\83\89\83X
+//
+// ---------------------------------------------------------------------------
+
+struct SoundImpl::impl 
+{
+       // LIFECYCLE
+public:
+       /// \83R\83\93\83X\83g\83\89\83N\83^
+       impl()
+       {
+               mbEnabled = false;
+               mpLoader = NULL;
+               mpPerformance = NULL;
+               mpDefaultAudioPath = NULL;
+
+               for(int i = 0;i < OBJECT_MAX;i++)
+               {
+                       mpSegment[i] = NULL;
+                       mpAudioPath[i] = NULL;
+                       mbSegInUse[i] = false;
+                       mFileName[i] = "";
+               }
+               
+               mVolumeMax = volume::MAX;
+               mMasterVolume = volume::MIN;
+
+               initialize();
+
+       };
+       /// \83f\83X\83g\83\89\83N\83^
+       ~impl()
+       {
+               unload();
+               
+               if(mpDefaultAudioPath)
+                       mpDefaultAudioPath->Release();
+
+               if(mpLoader){
+                       mpLoader->Release();
+                       mpLoader = NULL;
+               }
+               
+               if(mpPerformance)
+               {
+                       mpPerformance->CloseDown();
+                       mpPerformance->Release();
+                       mpPerformance = NULL;
+                       
+               }
+       };
+       // OPERATORS //
+       // OPERATIONS //
+       void load(const int objNo,const char * const pFileName)
+       {
+               if(!isEnabled())
+                       return;
+
+               if(objNo > OBJECT_MAX && objNo < 0){
+                       throw RecoverbleErrorException(L"Sound Buffer is full",__FILE__,__LINE__,sf::system::Exception::BUFFER_IS_FULL);
+               }
+               
+               mpPerformance->Stop(NULL,NULL,0,0);
+               
+               if(mpSegment[objNo]){
+                       mpSegment[objNo]->Release();
+               }
+               
+               // Load the segment from the file
+               WCHAR wstrFileName[MAX_PATH];
+               MultiByteToWideChar( CP_ACP, 0, pFileName, -1, 
+                       wstrFileName, MAX_PATH );
+               
+               if( FAILED( mpLoader->LoadObjectFromFile( CLSID_DirectMusicSegment,
+                       IID_IDirectMusicSegment8,
+                       wstrFileName,
+                       (LPVOID*) &mpSegment[objNo] ) ) )
+               {
+                       throw FatalErrorException("Media not found",__FILE__,__LINE__);
+               }
+               
+               IUnknown* pconfig = NULL;
+           
+               if( SUCCEEDED( mpSegment[objNo]->GetAudioPathConfig( &pconfig ) ) )
+               {
+                       mpPerformance->CreateAudioPath( pconfig, TRUE, &mpAudioPath[objNo] );
+                       pconfig->Release();
+                       mpSegment[objNo]->Download(mpAudioPath[objNo]);
+               } else {
+                       mpSegment[objNo]->Download(mpPerformance);
+               }
+
+               char *pf = strupr(strdup(const_cast<char *>(pFileName)));
+               mFileName[objNo] = pf;
+               free(pf);
+       };
+       const int load(const char * const pFileName)
+       {
+
+               std::string tmp_str;
+               char *pf = strupr(strdup(const_cast<char *>(pFileName)));
+               tmp_str = pf;
+               free(pf);
+               int i;
+
+               // \93¯\82\83t\83@\83C\83\8b\96¼\82Ì\83I\83u\83W\83F\83N\83g\82ª\82·\82Å\82É\83\8d\81[\83h\8dÏ\82Ý\82©\92²\8d¸
+               // \82 \82ê\82Î\82»\82Ì\94Ô\8d\86\82ð\95Ô\82· 
+               for(i = 0;i < OBJECT_MAX;i++){
+                       if(mFileName[i] == tmp_str){
+                               return i;
+                       }
+               }
+
+               // \93¯\82\95¨\82ª\96³\82¯\82ê\82Î\81A\8bó\82«\82ð\8c\9f\8dõ\82µ\82Ä\83\8d\81[\83h
+               for(i = 0;i < OBJECT_MAX;i++){
+                       if(mpSegment[i] == NULL){
+                               load(i,pFileName);
+                               return i;
+                       }
+               }
+
+               return LOAD_ERROR;
+
+       }
+       void unload()
+       {
+               if(mpPerformance)
+                       mpPerformance->Stop(NULL,NULL,0,0);
+               
+               for(int i = 0;i < OBJECT_MAX;i++)
+               {
+                       // \83Z\83O\83\81\83\93\83g\82ªNULL\82Å\82È\82¢\82È\82ç\83\8a\83\8a\81[\83X
+                       if(mpSegment[i]){
+                               // \83I\81[\83f\83B\83I\83p\83X\82Ì\83\8a\83\8a\81[\83X
+                               if(mpAudioPath[i]){
+                                       mpSegment[i]->Unload(mpAudioPath[i]);
+                                       mpAudioPath[i]->Release();
+                                       mpAudioPath[i] = NULL;
+                                       mpSegment[i]->Release();
+                               } else {
+                                       mpSegment[i]->Unload(mpPerformance);
+                                       mpSegment[i]->Release();
+                               }
+                       }
+                       mpSegment[i] = NULL;
+                       mbSegInUse[i] = false;
+               }
+       }
+       // \83T\83E\83\93\83h\82Ì\8dÄ\90
+       void play(const int ObjNo,const DWORD Repeat,const bool bPrimary,const bool bSync)
+       {
+               if(isEnabled() && !mbSegInUse[ObjNo] && mpSegment[ObjNo])
+               {
+                       if(mQueue.set(ObjNo,Repeat,bPrimary,bSync))
+                               mbSegInUse[ObjNo] = true;
+               }
+       }
+       void stop(const int ObjNo = 0)
+       {
+               if(!isEnabled()) return;
+
+               if(!ObjNo)
+               {
+                       mQueue.clear();
+                       mpPerformance->Stop(NULL,NULL,0,0);
+               } else {
+                       mpPerformance->Stop(mpSegment[ObjNo],NULL,0,0);
+               }
+       }
+       void update()
+       {
+               if(!mQueue.isEmpty()){
+                       Queue::Data data;
+                       mQueue.get(data);
+
+                       if(!isEnabled())
+                               return;
+
+                       IDirectMusicAudioPath8* paudio_path = mpAudioPath[data.mObjNo];
+                       
+                       if(paudio_path == NULL)
+                               paudio_path = mpDefaultAudioPath;
+                       
+                       DWORD flags = NULL;
+
+                       if(!data.mbPrimary){
+                               flags |= DMUS_SEGF_SECONDARY;
+       //                      flags |= DMUS_SEGF_CONTROL;
+                       }
+
+                       if(data.mbSync){
+                               flags |= DMUS_SEGF_BEAT;
+       //                      flags &= !DMUS_SEGF_CONTROL;
+                       }
+
+                       if(!data.mRepeat)
+                               mpSegment[data.mObjNo]->SetRepeats(DMUS_SEG_REPEAT_INFINITE);
+                       else
+                               mpSegment[data.mObjNo]->SetRepeats(data.mRepeat - 1);
+
+                       
+
+                       if(mpSegment[data.mObjNo]){
+                               mpPerformance->PlaySegmentEx(
+                                       mpSegment[data.mObjNo],  // \8dÄ\90\82·\82é\83Z\83O\83\81\83\93\83g\81B
+                                       NULL,       // \83\\83\93\83O\82É\8eg\97p\82·\82é\83p\83\89\83\81\81[\83^\81B\8eÀ\91\95\82³\82ê\82Ä\82¢\82È\82¢\81B
+                                       NULL,       // \83g\83\89\83\93\83W\83V\83\87\83\93\82É\8aÖ\82·\82é\83p\83\89\83\81\81[\83^\81
+                                       flags,          // \83t\83\89\83O\81B
+                                       0,          // \8aJ\8en\83^\83C\83\80\81B0 \82Í\92¼\82¿\82É\8aJ\8en\81B
+                                       NULL,       // \83Z\83O\83\81\83\93\83g\8fó\91Ô\82ð\8eó\82¯\8eæ\82é\83|\83C\83\93\83^\81B
+                                       NULL,       // \92â\8e~\82·\82é\83I\83u\83W\83F\83N\83g\81B
+                                       paudio_path         // \83f\83t\83H\83\8b\83g\82Å\82È\82¢\8fê\8d\87\82Í\83I\81[\83f\83B\83I\83p\83X\81B
+                                       );
+                               mbSegInUse[data.mObjNo] = false;
+                       }
+               }
+       
+       }
+       // ACCESS //
+       void masterVolume(const int value)
+       {
+               if(!isEnabled())
+                       return;
+               int tmp_value = value;
+
+               if(tmp_value > mVolumeMax) tmp_value = mVolumeMax;
+               if(tmp_value < volume::MIN) tmp_value = volume::MIN;
+
+               mMasterVolume = tmp_value;
+               mpDefaultAudioPath->SetVolume(value,0);
+       }
+       const int masterVolume() const {return mMasterVolume;}
+       void volumeMax(const int value){mVolumeMax = value;};
+       const int volumeMax() const {return mVolumeMax;};
+       // INQUIRY //
+       const bool isEnabled(void) const{return mbEnabled;};
+       // \8f\89\8aú\89»
+       void initialize(void)
+       {
+               HRESULT hr = E_FAIL;
+               std::string errTmp = "Sound Initialize Error:";
+
+               CoCreateInstance(CLSID_DirectMusicLoader, NULL, 
+                       CLSCTX_INPROC, IID_IDirectMusicLoader8,
+                       (void**)&mpLoader);
+               
+               CoCreateInstance(CLSID_DirectMusicPerformance, NULL,
+                       CLSCTX_INPROC, IID_IDirectMusicPerformance8,
+                       (void**)&mpPerformance );
+               
+               // Initialize the performance with the standard audio path.
+               // This initializes both DirectMusic and DirectSound and 
+               // sets up the synthesizer. 
+               hr = mpPerformance->InitAudio( NULL, NULL, NULL, 
+                       DMUS_APATH_SHARED_STEREOPLUSREVERB, 64,
+                       0, NULL );
+               
+               if(FAILED(hr)){
+                       errTmp += DXGetErrorString8(hr);
+                       throw FatalErrorException(errTmp,__FILE__,__LINE__);
+               }
+               
+               char strPath[MAX_PATH] = ".\\media\\";
+               
+               // Tell DirectMusic where the default search path is
+               WCHAR wstrSearchPath[MAX_PATH];
+               MultiByteToWideChar( CP_ACP, 0, strPath, -1, 
+                       wstrSearchPath, MAX_PATH );
+               
+               hr = mpLoader->SetSearchDirectory( GUID_DirectMusicAllTypes, 
+                       wstrSearchPath, FALSE );
+               
+               if(FAILED(hr)){
+                       errTmp += DXGetErrorString8(hr);
+                       throw FatalErrorException(errTmp,__FILE__,__LINE__);
+               }
+               
+               // \83f\83t\83H\83\8b\83g\82Ì\83I\81[\83f\83B\83I\83p\83X\82Ì\90Ý\92è
+               hr = mpPerformance->CreateStandardAudioPath(
+                       DMUS_APATH_DYNAMIC_STEREO  , 
+                       64, 
+                       TRUE,
+                       &mpDefaultAudioPath);
+               
+               if(FAILED(hr)){
+                       errTmp += DXGetErrorString8(hr);
+                       throw FatalErrorException(errTmp,__FILE__,__LINE__);
+               }
+               
+               mpDefaultAudioPath->SetVolume(mMasterVolume,0);
+               mbEnabled = true;
+       };
+
+private:
+
+
+       IDirectMusicLoader8*            mpLoader;///< \83\8d\81[\83_\81
+       IDirectMusicPerformance8*       mpPerformance;///< \83p\83t\83H\81[\83}\83\93\83X
+       IDirectMusicSegment8*           mpSegment[OBJECT_MAX];///< \83Z\83O\83\81\83\93\83g\94z\97ñ
+       IDirectMusicAudioPath8*         mpAudioPath[OBJECT_MAX];///< \83I\81[\83f\83B\83I\83p\83X
+       IDirectMusicAudioPath8*         mpDefaultAudioPath;///< \8aù\92è\82Ì\83I\81[\83f\83B\83I\83p\83X
+       std::string                                     mFileName[OBJECT_MAX];///< \83T\83E\83\93\83h\82ÌPATH\94z\97ñ
+
+       bool mbSegInUse[OBJECT_MAX];///< \8c»\8dÝ\83Z\83O\83\81\83\93\83g\82ð\8eg\97p\82µ\82Ä\82¢\82é\82©\82ð\95Û\8e\9d\82µ\82Ä\82¢\82é\94z\97ñ
+       int mMasterVolume;///< \83}\83X\83^\81[\83{\83\8a\83\85\81[\83\80
+       int mVolumeMax;///< \8dÄ\90\8e\9e\82É\8eg\97p\82·\82é\89¹\97Ê\82Ì\92l
+
+    /** Queue\83N\83\89\83
+        * \83T\83E\83\93\83h\82Í\8dÄ\90\8ew\92è\8e\9e\82É\82±\82Ì\83L\83\85\81[\82É\88ê\92U\92~\82¦\82ç\82ê\81A\83t\83\8c\81[\83\80\96\88\82É\82P\82Â\82¸\82Â\82±\82Ìqueue\82©\82ç\8eæ\82è\8fo\82µ\81Aupdate()\93à\82Å\8dÄ\90\82³\82ê\82Ü\82· */
+       class SFDLL Queue {
+       public:
+               /// \83R\83\93\83X\83g\83\89\83N\83^
+               Queue();
+               /// \83f\83X\83g\83\89\83N\83^
+               ~Queue();
+               /// Queue\83p\83\89\83\81\81[\83^\8d\\91¢\91Ì
+               struct Data
+               {
+                       int mObjNo;             ///< \83Z\83O\83\81\83\93\83g\94Ô\8d\86
+                       long mRepeat;   ///< \83\8a\83s\81[\83g\89ñ\90\94 0 \82Í\96³\8cÀ\89ñ
+                       bool mbPrimary; ///< \83v\83\89\83C\83}\83\8a\82©\82Ç\82¤\82©
+                       bool mbSync;    ///<  \83v\83\89\83C\83}\83\8a\82Æ\94\8f\82Å\93¯\8aú\82·\82é\82©
+               };
+               // OPERATIONS//
+               
+               /** Queue\82©\82ç\8fî\95ñ\82ð\8eæ\93¾\82µ\81A\83o\83b\83t\83@\82©\82ç\8fÁ\82·. 
+                * @param rData Data\8d\\91¢\91Ì\82Ì\8eQ\8fÆ*/
+               void get(Data& rData);
+
+               /** Queue\82É\83f\81[\83^\82ð\83Z\83b\83g\82·\82é.
+                * @param ObjNo \83T\83E\83\93\83h\94Ô\8d\86 
+                * @param Repeat \83\8a\83s\81[\83g\89ñ\90\94(0\82Í\81\87\89ñ) 
+                * @param bPrimary \83v\83\89\83C\83}\83\8a\83o\83b\83t\83@\82Å\8dÄ\90\82·\82é\82©\82Ç\82¤\82© 
+                * @param bSync \83v\83\89\83C\83}\83\8a\83T\83E\83\93\83h\82Æ\93¯\8aú\82·\82é\82©\82Ç\82¤\82©  */
+               const bool set(const int ObjNo,const DWORD Repeat,const bool bPrimary,const bool bSync);
+               
+               /// \83L\83\85\81[\82ð\83N\83\8a\83A\82·\82é 
+               void clear();
+               // INQUIRY //
+
+               /** queue(@ref mBuffer)\82ª\8bó\82©\82Ç\82¤\82©\96â\82¢\8d\87\82í\82¹\82é.
+                @retval true \8bó\82Å\82 \82é
+                @retval false \8bó\82Å\82È\82¢ */
+               const bool isEmpty() const {return (mStart == mEnd);};
+       private:
+               Data mBuffer[Q_MAX];    ///< Queue\83o\83b\83t\83@\94z\97ñ
+               int mStart;                     ///< \83\8a\83\93\83O\83o\83b\83t\83@\8aJ\8en\88Ê\92u
+               int mEnd;                       ///< \83\8a\83\93\83O\83o\83b\83t\83@\8fI\97¹\88Ê\92u
+
+       };// Queue
+       
+       Queue mQueue;   ///< \83T\83E\83\93\83h\97p\83L\83\85\81[\83I\83u\83W\83F\83N\83g
+       bool mbEnabled; ///< \83T\83E\83\93\83h\82Í\8eg\97p\89Â\94\\82©\82Ç\82¤\82©\82ð\95Û\8e\9d\82·\82é
+};
+
+// \83R\83\93\83X\83g\83\89\83N\83^ -------------------------------------------------------------
+SoundImpl::SoundImpl() : impl_(new SoundImpl::impl())
+{
+                               
+}// SoundImpl()
+
+// \83f\83X\83g\83\89\83N\83^ ---------------------------------------------------------------
+SoundImpl::~SoundImpl()
+{
+       
+
+} // ~SoundImpl()
+
+// \8f\89\8aú\89» ---------------------------------------------------------------------
+void SoundImpl::initialize(void)
+{
+       impl_->initialize();
+       
+
+}// initialize() 
+
+// \83T\83E\83\93\83h\82Ì\8dÄ\90¶ -----------------------------------------------
+void SoundImpl::play(const int ObjNo,const DWORD Repeat,const bool bPrimary,const bool bSync)
+{
+       impl_->play(ObjNo,Repeat,bPrimary,bSync);
+
+       
+}// play
+
+// \83L\83\85\81[\82©\82ç\83T\83E\83\93\83hNo\82ð\8eæ\82è\8fo\82µ\81A\8dÄ\90\82·\82é -----------------------
+void SoundImpl::update()
+{
+       impl_->update();
+}// update
+
+// \83T\83E\83\93\83h\83t\83@\83C\83\8b\82Ì\83\8d\81[\83h ---------------------------------------
+void SoundImpl::load(const int objNo,const char * const pFileName)
+{
+       impl_->load(objNo,pFileName);
+
+}// load
+
+//\81@\83T\83E\83\93\83h\83I\83u\83W\83F\83N\83g\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+const int SoundImpl::load(const char * const pFileName)
+{
+       impl_->load(pFileName);
+}// load
+
+// \83A\83\93\83\8d\81[\83h -----------------------------------------------------
+void SoundImpl::unload()
+{
+       impl_->unload();
+}// unload
+
+void SoundImpl::masterVolume(const int value)
+{
+       impl_->masterVolume(value);
+}// masterVolume
+
+
+// ---------------------------------------------------------------------------
+//
+// SoundImpl::Queue \83N\83\89\83X
+//
+// ---------------------------------------------------------------------------
+
+// \83R\83\93\83X\83g\83\89\83N\83^ -------------------------------------------------
+SoundImpl::impl::Queue::Queue()
+{
+       clear();
+}// Queue
+
+// \83f\83X\83g\83\89\83N\83^ ---------------------------------------------------
+SoundImpl::impl::Queue::~Queue(){;};
+
+// \83\8a\83\93\83O\83o\83b\83t\83@\82É\83T\83E\83\93\83h\94Ô\8d\86\82ð\83Z\83b\83g\82·\82é -------------------------
+const bool SoundImpl::impl::Queue::set(const int ObjNo,const DWORD Repeat,const bool bPrimary,const bool bSync)
+{
+       if(mBuffer[mEnd].mObjNo == 0){
+               mBuffer[mEnd].mObjNo = ObjNo + 1;
+               mBuffer[mEnd].mRepeat = Repeat;
+               mBuffer[mEnd].mbPrimary = bPrimary;
+               mBuffer[mEnd].mbSync = bSync;
+               mEnd = (mEnd + 1) & (Q_MAX - 1);
+               return true;
+       } else {
+               return false;
+       }
+}// set
+
+// \83\8a\83\93\83O\83o\83b\83t\83@\82©\82ç\83T\83E\83\93\83h\83f\81[\83^\82ð\8eæ\82è\8fo\82· -----------------------
+void SoundImpl::impl::Queue::get(Data& rData)
+{
+       if(mStart == mEnd)
+       { rData.mObjNo =0;
+               return;
+       }
+       
+       rData = mBuffer[mStart];
+       rData.mObjNo -= 1;
+       mBuffer[mStart].mObjNo = 0;
+       
+       mStart = (mStart + 1) & (Q_MAX - 1);
+
+}// get
+
+// \83\8a\83\93\83O\83o\83b\83t\83@\82ð\83N\83\8a\83A\82·\82é -------------------------------------
+void SoundImpl::impl::Queue::clear()
+{
+       mStart = mEnd = 0;
+       ZeroMemory(mBuffer,sizeof(mBuffer));
+}// clear
+
+void SoundImpl::stop(int ObjNo)
+{
+       impl_->stop(ObjNo);
+}
diff --git a/project/sfglib/SoundImpl.h b/project/sfglib/SoundImpl.h
new file mode 100644 (file)
index 0000000..aaf6eb2
--- /dev/null
@@ -0,0 +1,70 @@
+/**
+ * @file SoundImpl.h
+ * @brief Sound\8aÖ\98A\82Ì\8eÀ\91\95\83N\83\89\83X\81E\82»\82ê\82É\8aÖ\82·\82é\92è\90\94\92è\8b`\82È\82Ç\82ð\8ds\82¤\81B
+ * 
+ * DirectSound DirectMusic \82ð\8eg\97p\82µ\82Ä\8eÀ\91\95\82µ\82Ä\82¢\82Ü\82·\81B
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+/// \93ñ\8fd\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#if !defined(AFX_SoundImpl_H__B9EEAB2E_EC73_44E2_A74F_3BE8E7E64310__INCLUDED_)
+#define AFX_SoundImpl_H__B9EEAB2E_EC73_44E2_A74F_3BE8E7E64310__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "sf.h"
+#include "Sound.h"
+#include "boost/shared_ptr.hpp"
+#include "boost/array.hpp"
+extern "C" {
+namespace sf{
+       namespace system {
+               namespace sound {
+                       
+                       const int Q_MAX = 32;///< \83T\83E\83\93\83h\83L\83\85\81[\83o\83b\83t\83@\82Ì\90\94
+
+                       /** Sound\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8eÀ\91\95\83N\83\89\83X
+                        */
+                       class SoundImpl : public Sound  
+                       {
+                               // LIFECYCLE
+                       public:
+                               /// \83R\83\93\83X\83g\83\89\83N\83^
+                               SoundImpl();
+                               /// \83f\83X\83g\83\89\83N\83^
+                               virtual ~SoundImpl();
+                               // OPERATORS //
+                               // OPERATIONS //
+                               void load(const int objNo,const char * const pFileName);
+                               const int load(const char * const pFileName);
+                               void unload();
+                               // \83T\83E\83\93\83h\82Ì\8dÄ\90
+                               void play(const int ObjNo,const DWORD Repeat,const bool bPrimary,const bool bSync);
+                               void stop(const int ObjNo = 0);
+                               void update();
+                               // ACCESS //
+                               void masterVolume(const int value); 
+                               const int masterVolume() const;
+                               void volumeMax(const int value);
+                               const int volumeMax() const; 
+                               // INQUIRY //
+                               const bool isEnabled(void) const;
+                               // \8f\89\8aú\89»
+                               void initialize(void);
+
+                       private:
+
+                               struct impl;
+                               boost::shared_ptr<impl> impl_;
+
+                       };// SoundImpl
+
+               }// sound
+       }// system
+}// sound
+}
+#endif // !defined(AFX_SoundImpl_H__B9EEAB2E_EC73_44E2_A74F_3BE8E7E64310__INCLUDED_)
diff --git a/project/sfglib/Sprite2D.cpp b/project/sfglib/Sprite2D.cpp
new file mode 100644 (file)
index 0000000..ad0d06c
--- /dev/null
@@ -0,0 +1,473 @@
+/**
+ * @file
+ * @brief Sprite2D\8eÀ\91\95\83N\83\89\83X\82Ì\8eÀ\91\95\82ð\8ds\82¤.
+ * 
+ * 
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+// SYSTEM INCLUDES
+//
+#include <stdio.h>
+#include <queue>
+#include "windows.h"
+#include "windowsx.h"
+
+#include "d3d11.h"
+#include "d3dx11.h"
+#include "dxerr8sf.h"
+
+
+// PROJECT INCLUDES
+//
+#include "exception.h"
+#include "sound.h"
+#include "System.h"
+#include "console.h"
+#include "Obj.h"
+#include "Obj2D.h"
+#include "ObjRectangle.h"
+#include "ObjQuadrangle.h"
+#include "AbstractSprite.h"
+#include "ConsoleImpl.h"
+
+
+#include "Sprite2D.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+using namespace sf::system::console;
+using namespace sf::system::console::sprite;
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Sprite2D::Sprite2D(LPDIRECT3DDEVICE9   pD3DDevice) : AbstractSprite()
+{
+       mpSpriteVtBuf = NULL;
+       mpSpriteTexture = NULL;
+       mCellCount = 0.0f;
+       mCellHeight = mCellWidth = 0.0f;
+       initialize(pD3DDevice);
+
+}
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Sprite2D::~Sprite2D()
+{
+       uninitialize();
+}
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Sprite2D::initialize(void)
+{
+       uninitialize();
+       mbUse = false;
+
+}// initialize()
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Sprite2D::initialize(LPDIRECT3DDEVICE9    pD3DDevice)
+{
+       initialize();
+
+       mpD3DDevice = pD3DDevice;
+}// initialize()
+
+// \83X\83v\83\89\83C\83g\97p\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83\8a\83\8a\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Sprite2D::uninitialize(void)
+{
+       if(mpSpriteVtBuf)
+       {
+               mpSpriteVtBuf->Release();
+               mpSpriteVtBuf = NULL;
+       }
+//
+//     if(mpSprite3DVtBuf)
+//     {
+//             mpSprite3DVtBuf->Release();
+//             mpSprite3DVtBuf = NULL;
+//     }
+
+       if(mpSpriteTexture){
+               mpSpriteTexture->Release();
+               mpSpriteTexture = NULL;
+       }
+/*
+    if( mpMeshMaterials != NULL ) 
+        delete[] mpMeshMaterials;
+
+    if( mpMeshTextures )
+    {
+        for( DWORD i = 0; i < mNumMaterials; i++ )
+        {
+            if( mpMeshTextures[i] )
+                mpMeshTextures[i]->Release();
+        }
+        delete[] mpMeshTextures;
+    }
+
+       if( mpMesh != NULL )
+        mpMesh->Release();
+ */   
+       mbUse = false;
+}// release()
+
+// 2D\83X\83v\83\89\83C\83g\82Ì\83\8d\81[\83h -\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Sprite2D::load(const Info *pInfo,const D3DFORMAT textureFormat,const COLOR color)
+{
+       D3DXIMAGE_INFO img_info;
+
+       HRESULT hr = D3DXCreateTextureFromFileExA(
+               mpD3DDevice,
+               pInfo->fileName,
+               D3DX_DEFAULT,
+               D3DX_DEFAULT,
+               0,
+               0,
+               textureFormat,
+               D3DPOOL_MANAGED,
+               D3DX_FILTER_NONE,
+               D3DX_FILTER_NONE,
+               color,
+               &img_info,
+               NULL,
+               &mpSpriteTexture);
+       
+       if(FAILED(hr))
+       {
+               std::string tmpErr("Sprite Load Error:");
+               tmpErr += DXGetErrorString8(hr);
+               throw FatalErrorException(tmpErr,__FILE__,__LINE__);
+       }
+
+       DWORD twidth = img_info.Width;
+       DWORD theight = img_info.Height;
+
+       mWidth = twidth;
+       mHeight = theight;
+       
+       mCenterX = pInfo->centerX;
+       mCenterY = pInfo->centerY;
+
+       mCellWidth = pInfo->cellWidth;
+       mCellHeight = pInfo->cellHeight;
+
+
+/*     if(pInfo->cellWidth){
+               twidth = mCellWidth = pInfo->cellWidth;
+       }
+
+       if(pInfo->cellHeight){
+               theight = mCellHeight = pInfo->cellHeight;
+       }
+*/
+       // \83o\81[\83e\83b\83N\83X\83o\83b\83t\83@\81i2D\83X\83v\83\89\83C\83g\95\\8e¦\97p\81j\82Ì\90\90¬
+       if(FAILED(hr = mpD3DDevice->CreateVertexBuffer(
+               4 * sizeof(Vertex), 
+               0 ,
+               VertexFVF, 
+               D3DPOOL_MANAGED, &mpSpriteVtBuf)))
+       {
+               std::string tmpErr("VertexBuffer Create Error:");
+               tmpErr += DXGetErrorString8(hr);
+               throw FatalErrorException(tmpErr,__FILE__,__LINE__);
+       }
+       
+       use(true);
+}//loadSprite2D()
+
+// \82Q\82c\83X\83v\83\89\83C\83g\82Ì\95`\89æ\81i\8el\8ap\8c`\81j\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Sprite2D::draw(const ObjRectangle * const pObj)
+{
+
+       HRESULT hr;
+       
+       float width;
+       float height;
+       float left,right,top,bottom;
+       float cos_,sin_;
+       float tu1,tu2,tv1,tv2;
+       
+       if(!pObj->visibility() || !isUsed())
+               return;
+
+       D3DCOLOR diffuse = pObj->color();
+       D3DCOLOR specular = pObj->specular();
+
+       calcUVPos(pObj,tu1,tu2,tv1,tv2);
+
+       Vertex* tlv;
+       
+       if(!mCellHeight)
+               height = mHeight * pObj->scalingY();
+       else
+               height = mCellHeight * pObj->scalingY();
+
+       if(!mCellWidth)
+               width = mWidth * pObj->scalingX();
+       else
+               width = mCellWidth * pObj->scalingX(); 
+               
+       left = - (width / 2.0f) + mCenterX;
+       right = width / 2.0f + mCenterX;
+       top = - (height / 2.0f) + mCenterY;
+       bottom = (height / 2.0f) + mCenterY;
+               
+       if(pObj->angle() != 0.0f)
+       {
+               cos_ = cosf(pObj->angle());
+               sin_ = sinf(pObj->angle());
+
+
+               float left_cos = left * cos_;
+               float left_sin = left * sin_;
+       
+               float right_cos = right * cos_;
+               float right_sin = right * sin_;
+
+               float top_cos = top * cos_;
+               float top_sin = top * sin_;
+
+               float bottom_cos = bottom * cos_;
+               float bottom_sin = bottom * sin_;
+
+               mpSpriteVtBuf->Lock(0,0,(BYTE **)&tlv,0);
+       
+               tlv[0].x = pObj->x() + left_cos - top_sin;
+               tlv[0].y = pObj->y() + left_sin + top_cos; 
+               tlv[0].z = pObj->z();
+               tlv[0].diffuse = diffuse;
+               tlv[0].specular = specular;
+               tlv[0].tu = tu1;
+               tlv[0].tv = tv1;
+               tlv[0].rhw = 1.0f;
+               
+               tlv[1].x = pObj->x() + right_cos - top_sin;
+               tlv[1].y = pObj->y() + right_sin + top_cos; 
+               tlv[1].z = pObj->z();
+               tlv[1].diffuse = diffuse;
+               tlv[1].specular = specular;
+               tlv[1].tu = tu2;
+               tlv[1].tv = tv1;
+               tlv[1].rhw = 1.0f;
+
+               tlv[2].x = pObj->x() + left_cos - bottom_sin;
+               tlv[2].y = pObj->y() + left_sin + bottom_cos; 
+               tlv[2].z = pObj->z();
+               tlv[2].diffuse = diffuse;
+               tlv[2].specular = specular;
+               tlv[2].tu = tu1;
+               tlv[2].tv = tv2;
+               tlv[2].rhw = 1.0f;
+               
+               
+               tlv[3].x = pObj->x() + right_cos - bottom_sin;
+               tlv[3].y = pObj->y() + right_sin + bottom_cos; 
+               tlv[3].z = pObj->z();
+               tlv[3].diffuse = diffuse;
+               tlv[3].specular = specular;
+               tlv[3].tu = tu2;
+               tlv[3].tv = tv2;
+               tlv[3].rhw = 1.0f;
+       } else {
+               mpSpriteVtBuf->Lock(0,0,(BYTE **)&tlv,0);
+       
+               tlv[0].x = pObj->x() + left;
+               tlv[0].y = pObj->y() + top; 
+               tlv[0].z = pObj->z();
+               tlv[0].diffuse = diffuse;
+               tlv[0].specular = specular;
+               tlv[0].tu = tu1;
+               tlv[0].tv = tv1;
+               tlv[0].rhw = 1.0f;
+               
+               tlv[1].x = pObj->x() + right;
+               tlv[1].y = pObj->y() + top; 
+               tlv[1].z = pObj->z();
+               tlv[1].diffuse = diffuse;
+               tlv[1].specular = specular;
+               tlv[1].tu = tu2;
+               tlv[1].tv = tv1;
+               tlv[1].rhw = 1.0f;
+               
+               tlv[2].x = pObj->x() + left;
+               tlv[2].y = pObj->y() + bottom; 
+               tlv[2].z = pObj->z();
+               tlv[2].diffuse = diffuse;
+               tlv[2].specular = specular;
+               tlv[2].tu = tu1;
+               tlv[2].tv = tv2;
+               tlv[2].rhw = 1.0f;
+               
+               
+               tlv[3].x = pObj->x() + right;
+               tlv[3].y = pObj->y() + bottom; 
+               tlv[3].z = pObj->z();
+               tlv[3].diffuse = diffuse;
+               tlv[3].specular = specular;
+               tlv[3].tu = tu2;
+               tlv[3].tv = tv2;
+               tlv[3].rhw = 1.0f;
+
+       }
+       
+       mpSpriteVtBuf->Unlock();
+
+       mpD3DDevice->SetRenderState(D3DRS_LIGHTING,               FALSE);
+
+       mpD3DDevice->SetTexture(0,mpSpriteTexture);
+       
+       mpD3DDevice->SetVertexShader(VertexFVF);
+       mpD3DDevice->SetStreamSource(0,mpSpriteVtBuf, sizeof(Vertex));
+       
+       setRenderState(pObj->drawMode());
+       
+       hr = mpD3DDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP,0,2);
+       mpD3DDevice->SetTexture(0,NULL);
+
+}//  draw()
+
+
+// \83X\83v\83\89\83C\83g\82Ì\95`\89æ ------------------------------------------------------------
+void Sprite2D::draw(const ObjQuadrangle * const pObj)
+{
+       if(!pObj->visibility() || !isUsed() )
+               return;
+
+       HRESULT hr;
+       
+       float cos_,sin_;
+       
+       const Vertex* vertex;
+       Vertex* ptlv;
+
+       float rot_x = mCenterX;
+       float rot_y = mCenterY;
+
+       float scaling_x = pObj->scalingX();
+       float scaling_y = pObj->scalingY();
+
+       float u1,u2,v1,v2;
+       
+       calcUVPos(pObj,u1,u2,v1,v2);
+
+       mpSpriteVtBuf->Lock(0,0,(BYTE **)&ptlv,0);
+       
+       ptlv[0].tu = u1;
+       ptlv[0].tv = v1;
+       ptlv[1].tu = u2;
+       ptlv[1].tv = v1;
+       ptlv[2].tu = u1;
+       ptlv[2].tv = v2;
+       ptlv[3].tu = u2;
+       ptlv[3].tv = v2;
+
+       if(pObj->angle() != 0.0f)
+       {
+               cos_ = cosf(pObj->angle());
+               sin_ = sinf(pObj->angle());
+
+
+               for(int i = 0;i < 4;i++)
+               {
+                       vertex = pObj->vertex(i);
+
+                       ptlv[i].x = pObj->x() 
+                               + ( vertex->x - rot_x) * cos_
+                               - ( vertex->y - rot_y) * sin_;
+                       ptlv[i].y = pObj->y() 
+                               + ( vertex->x - rot_x) * sin_
+                               + ( vertex->y - rot_y) * cos_;
+
+                       ptlv[i].diffuse = vertex->diffuse;
+                       ptlv[i].specular = vertex->specular;
+//                     ptlv[i].tu = vertex->tu;
+//                     ptlv[i].tv = vertex->tv;
+                       ptlv[i].rhw = 1.0f;
+               }
+               
+       } else {
+
+               for(int i = 0;i < 4;i++)
+               {
+                       vertex = pObj->vertex(i);
+
+                       ptlv[i].x = pObj->x() + vertex->x * scaling_x;
+                       ptlv[i].y = pObj->y() + vertex->y * scaling_y;
+
+                       ptlv[i].diffuse = vertex->diffuse;
+                       ptlv[i].specular = vertex->specular;
+//                     ptlv[i].tu = vertex->tu;
+//                     ptlv[i].tv = vertex->tv;
+                       ptlv[i].rhw = 1.0f;
+               }
+
+       }
+       
+       mpSpriteVtBuf->Unlock();
+       
+       mpD3DDevice->SetTexture(0,mpSpriteTexture);
+       mpD3DDevice->SetVertexShader(VertexFVF);
+
+       mpD3DDevice->SetStreamSource(0,mpSpriteVtBuf,sizeof(Vertex));
+
+       setRenderState(pObj->drawMode());
+       mpD3DDevice->SetRenderState(D3DRS_LIGHTING,               FALSE);
+       
+       hr = mpD3DDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP,0,2);
+       mpD3DDevice->SetTexture(0,NULL);
+               
+}// draw
+
+// \83e\83N\83X\83`\83\83\82Ì\88Ê\92u\82ð\8b\81\82ß\82é \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Sprite2D::calcUVPos(const Obj2D * const pObj,float& u1,float& u2,float& v1,float& v2)
+{
+       float cu1,cu2,cv1,cv2;
+       
+       if(mCellWidth){
+               int cell_ix = pObj->index() % (int)(mWidth / mCellWidth);
+               cu1 = (float)cell_ix * mCellWidth / mWidth;
+               cu2 = (float)(cell_ix + 1) * (mCellWidth - 0.008f) / mWidth;
+       } else {
+               cu1 = 0.0f;
+               cu2 = 1.0f;
+       }
+
+       if(mCellHeight){
+               int cell_iy = pObj->index() / (mWidth / mCellHeight);
+               cv1 = (float)cell_iy * mCellHeight / mHeight;
+               cv2 = (float)(cell_iy + 1) * (mCellHeight - 0.008f) / mHeight;
+       } else {
+               cv1 = 0.0f;
+               cv2 = 1.0f;
+       }
+
+       // X\94½\93]
+       if(pObj->reverseX()){
+               u1 = cu2;
+               u2 = cu1;
+       } else {
+               u1 = cu1;
+               u2 = cu2;
+       }
+
+       // Y\94½\93]
+       if(pObj->reverseY()){
+               v1 = cv2;
+               v2 = cv1;
+       } else {
+               v1 = cv1;
+               v2 = cv2;
+       }
+
+};
diff --git a/project/sfglib/Sprite2D.h b/project/sfglib/Sprite2D.h
new file mode 100644 (file)
index 0000000..7d99ca3
--- /dev/null
@@ -0,0 +1,93 @@
+/**
+ * @file
+ * @brief Sprite2D\8eÀ\91\95\83N\83\89\83X\8aÖ\98A\82Ì\92è\8b`\82ð\8ds\82¤.
+ * 
+ * 
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+
+/// \8fd\95¡\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#if !defined(AFX_SPRITE2D_H__6DA7673D_29FF_4B0A_838E_FE14D70C7E27__INCLUDED_)
+#define AFX_SPRITE2D_H__6DA7673D_29FF_4B0A_838E_FE14D70C7E27__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "sf.h" 
+#include "Console.h"
+extern "C" {
+namespace sf{
+       namespace system{
+               namespace console {
+                       namespace sprite {
+                               /** 2D\83X\83v\83\89\83C\83g\82Ì\92è\8b`\82ð\8ds\82¤.
+                                       2D\83X\83v\83\89\83C\83g\97p\82Ì\83e\83N\83X\83`\83\83\82ð\95Û\8e\9d\82·\82é\83I\83u\83W\83F\83N\83g\82Å\82·\81B<br>
+                               */
+                               class Sprite2D : public AbstractSprite  
+                               {
+                                       // LIFECYCLE //
+                               public:
+                                       /** \83R\83\93\83X\83g\83\89\83N\83
+                                        * @param pD3DDevice Direct3D Device\82Ö\82Ì\83|\83C\83\93\83^ */
+                                       Sprite2D(LPDIRECT3DDEVICE9 pD3DDevice);
+                                       /** \83f\83X\83g\83\89\83N\83^.*/
+                                       virtual ~Sprite2D();
+                                       // OPERATIONS //
+                                       
+                                       /// Sprite2D\8eÀ\91\95\83N\83\89\83X\82Ì\8f\89\8aú\89»\82ð\8ds\82¤
+                                       void initialize(void);
+                                       
+                                       /** Sprite2D\8eÀ\91\95\83N\83\89\83X\82Ì\8f\89\8aú\89»\82ð\8ds\82¤.
+                                        *  @param pD3DDevice Direct3D Device\82Ö\82Ì\83|\83C\83\93\83^*/ 
+                                       void initialize(LPDIRECT3DDEVICE9       pD3DDevice);
+                                       /** \8fI\97¹\8f\88\97\9d\82ð\8ds\82¤ */
+                                       void uninitialize(void);
+                                       /** \83e\83N\83X\83`\83\83\83f\81[\83^\82Ì\83\8d\81[\83
+                                        @param pInfo sprite::Info \82Ì\83|\83C\83\93\83
+                                        @textureFormat D3DFORMAT  
+                                        @color console::COLOR */
+                                       void load(const sprite::Info *pInfo,const D3DFORMAT textureFormat,const COLOR color);
+                                       void draw(const ObjRectangle * const pObj);
+                                       void draw(const ObjQuadrangle * const pObj);
+                                       void draw(const Obj3DL * const pObj){return;};
+                                       
+                                       const float width(void) const 
+                                       {
+                                               if(mCellWidth != 0.0f)
+                                                       return mCellWidth;
+                                               return mWidth;
+                                       };
+
+                                       const float height(void) const {
+                                               if(mCellHeight != 0.0f)
+                                                       return mCellHeight;
+                                               return mHeight;
+                                       };
+
+                               private:
+                                       /** \83e\83N\83X\83`\83\83\82ÌUV\8dÀ\95W\82ð\8cv\8eZ\82·\82é.
+                                        * sprite::Obj2D \82Ì\8fî\95ñ\82ð\8c³\82É\81A\95\\8e¦\94Í\88Í\82ð\8b\81\82ß\82Ü\82·\81B
+                                        * @param pObj Obj2D \82Ì\83|\83C\83\93\83
+                                        * @param u1 \8aJ\8enu\8dÀ\95
+                                        * @param u2 \8fI\97¹u\8dÀ\95
+                                        * @param v1 \8aJ\8env\8dÀ\95
+                                        * @param v2 \8fI\97¹v\8dÀ\95W */
+                                       void calcUVPos(const Obj2D * const pObj,float& u1,float& u2,float& v1,float& v2);
+                                       IDirect3DTexture9* mpSpriteTexture;///< \83X\83v\83\89\83C\83g\83e\83N\83X\83`\83\83\82Ì\83|\83C\83\93\83^
+                                       IDirect3DVertexBuffer8* mpSpriteVtBuf;///< VertexBuffer8 \82Ì\83|\83C\83\93\83^
+
+                                       float mCellWidth;///< \83Z\83\8b\82Ì\95\9d(\83e\83N\83X\83`\83\83\82Í\82±\82Ì\95\9d\82Å\98_\97\9d\93I\82É\95ª\8a\84\82³\82ê\82é)
+                                       float mCellHeight;///< \83Z\83\8b\82Ì\8d\82\82³(\83e\83N\83X\83`\83\83\82Í\82±\82Ì\8d\82\82³\82Å\98_\97\9d\93I\82É\95ª\8a\84\82³\82ê\82é)
+                                       float mCellCount;///< \83Z\83\8b\82Ì\90\94(\98_\97\9d\93I\82É\95ª\8a\84\82³\82ê\82½\8cã\82Ì\83e\83N\83X\83`\83\83\82Ì\90\94\81j
+
+                               };// SpriteImpl
+                       }
+               }
+       }
+}
+}
+#endif // !defined(AFX_SPRITE2D_H__6DA7673D_29FF_4B0A_838E_FE14D70C7E27__INCLUDED_)
diff --git a/project/sfglib/Sprite3D.cpp b/project/sfglib/Sprite3D.cpp
new file mode 100644 (file)
index 0000000..cf8ab3d
--- /dev/null
@@ -0,0 +1,328 @@
+/**
+ * @file
+ * @brief Sprite3D\8eÀ\91\95\83N\83\89\83X\82Ì\8eÀ\91\95\82ð\8ds\82¤.
+ * 
+ * 
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+// SYSTEM INCLUDES
+//
+#include <stdio.h>
+#include <queue>
+#include "windows.h"
+#include "windowsx.h"
+
+#include "d3d8.h"
+#include "d3dx8.h"
+#include "dxerr8sf.h"
+
+
+// PROJECT INCLUDES
+//
+#include "exception.h"
+#include "sound.h"
+#include "System.h"
+#include "console.h"
+#include "Obj.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "AbstractSprite.h"
+#include "ConsoleImpl.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "Sprite3D.h"
+
+using namespace sf::system::console;
+using namespace sf::system::console::sprite;
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+// \83R\83\93\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Sprite3D::Sprite3D(LPDIRECT3DDEVICE9 pD3DDevice)
+{
+       mpSprite3DVtBuf = NULL;
+       mpSpriteTexture = NULL;
+       mCellWidth = mCellHeight = 0.0f;
+       mCellCount = 0.0f;
+
+       initialize(pD3DDevice);
+}
+
+// \83f\83X\83g\83\89\83N\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+Sprite3D::~Sprite3D()
+{
+       uninitialize();
+}//Sprite3D
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Sprite3D::initialize(void)
+{
+       uninitialize();
+       mbUse = false;
+
+}// initialize()
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Sprite3D::initialize(LPDIRECT3DDEVICE9    pD3DDevice)
+{
+       initialize();
+
+       mpD3DDevice = pD3DDevice;
+}// initialize()
+
+// \83X\83v\83\89\83C\83g\97p\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83\8a\83\8a\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Sprite3D::uninitialize(void)
+{
+
+       if(mpSprite3DVtBuf)
+       {
+               mpSprite3DVtBuf->Release();
+               mpSprite3DVtBuf = NULL;
+       }
+
+       if(mpSpriteTexture){
+               mpSpriteTexture->Release();
+               mpSpriteTexture = NULL;
+       }
+/*
+    if( mpMeshMaterials != NULL ) 
+        delete[] mpMeshMaterials;
+
+    if( mpMeshTextures )
+    {
+        for( DWORD i = 0; i < mNumMaterials; i++ )
+        {
+            if( mpMeshTextures[i] )
+                mpMeshTextures[i]->Release();
+        }
+        delete[] mpMeshTextures;
+    }
+
+       if( mpMesh != NULL )
+        mpMesh->Release();
+ */   
+       mbUse = false;
+}// uninitialize()
+
+
+// 3D\83X\83v\83\89\83C\83g\82Ì\83\8d\81[\83h -\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void Sprite3D::load(const sprite::Info *pInfo,const D3DFORMAT textureFormat,const COLOR color)
+{
+       // \83e\83N\83X\83`\83\83\82Ì\83\8d\81[\83
+       D3DXIMAGE_INFO img_info;
+       HRESULT hr = D3DXCreateTextureFromFileExA(
+               mpD3DDevice,
+               pInfo->fileName,
+               D3DX_DEFAULT,
+               D3DX_DEFAULT,
+               0,
+               0,
+               textureFormat,
+               D3DPOOL_MANAGED,
+               D3DX_FILTER_NONE,
+               D3DX_FILTER_NONE,
+               color,
+               &img_info,
+               NULL,
+               &mpSpriteTexture);
+       
+       if(FAILED(hr))
+       {
+               std::string tmpErr("Sprite Load Error:");
+               tmpErr += DXGetErrorString8(hr);
+               throw FatalErrorException(tmpErr,__FILE__,__LINE__);
+       }
+
+       DWORD twidth = img_info.Width;
+       DWORD theight = img_info.Height;
+
+
+       mWidth = twidth;
+       mHeight = theight;
+       
+       if(pInfo->cellWidth){
+               twidth = mCellWidth = pInfo->cellWidth;
+       }
+
+       if(pInfo->cellHeight){
+               theight = mCellHeight = pInfo->cellHeight;
+       }
+       
+
+       //\83C\83\81\81[\83W\83T\83C\83Y\82Ì\8eæ\93¾
+       
+       float width  = (float)twidth / screen::HEIGHT;
+       float height = (float)theight / screen::HEIGHT;
+
+       float center_x = pInfo->centerX / (float)screen::HEIGHT;
+       float center_y = pInfo->centerY / (float)screen::HEIGHT;
+
+       mCenterX = pInfo->centerX;
+       mCenterY = pInfo->centerY;
+
+       float start_x = center_x - width;
+       float start_y = center_y - height;
+
+       float end_x = center_x + width;
+       float end_y = center_y + height;
+
+       D3DSURFACE_DESC d3dsd;
+
+       mpSpriteTexture->GetLevelDesc(0,&d3dsd);
+       
+       float cell_width = (float)twidth / (float)d3dsd.Width;
+       float cell_height = (float)theight / (float)d3dsd.Height;
+
+       int count_x = 1;
+       int count_y = 1;
+
+       if(mCellWidth && mCellHeight)
+       {
+               count_x = mWidth / mCellWidth;
+               count_y = mHeight / mCellHeight;
+               mCellCount = count_x * count_y;
+       }
+       else
+       {
+               mCellCount = 1;
+       }
+
+       int vert_size = sizeof(Vertex2) * 4 * mCellCount;
+
+       hr = mpD3DDevice->CreateVertexBuffer( vert_size,
+                       0, Vertex2FVF,D3DPOOL_MANAGED , &mpSprite3DVtBuf );             
+
+       if(FAILED(hr)){
+               std::string tmpErr("Sprite Load Error:");
+               tmpErr += DXGetErrorString8(hr);
+               throw FatalErrorException(tmpErr,__FILE__,__LINE__);
+       }
+
+       LPBYTE pvertices;
+
+       mpSprite3DVtBuf->Lock( 0, vert_size, (BYTE**)&pvertices, 0 );
+       
+       int i,j;
+       for(j = 0;j < count_y;j++)
+       {
+               for(i = 0;i < count_x;i++)
+               {
+                       Vertex2 vert_image[] =
+                       {
+                               { start_x,start_y, 0.0f, 0xffffffff,0x0000000,cell_width*i,    cell_height*(j+1)},
+                               { start_x,end_y,   0.0f, 0xffffffff,0x0000000,cell_width*i,    cell_height*(j)},
+                               { end_x,  start_y, 0.0f, 0xffffffff,0x0000000,cell_width*(i+1),cell_height*(j+1)},
+                               { end_x,  end_y,   0.0f, 0xffffffff,0x0000000,cell_width*(i+1),cell_height*(j)}
+                       };
+                       memcpy( pvertices, vert_image, sizeof(vert_image) );
+                       pvertices += sizeof(Vertex2) * 4;
+               }
+       }
+       
+       mpSprite3DVtBuf->Unlock();
+
+       use(true);
+
+}//load()
+
+// \83X\83v\83\89\83C\83g\82Ì\95`\89æ(3D) -------------------------------------------------------
+void Sprite3D::draw(const Obj3DL * const pObj)
+{
+
+       HRESULT hr;
+       if(!pObj->visibility())
+               return;
+
+       D3DMATRIX matrix_scaling=
+       {
+               pObj->scalingX(),0,0,0,
+               0,pObj->scalingY(),0,0,
+               0,0,pObj->scalingZ(),0,
+               0,0,0,1
+       };
+       
+       D3DMATRIX matrix_trans=
+       {
+               1,0,0,0,
+               0,1,0,0,
+               0,0,1,0,
+               pObj->spaceX(),pObj->spaceY(),pObj->spaceZ(),1
+       };
+       
+
+       D3DMATRIX matrix_rotx =
+       {
+               1,0,0,0,
+               0,pObj->rotXCos(),pObj->rotXSin(),0,
+               0,-pObj->rotXSin(),pObj->rotXCos(),0,
+               0,0,0,1
+       };
+
+       D3DMATRIX matrix_roty=
+       {
+               pObj->rotYCos(),0,-pObj->rotYSin(),0,
+               0,1,0,0,
+               pObj->rotYSin(),0,pObj->rotYCos(),0,
+               0,0,0,1
+       };
+
+
+       D3DMATRIX matrix_rotz =
+       {
+               pObj->rotZCos(),pObj->rotZSin(),0,0,
+               -pObj->rotZSin(),pObj->rotZCos(),0,0,
+               0,0,1,0,
+               0,0,0,1
+       };
+
+
+
+       hr = mpD3DDevice->SetTransform(D3DTS_WORLD ,&matrix_trans);
+       
+       hr = mpD3DDevice->MultiplyTransform(D3DTS_WORLD ,&matrix_scaling);
+       hr = mpD3DDevice->MultiplyTransform(D3DTS_WORLD ,&matrix_rotx);
+       hr = mpD3DDevice->MultiplyTransform(D3DTS_WORLD ,&matrix_roty);
+       hr = mpD3DDevice->MultiplyTransform(D3DTS_WORLD ,&matrix_rotz);
+
+
+       Vertex2 *ptlv;
+       mpSprite3DVtBuf->Lock(0,0,(BYTE **)&ptlv,0);
+
+       ptlv[0].specular = 
+               ptlv[1].specular = 
+               ptlv[2].specular = 
+               ptlv[3].specular = pObj->specular();
+       
+       ptlv[0].diffuse =
+               ptlv[1].diffuse = 
+               ptlv[2].diffuse =
+               ptlv[3].diffuse = pObj->color();
+       
+       mpSprite3DVtBuf->Unlock();
+
+       hr = mpD3DDevice->SetTexture(0,mpSpriteTexture);
+       setRenderState(pObj->drawMode());
+       mpD3DDevice->SetRenderState(D3DRS_LIGHTING,               FALSE);
+       mpD3DDevice->SetRenderState(D3DRS_CULLMODE ,      D3DCULL_NONE  );
+
+       hr = mpD3DDevice->SetStreamSource(0,mpSprite3DVtBuf,sizeof(Vertex2));
+       hr = mpD3DDevice->SetVertexShader(Vertex2FVF);
+
+       hr = mpD3DDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP,pObj->index(),2);
+
+       mpD3DDevice->SetTexture(0,NULL);
+
+}// draw()
+
diff --git a/project/sfglib/Sprite3D.h b/project/sfglib/Sprite3D.h
new file mode 100644 (file)
index 0000000..244e179
--- /dev/null
@@ -0,0 +1,73 @@
+/**
+ * @file
+ * @brief Sprite3D\8eÀ\91\95\83N\83\89\83X\8aÖ\98A\82Ì\92è\8b`\82ð\8ds\82¤.
+ * 
+ * 
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+/// \8fd\95¡\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#if !defined(AFX_SPRITE3D_H__AA321D29_F334_4A4F_A2DC_76B6891F09A7__INCLUDED_)
+#define AFX_SPRITE3D_H__AA321D29_F334_4A4F_A2DC_76B6891F09A7__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "sf.h" 
+#include "AbstractSprite.h"
+extern "C" {
+namespace sf {
+       namespace system {
+               namespace console {
+                       namespace sprite {
+                               /** 3D\83X\83v\83\89\83C\83g. 
+                                3D\83X\83v\83\89\83C\83g\97p\82Ì\83e\83N\83X\83`\83\83\82ð\95Û\8e\9d\82·\82é\83I\83u\83W\83F\83N\83g\82Å\82· */
+                               class Sprite3D : public AbstractSprite  
+                               {
+                               public:
+                                       // LIFECYCLE //
+                                       /** \83R\83\93\83X\83g\83\89\83N\83^
+                                        * @param pD3DDevice Direct3D \83f\83o\83C\83X\82Ì\83|\83C\83\93\83^ */
+                                       Sprite3D(LPDIRECT3DDEVICE9 pD3DDevice);
+                                       /** \83f\83X\83g\83\89\83N\83^ */
+                                       virtual ~Sprite3D();
+                                       // OPERATIONS //
+                                       void initialize(void);
+                                       void initialize(LPDIRECT3DDEVICE9       pD3DDevice);
+                                       void uninitialize(void);
+                                       void load(const sprite::Info *pInfo,const D3DFORMAT textureFormat,const COLOR color);
+                                       
+                                       void draw(const ObjRectangle * const pObj){return;}
+                                       void draw(const ObjQuadrangle * const pObj){return;}
+                                       void draw(const Obj3DL * const pObj);
+                                       const float width(void) const
+                                       {
+                                               if(mCellWidth != 0.0f)
+                                                       return mCellWidth;
+                                               return mWidth;
+                                       };
+
+                                       const float height(void) const {
+                                               if(mCellHeight != 0.0f)
+                                                       return mCellHeight;
+                                               return mHeight;
+                                       };
+
+                               private:
+                                       IDirect3DTexture9* mpSpriteTexture;///< \83X\83v\83\89\83C\83g\83e\83N\83X\83`\83\83
+                                       IDirect3DVertexBuffer8* mpSprite3DVtBuf;///< \83X\83v\83\89\83C\83g\97pVertex\83o\83b\83t\83@
+
+                                       float mCellWidth;///< \83Z\83\8b\82Ì\95\9d(\83e\83N\83X\83`\83\83\82Í\82±\82Ì\95\9d\82Å\98_\97\9d\93I\82É\95ª\8a\84\82³\82ê\82é)
+                                       float mCellHeight;///< \83Z\83\8b\82Ì\8d\82\82³(\83e\83N\83X\83`\83\83\82Í\82±\82Ì\8d\82\82³\82Å\98_\97\9d\93I\82É\95ª\8a\84\82³\82ê\82é)
+                                       float mCellCount;///< \83Z\83\8b\82Ì\90\94(\98_\97\9d\93I\82É\95ª\8a\84\82³\82ê\82½\8cã\82Ì\83e\83N\83X\83`\83\83\82Ì\90\94\81j
+                                               
+                               };
+                       }
+               }
+       }
+}
+}
+#endif // !defined(AFX_SPRITE3D_H__AA321D29_F334_4A4F_A2DC_76B6891F09A7__INCLUDED_)
diff --git a/project/sfglib/SpriteMesh.cpp b/project/sfglib/SpriteMesh.cpp
new file mode 100644 (file)
index 0000000..0e08e94
--- /dev/null
@@ -0,0 +1,249 @@
+/**
+ * @file
+ * @brief SpriteMesh\8eÀ\91\95\83N\83\89\83X\82Ì\8eÀ\91\95\82ð\8ds\82¤.
+ * 
+ * 
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#include "sfdebug.h"
+
+// SYSTEM INCLUDES
+//
+
+#include <stdio.h>
+#include <queue>
+#include "windows.h"
+#include "windowsx.h"
+
+#include "d3d8.h"
+#include "d3dx8.h"
+#include "dxerr8sf.h"
+
+
+// PROJECT INCLUDES
+//
+
+#include "exception.h"
+#include "sound.h"
+#include "System.h"
+#include "console.h"
+#include "Obj.h"
+#include "Obj3D.h"
+#include "Obj3DL.h"
+#include "AbstractSprite.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+#include "SpriteMesh.h"
+
+
+using namespace sf::system::console;
+using namespace sf::system::console::sprite;
+
+
+//////////////////////////////////////////////////////////////////////
+// \8d\\92z/\8fÁ\96Å
+//////////////////////////////////////////////////////////////////////
+
+SpriteMesh::SpriteMesh(LPDIRECT3DDEVICE9 pD3DDevice)
+{
+       mNumMaterials = 0;
+       mpMesh = NULL;
+       mpMeshMaterials = NULL;
+       mpMeshTextures = NULL;
+
+       initialize(pD3DDevice);
+
+}
+
+SpriteMesh::~SpriteMesh()
+{
+       uninitialize();
+}
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SpriteMesh::initialize(void)
+{
+       uninitialize();
+       mbUse = false;
+
+}// initialize()
+
+// \8f\89\8aú\89» \81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SpriteMesh::initialize(LPDIRECT3DDEVICE9  pD3DDevice)
+{
+       initialize();
+
+       mpD3DDevice = pD3DDevice;
+}// initialize()
+
+// \83X\83v\83\89\83C\83g\97p\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83\8a\83\8a\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SpriteMesh::uninitialize(void)
+{
+
+
+    if( mpMeshMaterials != NULL ) 
+        delete[] mpMeshMaterials;
+
+    if( mpMeshTextures )
+    {
+        for( DWORD i = 0; i < mNumMaterials; i++ )
+        {
+            if( mpMeshTextures[i] )
+                mpMeshTextures[i]->Release();
+        }
+        delete[] mpMeshTextures;
+    }
+
+       if( mpMesh != NULL )
+        mpMesh->Release();
+
+       mbUse = false;
+}// uninitialize
+
+// \83\81\83b\83V\83\85\82Ì\83\8d\81[\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SpriteMesh::load(const Info *pInfo,const D3DFORMAT textureFormat,const COLOR color)
+{
+       LPD3DXBUFFER pD3DXMtrlBuffer;
+       HRESULT hr;
+
+    // Load the mesh from the specified file
+    if( FAILED( hr = D3DXLoadMeshFromX( (char *)(pInfo->fileName), D3DXMESH_SYSTEMMEM, 
+                                   mpD3DDevice, NULL, 
+                                   &pD3DXMtrlBuffer, &mNumMaterials, 
+                                   &mpMesh ) ) )
+    {
+               std::string tmpErr("Sprite Load Error:");
+               tmpErr += DXGetErrorString8(hr);
+               throw FatalErrorException(tmpErr,__FILE__,__LINE__);
+   }
+
+    // We need to extract the material properties and texture names from the 
+    // pD3DXMtrlBuffer
+
+    D3DXMATERIAL* d3dxMaterials = (D3DXMATERIAL*)pD3DXMtrlBuffer->GetBufferPointer();
+    mpMeshMaterials = new D3DMATERIAL8[mNumMaterials];
+    mpMeshTextures  = new LPDIRECT3DTEXTURE8[mNumMaterials];
+
+    for( DWORD i = 0; i < mNumMaterials; i++ )
+    {
+        // Copy the material
+        mpMeshMaterials[i] = d3dxMaterials[i].MatD3D;
+
+        // Set the ambient color for the material (D3DX does not do this)
+        mpMeshMaterials[i].Ambient = mpMeshMaterials[i].Diffuse;
+     
+        // Create the texture
+ //       if( FAILED( hr = D3DXCreateTextureFromFile( mpD3DDevice, 
+  //                                             d3dxMaterials[i].pTextureFilename, 
+   //                                            &mpMeshTextures[i] ) ) )
+               HRESULT hr = D3DXCreateTextureFromFileExA(
+                       mpD3DDevice,
+                       d3dxMaterials[i].pTextureFilename,
+                       D3DX_DEFAULT,
+                       D3DX_DEFAULT,
+                       0,
+                       0,
+                       textureFormat,
+                       D3DPOOL_MANAGED,
+                       D3DX_FILTER_NONE,
+                       D3DX_FILTER_NONE,
+                       color,
+                       NULL,
+                       NULL,
+                       &mpMeshTextures[i]);
+               if(FAILED(hr))
+               {
+    
+                       mpMeshTextures[i] = NULL;
+        }
+    }
+
+    // Done with the material buffer
+    pD3DXMtrlBuffer->Release();
+}// loadMesh()
+
+
+// \83X\83v\83\89\83C\83g\82Ì\95`\89æ(3D) -------------------------------------------------------
+void SpriteMesh::draw(const Obj3DL * const pObj)
+{
+
+       HRESULT hr;
+       if(!pObj->visibility())
+               return;
+
+       D3DMATRIX matrix_scaling=
+       {
+               pObj->scalingX(),0,0,0,
+               0,pObj->scalingY(),0,0,
+               0,0,pObj->scalingZ(),0,
+               0,0,0,1
+       };
+
+       D3DMATRIX matrix_trans=
+       {
+               1,0,0,0,
+               0,1,0,0,
+               0,0,1,0,
+               pObj->spaceX(),pObj->spaceY(),pObj->spaceZ(),1
+       };
+       
+
+       D3DMATRIX matrix_rotx =
+       {
+               1,0,0,0,
+               0,pObj->rotXCos(),pObj->rotXSin(),0,
+               0,-pObj->rotXSin(),pObj->rotXCos(),0,
+               0,0,0,1
+       };
+
+       D3DMATRIX matrix_roty=
+       {
+               pObj->rotYCos(),0,-pObj->rotYSin(),0,
+               0,1,0,0,
+               pObj->rotYSin(),0,pObj->rotYCos(),0,
+               0,0,0,1
+       };
+
+
+       D3DMATRIX matrix_rotz =
+       {
+               pObj->rotZCos(),pObj->rotZSin(),0,0,
+               -pObj->rotZSin(),pObj->rotZCos(),0,0,
+               0,0,1,0,
+               0,0,0,1
+       };
+
+
+
+       hr = mpD3DDevice->SetTransform(D3DTS_WORLD ,&matrix_trans);
+
+       hr = mpD3DDevice->MultiplyTransform(D3DTS_WORLD ,&matrix_scaling);
+       hr = mpD3DDevice->MultiplyTransform(D3DTS_WORLD ,&matrix_rotx);
+       hr = mpD3DDevice->MultiplyTransform(D3DTS_WORLD ,&matrix_roty);
+       hr = mpD3DDevice->MultiplyTransform(D3DTS_WORLD ,&matrix_rotz);
+
+       setRenderState(pObj->drawMode());
+       mpD3DDevice->SetRenderState(D3DRS_LIGHTING,               TRUE);
+       mpD3DDevice->SetRenderState(D3DRS_CULLMODE ,      D3DCULL_CCW  );
+
+       for( DWORD i = 0; i < mNumMaterials; i++ )
+       {
+               // Set the material and texture for this subset
+               mpD3DDevice->SetMaterial( &mpMeshMaterials[i] );
+               mpD3DDevice->SetTexture( 0, mpMeshTextures[i] );
+    
+               // Draw the mesh subset
+               mpMesh->DrawSubset( i );
+       }
+
+}// draw()
+
diff --git a/project/sfglib/SpriteMesh.h b/project/sfglib/SpriteMesh.h
new file mode 100644 (file)
index 0000000..3d673df
--- /dev/null
@@ -0,0 +1,64 @@
+/**
+ * @file
+ * @brief SpriteMesh\8eÀ\91\95\83N\83\89\83X\8aÖ\98A\82Ì\92è\8b`\82ð\8ds\82¤.
+ * 
+ * 
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+/// \8fd\95¡\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#if !defined(AFX_SPRITEMESH_H__572D6B9D_63CF_41E9_8D17_4A37518A0CA2__INCLUDED_)
+#define AFX_SPRITEMESH_H__572D6B9D_63CF_41E9_8D17_4A37518A0CA2__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "sf.h" 
+#include "AbstractSprite.h"
+extern "C" {
+namespace sf {
+       namespace system {
+               namespace console {
+                       namespace sprite {
+/** 3D\83\81\83b\83V\83\85\83X\83v\83\89\83C\83g.
+ * \83|\83\8a\83S\83\93\82Å\8d\\90¬\82³\82ê\82½3D\83I\83u\83W\83F\83N\83g\82Ì\83f\81[\83^\82ð\95Û\8e\9d\82µ\82Ü\82· */
+class SpriteMesh : public AbstractSprite  
+{
+public:
+       // LIFECYCLE //
+       /** \83R\83\93\83X\83g\83\89\83N\83
+        * @param pD3DDevice Direct3D \83f\83o\83C\83X\82Ì\83|\83C\83\93\83^ */
+       SpriteMesh(LPDIRECT3DDEVICE9    pD3DDevice);
+       /// \83f\83X\83g\83\89\83N\83^
+       virtual ~SpriteMesh();
+       
+       // OPERATIONS //
+       void initialize(void);///< \8f\89\8aú\89»
+       /** \8f\89\8aú\89»\82Q.
+        @param pD3DDevice LPPDIRECT3DDEVICE8 */
+       void initialize(LPDIRECT3DDEVICE9       pD3DDevice);
+       void uninitialize(void);///< \8fI\97¹\8f\88\97\9d
+       // \95`\89æ\97p\83\8c\83\93\83_\83\8a\83\93\83O\83X\83e\81[\83g\82Ì\90Ý\92è
+       void load(const sprite::Info *pInfo,const D3DFORMAT textureFormat,const COLOR color);
+       
+       void draw(const ObjRectangle * const pObj){return;};
+       void draw(const ObjQuadrangle * const pObj){return;};
+       void draw(const Obj3DL * const pObj);
+
+private:
+
+       LPD3DXMESH              mpMesh         ;  ///< Our mesh object in sysmem
+       D3DMATERIAL8*           mpMeshMaterials;  ///< Materials for our mesh
+       LPDIRECT3DTEXTURE8*     mpMeshTextures;  ///< Textures for our mesh
+       DWORD                   mNumMaterials;    ///< Number of mesh materials
+
+};// SpriteMesh                                
+                       }
+               }
+       }
+}
+}
+#endif // !defined(AFX_SPRITEMESH_H__572D6B9D_63CF_41E9_8D17_4A37518A0CA2__INCLUDED_)
diff --git a/project/sfglib/StdAfx.cpp b/project/sfglib/StdAfx.cpp
new file mode 100644 (file)
index 0000000..bbb1ae8
--- /dev/null
@@ -0,0 +1,8 @@
+// stdafx.cpp : \95W\8f\80\83C\83\93\83N\83\8b\81[\83h\83t\83@\83C\83\8b\82ð\8aÜ\82Þ\83\\81[\83\83t\83@\83C\83\8b
+//              sfglib.pch \90\90¬\82³\82ê\82é\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\83w\83b\83_\81[
+//              stdafx.obj \90\90¬\82³\82ê\82é\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\83^\83C\83v\8fî\95ñ
+
+#include "stdafx.h"
+
+// TODO: STDAFX.H \82É\8aÜ\82Ü\82ê\82Ä\82¢\82Ä\81A\82±\82Ì\83t\83@\83C\83\8b\82É\8bL\8fq\82³\82ê\82Ä\82¢\82È\82¢
+// \83w\83b\83_\81[\83t\83@\83C\83\8b\82ð\92Ç\89Á\82µ\82Ä\82­\82¾\82³\82¢\81B
diff --git a/project/sfglib/StdAfx.h b/project/sfglib/StdAfx.h
new file mode 100644 (file)
index 0000000..1fca185
--- /dev/null
@@ -0,0 +1,23 @@
+// stdafx.h : \95W\8f\80\82Ì\83V\83X\83e\83\80 \83C\83\93\83N\83\8b\81[\83\83t\83@\83C\83\8b\81A
+//            \82Ü\82½\82Í\8eQ\8fÆ\89ñ\90\94\82ª\91½\82­\81A\82©\82Â\82 \82Ü\82è\95Ï\8dX\82³\82ê\82È\82¢
+//            \83v\83\8d\83W\83F\83N\83g\90ê\97p\82Ì\83C\83\93\83N\83\8b\81[\83\83t\83@\83C\83\8b\82ð\8bL\8fq\82µ\82Ü\82·\81B
+//
+
+#if !defined(AFX_STDAFX_H__050FFF83_35A1_43A9_B1B8_BAC18FC87245__INCLUDED_)
+#define AFX_STDAFX_H__050FFF83_35A1_43A9_B1B8_BAC18FC87245__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+
+// \82±\82Ì\88Ê\92u\82É\83w\83b\83_\81[\82ð\91}\93ü\82µ\82Ä\82­\82¾\82³\82¢
+#define WIN32_LEAN_AND_MEAN            // Windows \83w\83b\83_\81[\82©\82ç\96w\82Ç\8eg\97p\82³\82ê\82È\82¢\83X\83^\83b\83t\82ð\8f\9c\8aO\82µ\82Ü\82·
+
+#include <windows.h>
+// TODO: \83v\83\8d\83O\83\89\83\80\82Å\95K\97v\82È\83w\83b\83_\81[\8eQ\8fÆ\82ð\92Ç\89Á\82µ\82Ä\82­\82¾\82³\82¢\81B
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Visual C++ \82Í\91O\8ds\82Ì\92¼\91O\82É\92Ç\89Á\82Ì\90é\8c¾\82ð\91}\93ü\82µ\82Ü\82·\81B
+
+#endif // !defined(AFX_STDAFX_H__050FFF83_35A1_43A9_B1B8_BAC18FC87245__INCLUDED_)
diff --git a/project/sfglib/System.cpp b/project/sfglib/System.cpp
new file mode 100644 (file)
index 0000000..0701b5e
--- /dev/null
@@ -0,0 +1,85 @@
+//@STATE=\8a®\90¬
+//@DESCRIPTION ---------------------------------------------------------------
+// System \92\8a\8fÛ\83N\83\89\83X
+// Static\95\94\95ª\82Ì\8eÀ\91\95
+//     \97\9a\97ð:
+// $Log: System.cpp,v $
+// Revision 1.3  2001/11/06 21:27:42  fujiwara
+// \91å\95\9d\8dX\90V\91O\83o\83b\83N\83A\83b\83v
+//
+// Revision 1.2  2001/10/28 21:35:56  fujiwara
+// (none)
+//
+// Revision 1.1  2001/10/21 12:12:36  fujiwara
+// (none)
+//
+// Revision 1.5  2001/07/09 20:30:10  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.4  2001/07/01 01:03:44  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.3  2001/05/29 01:12:25  fujiwara
+// \8eG\8b\9b\83L\83\83\83\89(\94ò\8ds\95¨\81j\82Ì\8dì\90¬\81B\94z\92u\83G\83f\83B\83^\82Ì\83o\83O\8fC\90³
+//
+// Revision 1.2  2001/05/12 00:48:48  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//     2001/01/29 \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p\83\89\83C\83u\83\89\83\8a\82Ì\92Ç\89Á 
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#ifdef _DEBUG
+#ifndef _BORLAND
+#define _CRTDBG_MAP_ALLOC
+#include <stdlib.h>
+#include <crtdbg.h>
+#endif
+#endif
+
+// SYSTEM INCLUDES
+//
+//#define INITGUID
+#include "math.h"
+#include <list>
+#include <queue>
+#include <map>
+
+#include "windows.h"
+#include "windowsx.h"
+#include "d3d8.h"
+#include "d3dx8.h"
+#include "dmusici.h"
+#include "dinput.h"
+
+// PROJECT INCLUDES
+//
+//#include "console.h"
+//#include "input.h"
+//#include "sound.h"
+
+#include "exception.h"
+#include "System.h"
+#include "resource.h"
+#include "Console.h"
+#include "Obj.h"
+#include "singleton.h"
+#include "AbstractSprite.h"
+#include "ConsoleImpl.h"       
+#include "SoundImpl.h"
+#include "InputImpl.h"
+#include "Main.h"
+#include "SystemImpl.h"
+
+// namespace
+namespace sf {
+namespace system {
+
+}// system
+}// namespace sf
diff --git a/project/sfglib/System.h b/project/sfglib/System.h
new file mode 100644 (file)
index 0000000..638dfa0
--- /dev/null
@@ -0,0 +1,159 @@
+/**
+ * @file System.h
+ * @brief OS\82Ö\82Ì\83C\83\93\83^\81[\83t\83F\81[\83X\82Å\82·
+ *
+ * @author S.F.
+ * @version $Id:
+ * 
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+#if !defined(AFX_System_H__DD8D138F_B5A2_4C7B_B543_6BCE1BFB1ED5__INCLUDED_)
+/// 2\8fd\83C\83\93\83N\83\8b\81[\83h\82ð\96h\8e~\82·\82é\82½\82ß\82Ì\92è\8b`
+#define AFX_System_H__DD8D138F_B5A2_4C7B_B543_6BCE1BFB1ED5__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#include <string>
+#include "sf.h"
+
+extern "C" {
+
+/** S.F.\82Ì\96¼\91O\8bó\8aÔ.
+ * \82±\82ê\82Í\91¼\82Ì\83\89\83C\83u\83\89\83\8a\82Æ\96¼\91O\82Ì\8fÕ\93Ë\82ð\89ñ\94ð\82·\82é\82½\82ß\82É\92è\8b`\82³\82ê\82Ä\82¢\82Ü\82·\81
+ * S.F.\82ª\92è\8b`\82·\82é\96¼\91O\8bó\8aÔ\81E\83N\83\89\83X\81E\95Ï\90\94\81E\92è\90\94\82Í\82·\82×\82Ä\82±\82Ì\92\86\82É\8aÜ\82Ü\82ê\82Ü\82·\81B */
+namespace sf {
+
+/** DWORD \82Ì\92è\8b` */
+typedef unsigned long DWORD;///< \82±\82ê\82Í\81AWindowsAPI\82Ì\83\89\83C\83u\83\89\83\8a\82ð\8eæ\82è\8d\9e\82Ü\82È\82­\82Ä\82à\82æ\82¢\82æ\82¤\82ÉDWORD\82ð\92è\8b`\82µ\82Ä\82¢\82Ü\82·\81B
+
+namespace application {
+       class Main;
+}
+
+/** \83V\83X\83e\83\80\96¼\91O\8bó\8aÔ. 
+ *\82±\82Ì\96¼\91O\8bó\8aÔ\82Í\81A\83V\83X\83e\83\80\83\8a\83\\81[\83X\82Ì\83A\83N\83Z\83X\82ð\8ds\82¤\83N\83\89\83X\82â\81A
+ *\82Ç\82Ì\82æ\82¤\82È\96¼\91O\8bó\8aÔ\82Å\82à\8eg\97p\82³\82ê\82é\8aî\96{\93I\82È\92è\90\94\82ª\8ai\94[\82³\82ê\82Ü\82·\81B
+ */
+namespace system {
+
+const float PI = 3.1415926f;///< \83Î
+const int MAX_PATH_ = 256;///< \8dÅ\91å\83t\83@\83C\83\8bPATH\82Ì\92·\82³
+
+namespace console {
+       class Console;
+}
+
+namespace sound {
+       class Sound;
+}
+
+namespace input {
+       class Input;
+}
+
+// System \82Ì\83C\83\93\83^\81[\83t\83F\81[\83X --------------------------------------------------
+
+const DWORD TIMER_INTERVAL = 32;///< 1\83t\83\8c\81[\83\80\82Ì\8e\9e\8aÔ(ms)
+
+const float FRAME_SEC = 30.0f;///< Frame Per Second (FPS)
+
+/** \83V\83X\83e\83\80\83N\83\89\83X.
+ * \93ü\8fo\97Í\82È\82Ç\81A\83V\83X\83e\83\80\83\8a\83\\81[\83X\82Ö\82Ì\83A\83N\83Z\83X\82ð\92\8a\8fÛ\89»\82·\82é\82½\82ß\82É
+ * \92è\8b`\82³\82ê\82Ä\82¢\82é\83C\83\93\83^\81[\83t\83F\81[\83X\82Å\82·\81B
+ * sf::system::instance()\82Å\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^\81i\8eÀ\8dÛ\82Í\8eÀ\91\95\83N\83\89\83X\82Ì\83C\83\93\83X\83^\83\93\83X\82Ì\83|\83C\83\93\83^\82ð\83L\83\83\83X\83g\82µ\82½\82à\82Ì\81j\82ð\8eæ\93¾\82µ\81A\83A\83N\83Z\83X\82µ\82Ü\82·\81B
+ */
+class System
+{
+       // LIFECYCLE
+public:
+       /// \83R\83\93\83X\83g\83\89\83N\83^(\83_\83~\81[)
+       System(){}; ///< \83R\83\93\83X\83g\83\89\83N\83^(\83_\83~\81[).
+       /// \83f\83X\83g\83\89\83N\83^\81i\83_\83~\81[\81j
+       virtual ~System(){}; ////< \83f\83X\83g\83\89\83N\83^(\83_\83~\81[).
+       // OPERATORS
+
+       // OPERATIONS
+
+       virtual void wait(void) = 0; ///< \8e\9f\82Ì\83t\83\8c\81[\83\80\82Ì\83^\83C\83~\83\93\83O\82Ü\82Å\91Ò\82Â
+       
+       /** \83G\83\89\81[\83\81\83b\83Z\81[\83W\82ð\95\\8e¦\82µ\82Ä\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82ð\8fI\97¹\82·\82é.
+        * \83G\83\89\81[\83\81\83b\83Z\81[\83W\83_\83C\83A\83\8d\83O\82ð\95\\8e¦(Windows\8cn\82Ì\8fê\8d\87)\82µ\82Ä\81A\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82ð\8fI\97¹\82µ\82Ü\82·\81B
+        * @param errString \8fo\97Í\95\8e\9a\97ñ\82Ö\82Ì\83|\83C\83\93\83^ */
+       virtual void errorTerminate(const wchar_t *errString) = 0;
+       /** \83G\83\89\81[\83\81\83b\83Z\81[\83W\82ð\95\\8e¦\82·\82é.
+        * @param errString \8fo\97Í\95\8e\9a\97ñ\82Ö\82Ì\83|\83C\83\93\83^ */
+       virtual void outputError(const wchar_t *errString) = 0;
+
+       // ACCESS
+       
+       /** \83t\83\8c\81[\83\80\8aÔ\8au\82ð\90Ý\92è\82·\82é. 
+        * @param msValue 1\83t\83\8c\81[\83\80\82Ì\8aÔ\8au\82ðms\92P\88Ê\82Å\8ew\92è\82·\82é */
+       virtual void timerInterval(const unsigned long msValue) = 0;
+       
+       /** \83t\83\8c\81[\83\80\8aÔ\8au\82ð\8eæ\93¾\82·\82é
+        * @return 1\83t\83\8c\81[\83\80\82Ì\8aÔ\8au(ms) */
+       virtual const unsigned long timerInterval (void) const = 0;
+       
+       /** ms\92P\88Ê\82Ì\83V\83X\83e\83\80\8e\9e\8aÔ\82ð\8eæ\93¾\82·\82é.
+        * @return ms\92P\88Ê\82Ì\83V\83X\83e\83\80\8e\9e\8aÔ */
+       virtual const DWORD     time(void) const = 0;
+
+       /** \83R\83\93\83\\81[\83\8b\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^\82ð\8eæ\93¾\82·\82é.
+        * \95`\89æ(\83X\83v\83\89\83C\83g\81E\94w\8ci\89æ\91\9c\97p\82Ì\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^\82ð\8eæ\93¾\82µ\82Ü\82·\81B
+        * \89æ\96Ê\82Ö\82Ì\95`\89æ\8dì\8bÆ\82Í\82±\82Ì\83|\83C\83\93\83^\82ð\92Ê\82\82Ä\8ds\82í\82ê\82Ü\82·\81B
+        * @return Console \83C\83\93\83^\81[\83t\83F\81[\83X\82Ö\82Ì\83|\83C\83\93\83^ */
+       virtual console::Console * const console(void) = 0;
+
+       /** \83T\83E\83\93\83h\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^\82ð\8eæ\93¾\82·\82é.
+        * \83T\83E\83\93\83h\8fo\97Í\81iBGM\81E\8cø\89Ê\89¹\81j\97p\82Ì\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^\82ð\8eæ\93¾\82µ\82Ü\82·\81B
+        * \83T\83E\83\93\83h\8fo\97Í\82Í\82±\82Ì\83|\83C\83\93\83^\82ð\92Ê\82\82Ä\8ds\82í\82ê\82Ü\82·\81B
+        * @return Sound \83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^ */
+       virtual sound::Sound * const sound(void) = 0;
+       
+       /** \93ü\97Í\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^\82ð\8eæ\93¾\82·\82é.
+        * \93ü\97Í\81i\83L\81[\83{\81[\83h\81E\83}\83E\83X\81E\83W\83\87\83C\83X\83e\83B\83b\83N\81j\97p\82Ì\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^\82ð\8eæ\93¾\82µ\82Ü\82·.
+        * @return Input \83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^ */
+       virtual input::Input * const input(void) = 0;
+
+       /** \83\81\83C\83\93\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^\82ð\8eæ\93¾\82·\82é.
+        * \83Q\81[\83\80\83A\83v\83\8a\83P\81[\83V\83\87\83\93\83\81\83C\83\93\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^\82ð\8eæ\93¾\82µ\82Ü\82·\81B
+        * \82±\82Ì\83C\83\93\83^\81[\83t\83F\81[\83X\82Í\81AScene\82ð\83R\83\93\83g\83\8d\81[\83\8b\82·\82é\82½\82ß\82É\82 \82è\82Ü\82·\81B
+        * @return Main \83C\83\93\83^\81[\83t\83F\81[\83X\82Ö\82Ì\83|\83C\83\93\83^ */
+       virtual application::Main * const main() = 0;
+       
+       /** \83\81\83C\83\93\83C\83\93\83^\81[\83t\83F\81[\83X\82Ö\82Ì\83|\83C\83\93\83^\82ð\83Z\83b\83g\82·\82é 
+        * @return pMain \83\81\83C\83\93\83C\83\93\83^\81[\83t\83F\81[\83X\82Ö\82Ì\83|\83C\83\93\83^
+        */
+       virtual void main(application::Main * const pMain ) = 0;
+       
+       /** 30FPS\82Æ\82Ì\94ä\97¦\82ð\8eæ\93¾\82·\82é.
+        * \82±\82Ì\92l\82Í1\83t\83\8c\81[\83\80\82Å\82Ì\88Ú\93®\95¨\91Ì\82Ì\88Ú\93®\8aî\8f\80\92l\82Æ\82È\82è\81A30FPS\82Ì\8fê\8d\871.0f\81A60FPS\82Ì\8fê\8d\87\96ñ0.5f\82Æ\82È\82è\82Ü\82·\81B
+        * \83V\83X\83e\83\80\82Ì\83f\83t\83H\83\8b\83g\82Í30FPS\82Å\82 \82é\82Ì\82Å\81A60FPS\82È\82Ç\82É\82µ\82½\8fê\8d\87\81A\93G\82Ì\88Ú\93®\91¬\93x\82ª\94{\82É\82È\82é\82Ì\82Å\83Q\81[\83\80\82É\82È\82è\82Ü\82¹\82ñ\81B
+        * \82»\82Ì\82æ\82¤\82È\8fê\8d\87\82±\82ÌdeltaTime\82Ì\92l\82ð\97\98\97p\82µ\82Ä\93G\82Ì\88Ú\93®\91¬\93x\82ð\92²\90®\82µ\82Ü\82·\81B
+        * @return \94ä\97¦(TIMER_INTERVAL / 32.0f) */
+       virtual const float deltaTime(void) = 0;
+       
+       /** \8c»\8dÝ\82ÌFPS\82ð\8eæ\93¾\82·\82é.
+        * \8c»\8dÝ\90Ý\92è\82³\82ê\82Ä\82¢\82éFPS\92l\82ð\8eæ\93¾\82µ\82Ü\82·
+        * @return FPS\92l */
+       virtual const float     framePerSec(void) = 0;
+       
+       // INQUIRY
+       /** \83V\83X\83e\83\80\82ª\83A\83N\83e\83B\83u\82Å\82 \82é\82©\82Ç\82¤\82©\96â\82¢\8d\87\82í\82¹\82é
+        * @retval true \8a\88\93®\92\86
+        * @retval false \8a\88\93®\92\86\82Å\82È\82¢\82Ì\82ÅSystem\83C\83\93\83^\81[\83t\83F\81[\83X\82Í\8eg\97p\82Å\82«\82Ü\82¹\82ñ*/
+        virtual bool isActive(void) = 0;
+}; // System
+
+/** System\83C\83\93\83X\83^\83\93\83X\82Ö\82Ì\83|\83C\83\93\83^\82ð\93¾\82é.
+ * System\83C\83\93\83^\81[\83t\83F\81[\83X\82Ö\82Ì\83|\83C\83\93\83^\82ð\8eæ\93¾\82µ\82Ü\82·\81B
+ * \82±\82Ì\83\81\83\\83b\83h\82ð\8eg\97p\82µ\82Ä\81ASystem\83C\83\93\83^\81[\83t\83F\81[\83X\82ð\8eæ\93¾\82µ\81A\83V\83X\83e\83\80\83\8a\83\\81[\83X\82É\83A\83N\83Z\83X\82µ\82Ü\82·\81B
+ * @return System \83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^ */
+SFDLL System * const instance(void);
+
+} // namespace system
+} // namespace sf
+}
+#endif // !defined(AFX_System_H__DD8D138F_B5A2_4C7B_B543_6BCE1BFB1ED5__INCLUDED_)
diff --git a/project/sfglib/SystemImpl.cpp b/project/sfglib/SystemImpl.cpp
new file mode 100644 (file)
index 0000000..3522896
--- /dev/null
@@ -0,0 +1,484 @@
+/** 
+ * @file
+ * @brief System \83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8eÀ\91\95\83N\83\89\83X
+ *
+ * @author S.F.
+ * @version $Id:
+ * \8aO\95\94\81H\82©\82ç\82ÍSystem\83C\83\93\83^\81[\83t\83F\81[\83X\82ð\92Ê\82µ\82Ä\83A\83N\83Z\83X\82³\82¹\82é\82±\82Æ\82Å\81AOS\8fL\82¢
+ * \8f\88\97\9d\82ð\82·\82×\82Ä\8eÀ\91\95\83N\83\89\83X\82Ì\92\86\82É\95\95\82\8d\9e\82ß\82Ü\82·\81B
+ * 2001/3/13 \82Õ\82æ\81[\82ñ\82³\82ñ\82Ì\83\89\83C\83u\83\89\83\8a\82ð\8eQ\8dl\82ÉWindows\83\81\83b\83Z\81[\83W\8f\88\97\9d\95û\96@\82ð\95Ï\8dX
+ * (\8eQ\8fÆ\81E\97\98\97p\82Ì\8b\96\89Â\82Í\82Õ\82æ\81[\82ñ\82³\82ñ(http://puyon.pns.to/)\82æ\82è\82¢\82½\82¾\82¢\82Ä\82Ü\82·\81B)
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved. */
+
+#pragma warning( disable : 4786 )      //STL\82Ì\8cx\8d\90\8aO\82µ
+#include "sfdebug.h"
+
+
+// SYSTEM INCLUDES
+//
+//#define INITGUID
+
+#define WIN32_LEAN_AND_MEAN
+
+#include "math.h"
+#include <list>
+#include <queue>
+#include <memory>
+#include <map>
+#include <iostream>
+#include <strstream>
+
+#include "windows.h"
+#include "windowsx.h"
+#include "d3d9.h"
+#include "d3dx9.h"
+//#include "dmusici.h"
+#include "mmsystem.h"
+#include "dinput.h"
+#include "dxerr8sf.h"
+
+// PROJECT INCLUDES
+//
+
+#include "exception.h"
+#include "resource.h"
+#include "System.h"
+#include "Console.h"
+#include "Obj.h"
+#include "singleton.h"
+#include "AbstractSprite.h"
+#include "ConsoleImpl.h"       
+#include "SoundImpl.h"
+#include "InputImpl.h"
+#include "Main.h"
+#include "SystemWin32.h"
+#include "SystemImpl.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+
+// LOCAL INCLUDES
+//
+
+// FORWARD REFERENCES
+//
+
+// namespace
+namespace sf {
+       namespace system {
+// constant
+
+System * const instance(void)
+{ 
+       return SystemImpl::instance();
+}// getInstance()
+
+const wchar_t SystemImpl::smAppName[] = L"Shooting Game!";     // constant
+
+// \83V\83\93\83O\83\8b\83g\83\93\83p\83^\81[\83\93\82ð\92[\90Ü\82é\82½\82ß\82Ì\83}\83N\83\8d
+IMPLEMENT_SINGLETON(SystemImpl,SystemImpl);
+
+// \83R\83\93\83X\83g\83\89\83N\83^ -------------------------------------------------------------
+SystemImpl::SystemImpl()
+{
+       // \82à\82ë\82à\82ë\82Ì\8f\89\8aú\89»\8f\88\97\9d
+       mIsWindowActive = false;
+       mpConsole = NULL;
+       mpSound = NULL;
+       mpInput = NULL;
+       mpMain = NULL;
+       mTimerInterval = TIMER_INTERVAL;
+       mbWindowed = false;
+       mTimerElapsed = 0;
+       mTimerValue = timeGetTime();
+       mTimerBefore = mTimerValue;
+
+       mFrameStep = (float)(TIMER_INTERVAL) / 32.0f;
+       mFramePerSec = 1000.0f / (float)TIMER_INTERVAL;
+
+       // COM \82Ì\8f\89\8aú\89»
+       CoInitialize(NULL);
+
+}// SystemImpl()
+
+
+// \83f\83X\83g\83\89\83N\83^ ---------------------------------------------------------------
+SystemImpl::~SystemImpl()
+{
+       OutputDebugString("~SystemImpl()");
+       uninitialize();
+       CoUninitialize();
+}// ~SystemImpl()
+
+/*! \8fI\97¹\8f\88\97\9d\82ð\8ds\82¤
+\81@\8aJ\95ú\82µ\82È\82¯\82ê\82Î\82È\82ç\82È\82¢\83|\83C\83\93\83^\81ACOM\83I\83u\83W\83F\83N\83g\82È\82Ç\82Ì\8f\88\97\9d\82Í\82·\82×\82Ä\82±\82±\82Å\8ds\82¢\82Ü\82· */
+void SystemImpl::uninitialize(void)
+{
+       // Console\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8aJ\95ú
+       if(mpConsole){
+               delete mpConsole;
+               mpConsole = NULL;
+       }
+
+       // Main\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8aJ\95ú
+       // auto_ptr\82È\82Ì\82Ådelete\82Í\82È\82µ
+       if(mpMain){
+       
+               mpMain = NULL;
+       }
+
+       // Sound\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8aJ\95ú
+       if(mpSound)
+       {
+               delete mpSound;
+               mpSound = NULL;
+       }
+
+       // Input\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8aJ\95ú
+       if(mpInput)
+       {
+               delete mpInput;
+               mpInput = NULL;
+       }
+       
+       // WindowMessageMap\82Ì\8aJ\95ú
+       WindowMessageMap::iterator it;
+       for(it = mWindowMessageMap.begin();it != mWindowMessageMap.end();++it)
+       {
+               if((*it).second){
+                       delete ((*it).second);
+               }
+       }
+       mWindowMessageMap.erase(mWindowMessageMap.begin(),mWindowMessageMap.end());
+
+}
+
+// Windows\83\81\83C\83\93 --------------------------------------------------------------
+// Windows\82­\82Á\82³\82¢\95\94\95ª
+int SystemImpl::winMain (const HINSTANCE hThisInstance, const HINSTANCE hPrevInstance,
+                                       const LPSTR lpszCmdParam, const int nCmdShow)
+{
+       MSG msg;
+
+       //      HWND mHWNDMain;
+       // \83f\83o\83b\83O\97p
+
+
+       setupMessageMap();
+
+       //\83E\83B\83\93\83h\83E\83N\83\89\83X\82Ì\93o\98^//
+       
+       //\94\92\83{\83e\81H\82Ì\83E\83C\83\93\83h\83E\82ð\8dì\90¬\82·\82é\81B
+       WNDCLASSW    wndclass;
+    
+       wndclass.style         = CS_DBLCLKS;   
+       wndclass.lpfnWndProc   = &wndFunc;       // window function
+       wndclass.cbClsExtra    = 0;                      // no extra count of bytes
+       wndclass.cbWndExtra    = 0;                      // no extra count of bytes
+       wndclass.hInstance     = hThisInstance; // this instance
+       wndclass.hIcon         = LoadIcon (hThisInstance,  MAKEINTRESOURCE(IDI_ICON1));
+       wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW);
+       wndclass.hbrBackground = (HBRUSH)GetStockObject (WHITE_BRUSH);
+       wndclass.lpszMenuName  = NULL;          //\83\81\83j\83\85\81[\82È\82µ\82Ì\83E\83C\83\93\83h\83E
+       //MAKEINTRESOURCE (IDR_MENU1);;
+    wndclass.lpszClassName = smAppName;        // \83A\83v\83\8a\82Ì\96¼\91O
+   
+       RegisterClassW (&wndclass);
+//WS_EX_TOPMOST
+       //\81@\82±\82Ì\95Ó\82Í\82Ù\82ñ\82Æ\82ÍConsole\83N\83\89\83X\82Ì\8eÀ\91\95\83N\83\89\83X\82É\93ü\82ê\82½\82¢\82Ì\82¾\82ª...        
+    mHWNDMain = CreateWindowExW (
+               WS_EX_APPWINDOW,                                // window style
+               smAppName,                                      // window class name
+               smAppName,      // window caption
+               WS_VISIBLE | WS_POPUP | WS_SYSMENU, // window style
+               CW_USEDEFAULT,                  // initial x position
+               CW_USEDEFAULT,         // initial y position
+               console::screen::WIDTH,                   // initial x size
+               console::screen::HEIGHT,                   // initial y size
+               NULL,                  // parent window handle
+               NULL,                  // window menu handle
+               hThisInstance,         // program instance handle
+               NULL);                 // creation parameters
+
+    // \8dì\82ê\82È\82¢\8fê\8d\87 \8fI\97¹
+       if (!mHWNDMain)
+               return FALSE;
+
+       ShowWindow (mHWNDMain, nCmdShow);
+       UpdateWindow (mHWNDMain);
+       SetFocus(mHWNDMain);
+
+       
+
+#ifdef _DEBUG
+       mbWindowed = true;
+#endif
+       try {
+               // \89æ\96Ê\83I\83u\83W\83F\83N\83g\82ð\90\90¬ 
+               mpConsole = new console::ConsoleImpl(mHWNDMain,mbWindowed);
+               mpConsole->initialize();
+               
+               // \83T\83E\83\93\83h\83I\83u\83W\83F\83N\83g\82ð\90\90¬
+               mpSound = new sound::SoundImpl();
+               mpSound->initialize();
+       
+               // \83C\83\93\83v\83b\83g\83f\83o\83C\83X\83I\83u\83W\83F\83N\83g\82Ì\90\90¬
+               mpInput = new input::InputImpl(mHWNDMain);
+               mpInput->initialize();
+
+               //\89æ\96Ê\82ª\97\8e\82¿\92\85\82­\82Ü\82Å... 
+               Sleep(3000);
+
+               // \83\81\83C\83\93\83I\83u\83W\83F\83N\83g\82Ì\90\90¬
+//             mpMain = ::sf::application::Maininstance();
+               mpMain->initialize();
+
+       } catch (FatalErrorException& e) {
+               errorTerminate(e.getDefaultMessage());
+               return FALSE;
+       } catch (RecoverbleErrorException& e) {
+               using namespace sf::system;
+               switch(e.errorType()){
+               case Exception::SCENE_IS_EMPTY:
+                       return TRUE;
+                       break;
+               default:
+                       throw;
+               }
+       } catch (...) {
+               throw;
+       }
+       
+       // \83^\83C\83}\81[\82Ì\95ª\89ð\94\\82ð\82 \82°\82é\8f\88\97\9d
+       initTimer();
+       
+//     HANDLE hProcess;
+//     hProcess = GetCurrentProcess();
+//     SetPriorityClass(hProcess,CRITICAL_PRIORITY_CLASS);
+
+       // \83\81\83b\83Z\81[\83W\83\8b\81[\83v
+       // \82¿\82å\82Á\82Æ\82±\82Ì\95Ó\82ª\81A\95\81\92Ê\82ÌWindows\83A\83v\83\8a\82Æ\88á\82¤\95\94\95ª\81B
+       //  Window\83\81\83b\83Z\81[\83W\82ª\82È\82¢\8fê\8d\87\82Í\81A\83\81\83C\83\93\82ð\8cÄ\82Ñ\8fo\82·\81B
+       while(1)
+       {
+               if (PeekMessage( &msg, NULL, 0, 0, PM_NOREMOVE))
+               {
+                       if (!GetMessage( &msg, NULL, 0, 0))
+                       {
+                               return msg.wParam;
+                       }
+                       TranslateMessage(&msg);
+                       DispatchMessage(&msg);
+               }
+               else        
+               {
+                       if(isWindowActive())
+                       {
+                               try{
+                                       wait();
+                                       // \89æ\96Ê\8dX\90
+                                       mpConsole->update();
+                                       // \93ü\97Í\83f\83o\83C\83X\82Ì\83X\83i\83b\83v\83V\83\87\83b\83g\82ð\8eæ\93¾
+                                       mpInput->update();
+                                       mpSound->update();
+                                       
+                                       mpMain->run();
+//#ifdef _DEBUG
+                                       mpConsole->print(0,console::viewport::X + 8,0.0f,0.0f,1.0f,0xffffffff,"%d ms ",mTimerElapsed);
+//#endif
+                                       // \8f\88\97\9d\8e\9e\8aÔ
+                                       mTimerElapsed = timeGetTime() - mTimerValue;
+                                       } catch (FatalErrorException e) {
+                                               delete mpConsole;
+                                               mpConsole = NULL;
+                                               errorTerminate(e.getDefaultMessage());
+                                               windowActivate(false);
+                                       } catch (RecoverbleErrorException e) {
+                                               PostMessage( mHWNDMain, WM_CLOSE, 0, 0L );
+                                               windowActivate(false);
+                                       } catch (...) {
+                                               throw;
+                                       }
+                       }
+               } 
+       }
+}
+
+// Window Function ------------------------------------------------------------
+//     \82Ù\82ñ\82Æ\82É\8e©\95ª\82Ì\82í\82©\82é\94Í\88Í\82Ì\8dÅ\92á\8cÀ\82Ì\83C\83x\83\93\83g\8f\88\97\9d\82µ\82©\82µ\82Ä\82¢\82È\82¢\82Ì\82Å\8aÈ\92P\82Å\82·\81B
+LRESULT CALLBACK SystemImpl::wndFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+       // iSystem\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\82Ü\82Ü\82Å\82Í\81A\8bï\8fÛ\83N\83\89\83X\82Ì\83v\83\89\83C\83x\81[\83g\83\81\83\\83b\83h\82ª
+       // \8cÄ\82Ñ\8fo\82¹\82È\82¢\82Ì\82Å\81A\83_\83C\83i\83~\83b\83N\83L\83\83\83X\83g
+       
+       SystemImpl *pSysSystemImpl = dynamic_cast<SystemImpl *>(instance());
+       
+       if(pSysSystemImpl == NULL)
+               return DefWindowProc (hwnd, message, wParam, lParam);
+
+       WindowMessage *pmessage = pSysSystemImpl->mWindowMessageMap[message]; 
+
+       if(pmessage)
+               return pmessage->call(hwnd,wParam,lParam);
+       
+       // message\95ª\8aò 
+       switch (message)
+       {
+        case WM_SYSCOMMAND:
+                       return pSysSystemImpl->onSysCommand(hwnd,wParam,lParam);
+               // \8fI\97¹\82·\82é\82Æ\82«\82Ì\8f\88\97\9d
+               case WM_CLOSE:
+                       pSysSystemImpl->uninitialize();
+               DestroyWindow( hwnd );
+                       return 0;
+          case WM_DESTROY:
+                 PostQuitMessage(0);      //terminate the application
+                 return 0;
+               default:
+                       break;
+    }
+
+       // \82»\82Ì\91¼\82ÍWindows\82É\82¨\94C\82¹ 
+    return DefWindowProc (hwnd, message, wParam, lParam);
+}// WndFunc
+
+// Windows\82©\82ç\82Ì\95`\89æ\97v\8b\81 --------------------------------------------------
+LRESULT SystemImpl::onPaint(const HWND hwnd, const WPARAM wParam, const LPARAM lParam)
+{
+//   return DefWindowProc (hwnd, WM_PAINT, wParam, lParam);
+       if(!mpConsole || !mpConsole->isEnabled())
+               {
+                       PAINTSTRUCT ps;
+                       HDC hDC = BeginPaint (hwnd, &ps);
+                       std::string strMessage("\8f\89\8aú\89»\92\86");
+                       TextOut(hDC,0,0,strMessage.c_str(),strMessage.length());
+                       EndPaint(hwnd, &ps );   
+               }
+       ValidateRect(hwnd,NULL);                
+       return 1;
+}// onPaint()
+
+// Window\82ª\83A\83N\83e\83B\83u\81A\94ñ\83A\83N\83e\83B\83u\8e\9e\82Ì\8f\88\97\9d -----------------------------------
+LRESULT SystemImpl::onActivate(const HWND hwnd, const WPARAM wParam, const LPARAM lParam)
+{
+       if((BOOL)wParam){
+               windowActivate(true);
+       } else {
+               windowActivate(false);
+       }
+       return 0;
+}
+
+
+// \83\81\83j\83\85\81[\91I\91ð\82Ì\8e\9e -----------------------------------------------------------
+LRESULT SystemImpl::onCommand(const HWND hwnd, const WPARAM wParam, const LPARAM lParam)
+{
+       // \8c»\8dÝ\82Í\96³\8e\8b\8fó\91Ô
+    // Let Default Window Proc handle it for us.
+    return DefWindowProc (hwnd, WM_COMMAND, wParam, lParam);
+} // onCommand
+
+
+
+// \83T\83C\83Y\95Ï\8dX\83C\83x\83\93\83g ---------------------------------------------------------
+LRESULT SystemImpl::onSize(const HWND hwnd,const WPARAM wParam,const LPARAM lParam)
+{
+       return 0;
+}// onSize()
+
+// 
+LRESULT                SystemImpl::onSysCommand(const HWND hwnd, const WPARAM wParam, const LPARAM lParam)
+{
+       // Prevent moving/sizing and power loss in fullscreen mode
+       switch( wParam )
+       {
+       case SC_MOVE:
+       case SC_SIZE:
+       case SC_MAXIMIZE:
+       case SC_KEYMENU:
+       case SC_MONITORPOWER:
+               if(mbWindowed == false)
+                       return 1;
+               break;
+       }
+       return DefWindowProc (hwnd, WM_SYSCOMMAND,wParam, lParam);
+}
+
+
+// \83^\83C\83}\81[\82Ì\8f\89\8aú\89»\8f\88\97\9d -------------------------------------------------------
+void SystemImpl::initTimer(void)
+{
+       const UINT TARGET_RESOLUTION  = 1 ;// 1-millisecond target resolution
+
+       ::TIMECAPS tc;
+       UINT timer_res;
+
+       if (timeGetDevCaps(&tc, sizeof(TIMECAPS)) == TIMERR_NOERROR) 
+       {
+               timer_res = min(max(tc.wPeriodMin, TARGET_RESOLUTION), tc.wPeriodMax);
+               timeBeginPeriod(timer_res); 
+       }
+}// initTimer()
+
+// \8ew\92è\82µ\82½tick(ms)\82Ü\82Å\83E\83F\83C\83g ------------------------------------------------
+void SystemImpl::wait(void)
+{
+
+               DWORD now = timeGetTime();
+               
+               DWORD rem = now % mTimerInterval;
+               DWORD wait_time = (now / mTimerInterval + ((rem > 0)?1:0)) * mTimerInterval ;
+//             DWORD wait_time = (mTimerValue / mTimerInterval + 1) * mTimerInterval ;
+
+               DWORD wait_time_tick = wait_time - now;
+
+               if(wait_time_tick > 4) 
+                       Sleep(wait_time_tick - 3);
+
+               while(wait_time > timeGetTime());
+               mTimerBefore = mTimerValue;
+               mTimerValue = timeGetTime();
+
+}// wait()
+
+// \83G\83\89\81[\82ð\95\\8e¦\82µ\82Ä\83A\83v\83\8a\83P\81[\83V\83\87\83\93\82ð\8fI\97¹\82·\82é --------------------------------- 
+void SystemImpl::errorTerminate(const wchar_t *errString)
+{
+       outputError(errString);
+       SendMessage( mHWNDMain, WM_CLOSE, 0, 0 );
+}// errorTerminate()
+
+// \83G\83\89\81[\95\\8e¦ -----------------------------------------------------------------
+void SystemImpl::outputError(const wchar_t *errString)
+{      std::wstring err_string = L"Error Occured!\r\n";
+       //strncat(err_string,errString,sizeof(err_string) - strlen(err_string));
+       err_string += errString;
+       MessageBoxW( NULL, err_string.c_str(),
+               smAppName,
+               MB_TOPMOST | MB_SETFOREGROUND | MB_TASKMODAL | MB_ICONERROR | MB_OK );
+}// outputError()
+
+// \83\81\83b\83Z\81[\83W\83}\83b\83v\82Ì\83Z\83b\83g\83A\83b\83\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|\81|
+void SystemImpl::setupMessageMap()
+{
+/*     mWindowMessageMap[WM_PAINT] = new WindowMessageImpl<SystemImpl>(this,&SystemImpl::onPaint);
+       mWindowMessageMap[WM_ACTIVATEAPP] = new WindowMessageImpl<SystemImpl>(this,&SystemImpl::onActivate);
+       mWindowMessageMap[WM_COMMAND] = new WindowMessageImpl<SystemImpl>(this,&SystemImpl::onCommand);
+//     mWindowMessageMap[WM_KEYDOWN] = new WindowMessageImpl<SystemImpl>(this,&SystemImpl::onKeyDown);
+       mWindowMessageMap[WM_SIZE] = new WindowMessageImpl<SystemImpl>(this,&SystemImpl::onSize);
+*/
+       addWindowMessage(WM_PAINT,new WindowMessageImpl<SystemImpl>(this,&SystemImpl::onPaint));
+       mWindowMessageMap[WM_ACTIVATEAPP] = new WindowMessageImpl<SystemImpl>(this,&SystemImpl::onActivate);
+       mWindowMessageMap[WM_COMMAND] = new WindowMessageImpl<SystemImpl>(this,&SystemImpl::onCommand);
+//     mWindowMessageMap[WM_KEYDOWN] = new WindowMessageImpl<SystemImpl>(this,&SystemImpl::onKeyDown);
+       addWindowMessage(WM_SIZE,new WindowMessageImpl<SystemImpl>(this,&SystemImpl::onSize));
+
+
+}//setupMessageMap()
+
+
+}
+}// namespace sf
\ No newline at end of file
diff --git a/project/sfglib/SystemImpl.h b/project/sfglib/SystemImpl.h
new file mode 100644 (file)
index 0000000..b3aece6
--- /dev/null
@@ -0,0 +1,178 @@
+/** 
+ * @file
+ * @brief System \83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8eÀ\91\95\83N\83\89\83X\83N\83\89\83X
+ *
+ * @author S.F.
+ * @version $Id:
+ * 2001/3/13 \82Õ\82æ\81[\82ñ\82³\82ñ\82Ì\83\89\83C\83u\83\89\83\8a\82ð\8eQ\8dl\82ÉWindows\83\81\83b\83Z\81[\83W\8f\88\97\9d\95û\96@\82ð\95Ï\8dX
+ * (\8eQ\8fÆ\81E\97\98\97p\82Ì\8b\96\89Â\82Í\82Õ\82æ\81[\82ñ\82³\82ñ(http://puyon.pns.to/)\82æ\82è\82¢\82½\82¾\82¢\82Ä\82Ü\82·\81B)
+ * Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+#if !defined(AFX_SystemImpl_H__64DBDEBB_81F1_4542_AAF7_B212CB9F4604__INCLUDED_)
+/// \93ñ\8fd\83C\83\93\83N\83\8b\81[\83h\96h\8e~\82Ì\82½\82ß\82Ì\92è\8b`
+#define AFX_SystemImpl_H__64DBDEBB_81F1_4542_AAF7_B212CB9F4604__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "sf.h" 
+
+namespace sf {
+       namespace system {
+extern "C" {
+
+       /** @ref System \83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8eÀ\91\95\83N\83\89\83X. 
+        *
+        * \83V\83X\83e\83\80\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8eÀ\91\95\83N\83\89\83X\82Å\82·\81B
+        * \83V\83X\83e\83\80\83\8a\83\\81[\83X\97\98\97p\82·\82é\8dÛ\82Í\81ASystem \83C\83\93\83^\81[\83t\83F\81[\83X\82ð\8eg\97p\82µ\82Ü\82·\82ª\81A\8eÀ\8dÛ\82Í\89¼\91z\8aÖ\90\94\82Ì\8ed\91g\82Ý\82É\82æ\82è\81A\82±\82Ì\8eÀ\91\95\83N\83\89\83X\82Ì\83\81\83\\83b\83h\82ª\8cÄ\82Î\82ê\82Ü\82·\81B
+        * \82±\82ê\82Í\81AOS\82É\88Ë\91\82·\82é\95\94\95ª\82ð\82±\82Ì\83N\83\89\83X\82É\89B\95Á\82·\82é\82½\82ß\82É\8ds\82Á\82Ä\82¢\82Ü\82· */
+       class SystemImpl : public System,sf::system::Win32
+               {
+                       // Singleton\82ð\82Í\82µ\82å\82é\82½\82ß\82Ì\83}\83N\83\8d
+                       DECLARE_SINGLETON(SystemImpl)
+                       // LIFECYCLE //
+                       /// \83R\83\93\83X\83g\83\89\83N\83^
+                       SystemImpl();
+               public:
+                       /// \8f\88\97\9d\82·\82é\83E\83B\83\93\83h\83E\83\81\83b\83Z\81[\83W\82ð\8ai\94[\82·\82é
+                       typedef std::map<DWORD,WindowMessage * > WindowMessageMap;
+
+                       /// \83f\83X\83g\83\89\83N\83^
+                       virtual ~SystemImpl();
+                       // OPERATORS //
+                       // OPERATIONS //
+                       /** WinMain \82©\82ç\8cÄ\82Î\82ê\82é\83\81\83\\83b\83h.
+                        * WinMain()\93à\82©\82çSystemImpl\82ð\83C\83\93\83X\83^\83\93\83X\82ð\90\90¬\82µ\81A\82±\82Ì\83\81\83\\83b\83h\82ð\8cÄ\82Ñ\8fo\82µ\82Ü\82·\81B*/
+                       int winMain (const HINSTANCE hThisInstance, const HINSTANCE hPrevInstance,
+                               const LPSTR lpszCmdParam, const int nCmdShow);
+                       
+                       /** Windows\83C\83x\83\93\83\8f\88\97\9d\97p. */
+                       static LRESULT CALLBACK wndFunc(HWND hwnd, UINT message, WPARAM wParam,  LPARAM lParam);
+                       
+                       /** \8f\88\97\9d\82·\82é\83E\83B\83\93\83h\83E\83\81\83b\83Z\81[\83W\82ð\92Ç\89Á\82·\82é.
+                        * \8f\88\97\9d\82µ\82½\82¢\83E\83B\83\93\83h\83E\83\81\83b\83Z\81[\83W\82ð\82±\82±\82Å\92Ç\89Á\82µ\82Ü\82·\81B
+                        * \82±\82±\82Å\92Ç\89Á\82³\82ê\82È\82¢\83\81\83b\83Z\81[\83W\82Í\81A\83f\83t\83H\83\8b\83g\82Ì\8f\88\97\9d\82ª\8cÄ\82Î\82ê\82Ü\82·\81B
+                        * @param value \83E\83B\83\93\83h\83E\83\81\83b\83Z\81[\83W
+                        * @param pWindowMessage WindowMessage\82Ì\83|\83C\83\93\83^ */
+                       const bool addWindowMessage(const DWORD value,WindowMessage * pWindowMessage)
+                       {
+                               if(mWindowMessageMap[value] == NULL){
+                                       mWindowMessageMap[value] = pWindowMessage;
+                                       return true;
+                               } else {
+                                       return false;
+                               }
+                       };
+
+                       virtual void wait(void);
+                       // \83G\83\89\81[\95\\8e¦\82µ\82Ä\8fI\97¹
+                       virtual void errorTerminate(const wchar_t *errString);
+                       // \83G\83\89\81[\95\\8e¦
+                       virtual void outputError(const wchar_t *errString);
+
+                       // ACCESS //
+                       virtual void  timerInterval(const unsigned long msValue){mTimerInterval = msValue;};    
+                       virtual const unsigned long timerInterval(void) const {return mTimerInterval;};
+                       virtual const DWORD time (void) const { return timeGetTime();};
+                       
+                       virtual console::Console * const console(void){ return mpConsole;};
+                       virtual sound::Sound * const sound(void){ return mpSound;};
+                       virtual input::Input * const input(void){ return mpInput;};
+                       
+                       virtual application::Main * const main(){return mpMain;}
+                       virtual void main(application::Main * const pMain ){mpMain = pMain;}
+
+                       // INQUIRY //
+                       virtual bool isActive(void) {return mIsWindowActive;};
+                       virtual const float deltaTime(void){return mFrameStep;};
+                       virtual const float framePerSec(void){return mFramePerSec;};
+               private:
+                       /** \8fI\97¹\8f\88\97\9d.
+                        * \8aJ\95ú\82µ\82È\82­\82¢\82¯\82È\82¢\83\81\83\82\83\8a\81ARelease()\82µ\82È\82­\82Ä\82Í\82¢\82¯\82È\82¢COM\83C\83\93\83^\81[\83t\83F\81[\83X\82È\82Ç\82Í\82±\82±\82Å\8aJ\95ú\82µ\82Ü\82·\81B*/
+                       void uninitialize(void);
+
+                       /** \8c»\8dÝ\83E\83B\83\93\83h\83E\82ª\83A\83N\83e\83B\83u\82Å\82 \82é\82©\82Ç\82¤\82©\96â\82¢\8d\87\82í\82¹\82é.
+                        * @param true \83A\83N\83e\83B\83u\82Å\82 \82é
+                        * @param false \83A\83N\83e\83B\83u\82Å\82È\82¢ */
+                       const bool isWindowActive(void) const {return mIsWindowActive;};
+
+                       /** \8c»\8dÝ\83E\83B\83\93\83h\83E\82ª\83A\83N\83e\83B\83u\82Å\82 \82é\82©\82Ç\82¤\82©\90Ý\92è\82·\82é.
+                        * @param true \83A\83N\83e\83B\83u\82Å\82 \82é
+                        * @param false \83A\83N\83e\83B\83u\82Å\82È\82¢ */
+                       void windowActivate(const bool value){mIsWindowActive = value;};
+                       /** \93à\95\94\83^\83C\83}\81[\95Ï\90\94\82ð\8f\89\8aú\89»\82·\82é */
+                       void initTimer(void);
+                       /** mWindowMessageMap \82ð\83Z\83b\83g\83A\83b\83v\82·\82é */
+                       void setupMessageMap(void);
+                       
+
+                       // Window Events
+                       /** WM_ABOUT\83\81\83b\83Z\81[\83W\82Ì\8f\88\97\9d
+                        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b */
+                       LRESULT         onAbout(const HWND hwnd);
+
+                       /** WM_COMMAND\83\81\83b\83Z\81[\83W\82Ì\8f\88\97\9d
+                        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b 
+                        * @param wParam WPARAM 
+                        * @param lParam LPARAM */
+                       LRESULT         onCommand(const HWND hwnd,const WPARAM wParam, const LPARAM lParam);
+
+                       /** WM_ACTIVATE\83\81\83b\83Z\81[\83W\82Ì\8f\88\97\9d
+                        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b 
+                        * @param wParam WPARAM 
+                        * @param lParam LPARAM */
+                       LRESULT         onActivate(const HWND hwnd,const WPARAM wParam,const LPARAM lParam);
+
+                       /** WM_MOVE\83\81\83b\83Z\81[\83W\82Ì\8f\88\97\9d
+                        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b 
+                        * @param wParam WPARAM 
+                        * @param lParam LPARAM */
+                       LRESULT         onMove(const HWND hwnd,const WPARAM wParam,const LPARAM lParam);
+
+                       /** WM_SIZE\83\81\83b\83Z\81[\83W\82Ì\8f\88\97\9d
+                        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b 
+                        * @param wParam WPARAM 
+                        * @param lParam LPARAM */
+                       LRESULT         onSize(const HWND hwnd,const WPARAM wParam,const LPARAM lParam);
+
+                       /** WM_PAINT\83\81\83b\83Z\81[\83W\82Ì\8f\88\97\9d
+                        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b 
+                        * @param wParam WPARAM 
+                        * @param lParam LPARAM */
+                       LRESULT         onPaint(const HWND hwnd, const WPARAM wParam, const LPARAM lParam);
+
+                       /** WM_SYSCOMMAND\83\81\83b\83Z\81[\83W\82Ì\8f\88\97\9d
+                        * @param hwnd \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b 
+                        * @param wParam WPARAM 
+                        * @param lParam LPARAM */
+                       LRESULT         onSysCommand(const HWND hwnd, const WPARAM wParam, const LPARAM lParam);
+                       
+                       HWND            mHWNDMain;///< \83\81\83C\83\93\83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b
+
+                       console::Console        *mpConsole;///< console::Console\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^
+                       sound::Sound            *mpSound;///< sound::Sound\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^
+                       input::Input            *mpInput;///< input::Input\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^
+
+                       ::sf::application::Main                 *mpMain;///< ::sf::application::Main\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\83|\83C\83\93\83^
+                       
+                                               
+                       bool            mIsWindowActive;///< \8c»\8dÝ\83E\83B\83\93\83h\83E\82ª\83A\83N\83e\83B\83u\82©\82Ç\82¤\82©\81H
+                       bool            mbWindowed;///<\83E\83B\83\93\83h\83E\83\82\81[\83h\82©\83t\83\8b\83X\83N\83\8a\81[\83\93\83\82\81[\83h\82©\81H
+                       
+                       DWORD           mTimerInterval;///< \83t\83\8c\81[\83\80\88Û\8e\9d\83^\83C\83}\81[\82Ì\8aÔ\8au(ms)
+                       DWORD           mTimerValue;///< \8c»\8dÝ\82Ì\83^\83C\83}\81[\82Ì\92l(ms)
+                       DWORD           mTimerBefore;///< 1\83t\83\8c\81[\83\80\91O\82Ì\83^\83C\83}\81[\82Ì\92l(ms)
+                       DWORD           mTimerElapsed;///< 1\83t\83\8c\81[\83\80\92\86\82Ì\8f\94\81X\82Ì\8f\88\97\9d\82É\97v\82µ\82½\8e\9e\8aÔ(ms)
+
+                       WindowMessageMap mWindowMessageMap;///< \83E\83B\83\93\83h\83E\83\81\83b\83Z\81[\83W\83}\83b\83v
+                       float           mFrameStep;///< 1\83t\83\8c\81[\83\80\82Ì\8aî\96{\90\94\92l
+                       float           mFramePerSec;///< FPS\92l
+                       static          SystemImpl *pSystemImpl;///< \8e©\95ª\8e©\90g\82Ì\83|\83C\83\93\83^
+                       // constant
+                       static const wchar_t smAppName[];///< \83A\83v\83\8a\83P\81[\83V\83\87\83\93\96¼
+               };// SystemImpl
+               }
+       }// namespace system
+} // namespace sf
+#endif // !defined(AFX_SystemImpl_H__64DBDEBB_81F1_4542_AAF7_B212CB9F4604__INCLUDED_)
diff --git a/project/sfglib/SystemWin32.h b/project/sfglib/SystemWin32.h
new file mode 100644 (file)
index 0000000..7d5eead
--- /dev/null
@@ -0,0 +1,112 @@
+/**
+ * @file SystemWin32.h
+ * @brief Windows\82Ö\82Ì\83C\83\93\83^\81[\83t\83F\81[\83X\82Å\82·
+ *
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+/// \93ñ\8fd\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#if !defined(AFX_SYSTEMWIN32_H__9E630867_3321_4C17_8D1A_E0EAC93A1647__INCLUDED_)
+#define AFX_SYSTEMWIN32_H__9E630867_3321_4C17_8D1A_E0EAC93A1647__INCLUDED_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+#include "sfinterface.h"
+namespace sf {
+       namespace system {
+
+/** WindowMessage\83C\83\93\83^\81[\83t\83F\81[\83X. 
+ * Window\83\81\83b\83Z\81[\83W\82ð\8f\88\97\9d\82·\82é\82½\82ß\82Ì\83C\83\93\83^\81[\83t\83F\81[\83X\82Å\82·\81B
+ * \82±\82ê\82Í\81Astd::map\82Æ\91g\82Ý\8d\87\82í\82¹\82Ä\81AWindow\83\81\83b\83Z\81[\83W\82ð\8cø\97¦\93I\82É\8f\88\97\9d\82·\82é\82½\82ß\82É\92è\8b`\82³\82ê\82Ä\82¢\82Ü\82·\81B
+ * @note \82±\82Ì\95Ó\82Ì\8eÀ\91\95\82Ì\8dl\82¦\95û\82Í\81A<a href="http://puyon.pns.to/program/afl/h0003.html">\82Õ\82æ\82§\82ñ\82³\82ñ\82Ì\83\89\83C\83u\83\89\83\8a\82Ì\83y\81[\83W</a> \82ð\8eQ\8fÆ\82µ\82Ä\82­\82¾\82³\82¢\81B<br>
+ * \8eá\8a±\82Õ\82æ\82§\82ñ\82³\82ñ\82Ì\83\89\83C\83u\83\89\83\8a\82ð\93Á\89»\82µ\82Ä\82¢\82é\82Ô\82Ô\82ñ\82Í\82 \82è\82Ü\82·\81B*/
+class SF_INTERFACE WindowMessage
+{
+public:
+       /// \83f\83X\83g\83\89\83N\83^
+       virtual ~WindowMessage(){;};
+       /** \83\81\83b\83Z\81[\83W\8f\88\97\9d\82ð\8ds\82¤ 
+        * @param hwnd HWND \83E\83B\83\93\83h\83E\83n\83\93\83h\83\8b 
+        * @param wParam WPARAM 
+        * @param lParam LPARAM 
+        * @return LRESULT */
+       virtual LRESULT call(const HWND hwnd,const WPARAM wParam,const LPARAM lParam) = 0;
+};
+
+/** WindowMessage\83C\83\93\83^\81[\83t\83F\81[\83X\82Ì\8eÀ\91\95\83N\83\89\83X */
+template<class T> class WindowMessageImpl : public WindowMessage
+{
+public:
+       /// \83R\83\93\83X\83g\83\89\83N\83^
+       WindowMessageImpl();
+       /// \83f\83X\83g\83\89\83N\83^
+       virtual ~WindowMessageImpl(){}
+       /** \83R\83\93\83X\83g\83\89\83N\83^.
+     * @param pClass \8cÄ\82Ñ\8fo\82µ\82½\82¢\83\81\83\\83b\83h\82ð\97L\82µ\82Ä\82¢\82é\83N\83\89\83X\82Ì\83C\83\93\83X\83^\83\93\83X\82Ì\83|\83C\83\93\83^
+        * @param pAddress \8cÄ\82Ñ\8fo\82µ\82½\82¢\83\81\83\93\83o\83\81\83\\83b\83h\82Ì\83A\83h\83\8c\83X\82ª\93ü\82Á\82Ä\82¢\82é\83|\83C\83\93\83^ */
+       WindowMessageImpl(T* const pClass,LRESULT (T::* pAddress)(const HWND,const WPARAM,const LPARAM));
+       
+       /** \8cÄ\82Ñ\8fo\82µ\82½\82¢\83\81\83\\83b\83h\82Ì\8fî\95ñ\82ð\83Z\83b\83g\82·\82é. 
+     * @param pClass \8cÄ\82Ñ\8fo\82µ\82½\82¢\83\81\83\\83b\83h\82ð\97L\82µ\82Ä\82¢\82é\83N\83\89\83X\82Ì\83C\83\93\83X\83^\83\93\83X\82Ì\83|\83C\83\93\83^
+        * @param pAddress \8cÄ\82Ñ\8fo\82µ\82½\82¢\83\81\83\93\83o\83\81\83\\83b\83h\82Ì\83A\83h\83\8c\83X\82ª\93ü\82Á\82Ä\82¢\82é\83|\83C\83\93\83^ */
+       void setAddress(T* const pClass,LRESULT (T::* pAddress)(const HWND,const WPARAM,const LPARAM));
+
+       LRESULT call(const HWND hwnd,const WPARAM wParam,const LPARAM lParam);
+private:
+       T* mpClass;///< \8cÄ\82Ñ\8fo\82µ\82½\82¢\83\81\83\\83b\83h\82ª\93ü\82Á\82Ä\82¢\82é\83N\83\89\83X\82Ì\83C\83\93\83X\83^\83\93\83X\82Ì\83|\83C\83\93\83^
+       LRESULT (T::* mpAddress)(const HWND,const WPARAM,const LPARAM);///< \8cÄ\82Ñ\8fo\82µ\82½\82¢\83\81\83\93\83o\83\81\83\\83b\83h\82Ì\83A\83h\83\8c\83X
+};
+
+template<class T> WindowMessageImpl<T>::WindowMessageImpl()
+{
+       mpClass = NULL;
+       mpAddress = NULL;
+};
+
+template<class T> WindowMessageImpl<T>::WindowMessageImpl(T* const pClass,LRESULT (T::* pAddress)(const HWND,const WPARAM,const LPARAM))
+{
+       mpClass = pClass;
+       mpAddress = pAddress;
+};
+
+
+template<class T> void WindowMessageImpl<T>::setAddress(T* const pClass,LRESULT (T::* pAddress)(const HWND,const WPARAM,const LPARAM))
+{
+       mpClass = pClass;
+       mpAddress = pAddress;
+};
+
+template<class T> LRESULT WindowMessageImpl<T>::call(const HWND hwnd,const WPARAM wParam,const LPARAM lParam)
+{
+       if(mpClass && mpAddress)
+               return (mpClass->*mpAddress)(hwnd,wParam,lParam);
+       return 0;
+};
+
+/// Win32 \83C\83\93\83^\81[\83t\83F\81[\83X
+class SF_INTERFACE Win32  
+{
+public:
+       /// \83R\83\93\83X\83g\83\89\83N\83^
+       Win32(){};
+       /// \83f\83X\83g\83\89\83N\83^
+       virtual ~Win32(){};
+       
+       /// WinMain \83\89\83b\83p\81
+       virtual int winMain (const HINSTANCE hThisInstance, const HINSTANCE hPrevInstance,
+                       const LPSTR lpszCmdParam, const int nCmdShow) = 0;
+       
+       /** Window Message\82Ì\93o\98
+        * @param value Window\83\81\83b\83Z\81[\83W
+        * @param pWindowMessage WindowMessage\82Ì\83|\83C\83\93\83^ */
+       virtual const bool addWindowMessage(const DWORD value,WindowMessage * pWindowMessage) = 0;
+       
+};
+       }
+}
+
+#endif // !defined(AFX_SYSTEMWIN32_H__9E630867_3321_4C17_8D1A_E0EAC93A1647__INCLUDED_)
diff --git a/project/sfglib/dxerr8sf.h b/project/sfglib/dxerr8sf.h
new file mode 100644 (file)
index 0000000..6e1dd6a
--- /dev/null
@@ -0,0 +1,21 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+//     DX\83G\83\89\81[\95\\8e¦\97p
+//     \83{\81[\83\89\83\93\83h\83R\83\93\83p\83C\83\89\82É\91Î\89\9e\81H
+// $Log: dxerr8sf.h,v $
+// Revision 1.1  2001/10/21 12:12:36  fujiwara
+// (none)
+//
+// Revision 1.2  2001/05/12 00:50:48  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _BORLAND
+       #include "dxerr.h"
+#else
+//     #include "dxerr8.h"
+       #define DXGetErrorString8(X) "error occured!"
+#endif 
diff --git a/project/sfglib/icon1.ico b/project/sfglib/icon1.ico
new file mode 100644 (file)
index 0000000..c43c298
Binary files /dev/null and b/project/sfglib/icon1.ico differ
diff --git a/project/sfglib/lib/sfglib.lib b/project/sfglib/lib/sfglib.lib
new file mode 100644 (file)
index 0000000..8e65456
Binary files /dev/null and b/project/sfglib/lib/sfglib.lib differ
diff --git a/project/sfglib/make.err b/project/sfglib/make.err
new file mode 100644 (file)
index 0000000..be6aba6
--- /dev/null
@@ -0,0 +1,346 @@
+MAKE Version 5.2  Copyright (c) 1987, 2000 Borland
+       bcc32 -c -v -N -Od -WM- -WD -H -Hs -5 -a8 -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -DSFGLIB_EXPORTS -D_DEBUG .\AbstractSprite.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\AbstractSprite.cpp:
+\8cx\8d\90 W8058 .\System.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -N -Od -WM- -WD -H -Hs -5 -a8 -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -DSFGLIB_EXPORTS -D_DEBUG .\BackGround.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\BackGround.cpp:
+\8cx\8d\90 W8058 .\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8070 .\BackGround.cpp 147: \8aÖ\90\94\82Í\92l\82ð\95Ô\82·\82×\82«(\8aÖ\90\94 Background::unload() )
+       bcc32 -c -v -N -Od -WM- -WD -H -Hs -5 -a8 -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -DSFGLIB_EXPORTS -D_DEBUG .\ConsoleImpl.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\ConsoleImpl.cpp:
+\8cx\8d\90 W8058 .\System.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8004 .\ConsoleImpl.cpp 199: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 ConsoleImpl::initialize(HWND__ * const,const bool) )
+\8cx\8d\90 W8004 .\ConsoleImpl.cpp 557: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 ConsoleImpl::initNotManagedObjects() )
+       bcc32 -c -v -N -Od -WM- -WD -H -Hs -5 -a8 -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -DSFGLIB_EXPORTS -D_DEBUG .\Exception.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Exception.cpp:
+       bcc32 -c -v -N -Od -WM- -WD -H -Hs -5 -a8 -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -DSFGLIB_EXPORTS -D_DEBUG .\InputImpl.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\InputImpl.cpp:
+\8cx\8d\90 W8017 .\InputImpl.cpp 77: \83}\83N\83\8d '_WIN32_WINNT' \82Ì\8fd\95¡\92è\8b`
+\8cx\8d\90 W8058 .\System.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8004 .\InputImpl.cpp 187: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 InputImpl::initialize() )
+\8cx\8d\90 W8004 .\InputImpl.cpp 321: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 InputImpl::initJoystick() )
+\8cx\8d\90 W8004 .\InputImpl.cpp 369: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 InputImpl::initKeyboard() )
+\8cx\8d\90 W8057 .\InputImpl.cpp 656: \83p\83\89\83\81\81[\83^ 'lParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 InputImpl::onKeyDown(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\InputImpl.cpp 662: \83p\83\89\83\81\81[\83^ 'hwnd' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 InputImpl::onKeyUp(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\InputImpl.cpp 662: \83p\83\89\83\81\81[\83^ 'wParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 InputImpl::onKeyUp(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\InputImpl.cpp 662: \83p\83\89\83\81\81[\83^ 'lParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 InputImpl::onKeyUp(HWND__ * const,const unsigned int,const long) )
+       bcc32 -c -v -N -Od -WM- -WD -H -Hs -5 -a8 -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -DSFGLIB_EXPORTS -D_DEBUG .\Obj.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Obj.cpp:
+\8cx\8d\90 W8058 .\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -N -Od -WM- -WD -H -Hs -5 -a8 -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -DSFGLIB_EXPORTS -D_DEBUG .\Obj2D.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Obj2D.cpp:
+\8cx\8d\90 W8058 .\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -N -Od -WM- -WD -H -Hs -5 -a8 -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -DSFGLIB_EXPORTS -D_DEBUG .\Obj3D.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Obj3D.cpp:
+\8cx\8d\90 W8058 .\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -N -Od -WM- -WD -H -Hs -5 -a8 -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -DSFGLIB_EXPORTS -D_DEBUG .\Obj3DL.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Obj3DL.cpp:
+\8cx\8d\90 W8058 .\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -N -Od -WM- -WD -H -Hs -5 -a8 -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -DSFGLIB_EXPORTS -D_DEBUG .\ObjQuadrangle.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\ObjQuadrangle.cpp:
+\8cx\8d\90 W8058 .\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -N -Od -WM- -WD -H -Hs -5 -a8 -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -DSFGLIB_EXPORTS -D_DEBUG .\ObjRectangle.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\ObjRectangle.cpp:
+\8cx\8d\90 W8058 .\system.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -N -Od -WM- -WD -H -Hs -5 -a8 -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -DSFGLIB_EXPORTS -D_DEBUG .\sfglib.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\sfglib.cpp:
+\8cx\8d\90 W8057 .\sfglib.cpp 12: \83p\83\89\83\81\81[\83^ 'hModule' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 __stdcall DllMain(void *,unsigned long,void *) )
+\8cx\8d\90 W8057 .\sfglib.cpp 12: \83p\83\89\83\81\81[\83^ 'ul_reason_for_call' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 __stdcall DllMain(void *,unsigned long,void *) )
+\8cx\8d\90 W8057 .\sfglib.cpp 12: \83p\83\89\83\81\81[\83^ 'lpReserved' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 __stdcall DllMain(void *,unsigned long,void *) )
+       bcc32 -c -v -N -Od -WM- -WD -H -Hs -5 -a8 -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -DSFGLIB_EXPORTS -D_DEBUG .\SoundImpl.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\SoundImpl.cpp:
+\8cx\8d\90 W8058 .\System.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -N -Od -WM- -WD -H -Hs -5 -a8 -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -DSFGLIB_EXPORTS -D_DEBUG .\Sprite2D.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Sprite2D.cpp:
+\8cx\8d\90 W8058 .\System.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8004 .\Sprite2D.cpp 350: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 Sprite2D::draw(const ObjRectangle * const) )
+\8cx\8d\90 W8004 .\Sprite2D.cpp 442: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 Sprite2D::draw(const ObjQuadrangle * const) )
+       bcc32 -c -v -N -Od -WM- -WD -H -Hs -5 -a8 -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -DSFGLIB_EXPORTS -D_DEBUG .\Sprite3D.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\Sprite3D.cpp:
+\8cx\8d\90 W8058 .\System.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8004 .\Sprite3D.cpp 338: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 Sprite3D::draw(const Obj3DL * const) )
+       bcc32 -c -v -N -Od -WM- -WD -H -Hs -5 -a8 -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -DSFGLIB_EXPORTS -D_DEBUG .\SpriteMesh.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\SpriteMesh.cpp:
+\8cx\8d\90 W8058 .\System.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8004 .\SpriteMesh.cpp 183: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 SpriteMesh::load(const Info *,const _D3DFORMAT,const unsigned long) )
+\8cx\8d\90 W8004 .\SpriteMesh.cpp 259: 'hr' \82É\91ã\93ü\82µ\82½\92l\82Í\8eg\82í\82ê\82Ä\82¢\82È\82¢(\8aÖ\90\94 SpriteMesh::draw(const Obj3DL * const) )
+       bcc32 -c -v -N -Od -WM- -WD -H -Hs -5 -a8 -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -DSFGLIB_EXPORTS -D_DEBUG .\StdAfx.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\StdAfx.cpp:
+\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\82Ì\93Ç\82Ý\8d\9e\82Ý
+       bcc32 -c -v -N -Od -WM- -WD -H -Hs -5 -a8 -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -DSFGLIB_EXPORTS -D_DEBUG .\System.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\System.cpp:
+\8cx\8d\90 W8058 .\System.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+       bcc32 -c -v -N -Od -WM- -WD -H -Hs -5 -a8 -I"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" -DWINVER=0x400 -D_WIN32_IE=0x300 -D_WIN32_WINNT=0x400 -n.\obj -VM -Dsinf=(float)sin -Dcosf=(float)cos -Dasinf=(float)asin -Dacosf=(float)acos -Dsqrtf=(float)sqrt -Dexpf=(float)exp -D_BORLAND -DSFGLIB_EXPORTS -D_DEBUG .\SystemImpl.cpp
+Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
+.\SystemImpl.cpp:
+\8cx\8d\90 W8058 .\System.h 45: \83w\83b\83_\82É\8f\89\8aú\89»\83f\81[\83^\82ª\8aÜ\82Ü\82ê\82Ä\82¢\82é\82½\82ß\83v\83\8a\83R\83\93\83p\83C\83\8b\83w\83b\83_\81[\82ð\8dì\90¬\82Å\82«\82È\82¢
+\8cx\8d\90 W8066 .\SystemImpl.cpp 253: \8eÀ\8ds\82³\82ê\82È\82¢\83R\81[\83h(\8aÖ\90\94 SystemImpl::winMain(HINSTANCE__ * const,HINSTANCE__ * const,char * const,const int) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 314: \83p\83\89\83\81\81[\83^ 'hPrevInstance' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::winMain(HINSTANCE__ * const,HINSTANCE__ * const,char * const,const int) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 314: \83p\83\89\83\81\81[\83^ 'lpszCmdParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::winMain(HINSTANCE__ * const,HINSTANCE__ * const,char * const,const int) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 368: \83p\83\89\83\81\81[\83^ 'wParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onPaint(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 368: \83p\83\89\83\81\81[\83^ 'lParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onPaint(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 379: \83p\83\89\83\81\81[\83^ 'hwnd' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onActivate(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 379: \83p\83\89\83\81\81[\83^ 'lParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onActivate(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 396: \83p\83\89\83\81\81[\83^ 'hwnd' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onSize(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 396: \83p\83\89\83\81\81[\83^ 'wParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onSize(HWND__ * const,const unsigned int,const long) )
+\8cx\8d\90 W8057 .\SystemImpl.cpp 396: \83p\83\89\83\81\81[\83^ 'lParam' \82Í\88ê\93x\82à\8eg\97p\82³\82ê\82È\82¢(\8aÖ\90\94 SystemImpl::onSize(HWND__ * const,const unsigned int,const long) )
+       brc32 -r -i"c:\mssdk\lib\b_dx8;c:\mssdk\include;C:\BORLAND\BCC55\BIN\..\include;" -D_BORLAND -w32 sfglib.rc -fo.\obj\sfglib
+Borland Resource Compiler  Version 5.40
+Copyright (c) 1990, 1999 Inprise Corporation.  All rights reserved.
+       ilink32 -Tpd -aa -v -r -c -L"c:\mssdk\lib\b_dx8;C:\BORLAND\BCC55\BIN\..\lib;C:\BORLAND\BCC55\BIN\..\lib\PSDK;" /j.\obj /I.\obj c0d32w.obj ".\obj\AbstractSprite.obj"   ".\obj\BackGround.obj"   ".\obj\ConsoleImpl.obj"   ".\obj\Exception.obj"   ".\obj\InputImpl.obj"   ".\obj\Obj.obj"   ".\obj\Obj2D.obj"   ".\obj\Obj3D.obj"   ".\obj\Obj3DL.obj"   ".\obj\ObjQuadrangle.obj"   ".\obj\ObjRectangle.obj"   ".\obj\sfglib.obj"   ".\obj\SoundImpl.obj"   ".\obj\Sprite2D.obj"   ".\obj\Sprite3D.obj"   ".\obj\SpriteMesh.obj"   ".\obj\StdAfx.obj"   ".\obj\System.obj"   ".\obj\SystemImpl.obj",.\obj\sfglib,,dsound.lib c_dinput.lib import32.lib cw32.lib dinput8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib dxerr8bor.lib winmm.lib,,.\obj\sfglib.res
+Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
+RLINK32 Version 4.00  (c) Copyright 1992-1999 Borland International.
+Input resource file #1: "TMP1.$$$"
+Input resource file #2: "C:\MY DOCUMENTS\GENX\PROJECT\SFGLIB\OBJ\SFGLIB.RES"
+Reading resource files.
+
+RESOURCE LIST
+Key: The attributes Language, Data Version, Version, and Characteristics are
+shown in hex.  They appear only if they are nonzero.  *Discardable resource.
+Type ID            Name ID               File  Size   Language Data Version    
+10 (RCDATA)        DVCLAL                1       16                            
+16 (VERSIONINFO)   1                     2      796   0x0411                   
+Writing resources.
+Resources linked.
+       copy .\obj\sfglib.dll c:\s2001
+        1 \8cÂ\82Ì\83t\83@\83C\83\8b\82ð\83R\83s\81[\82µ\82Ü\82µ\82½.
+       implib .\lib\sfglib.lib .\obj\sfglib.dll
+
+Borland Implib Version 3.0.22 Copyright (c) 1991, 2000 Inprise Corporation
+Warning duplicate symbol: @sf@system@Exception@$bctr$qxpxct1xix30sf@system@Exception@ERROR_TYPE
+Warning duplicate symbol: @sf@system@Exception@$bctr$qxpxct1xix30sf@system@Exception@ERROR_TYPE
+Warning duplicate symbol: @sf@system@Exception@$bctr$qxpxct1xix30sf@system@Exception@ERROR_TYPE
+Warning duplicate symbol: @sf@system@Exception@$bdtr$qv
+Warning duplicate symbol: @sf@system@Exception@$bdtr$qv
+Warning duplicate symbol: @sf@system@Exception@$bdtr$qv
+Warning duplicate symbol: @sf@system@Exception@$bdtr$qv
+Warning duplicate symbol: @sf@system@Exception@$bdtr$qv
+Warning duplicate symbol: @sf@system@Exception@$bdtr$qv
+Warning duplicate symbol: @sf@system@Exception@$bdtr$qv
+Warning duplicate symbol: @sf@system@Exception@$bdtr$qv
+Warning duplicate symbol: @sf@system@Exception@errorType$qx30sf@system@Exception@ERROR_TYPE
+Warning duplicate symbol: @sf@system@Exception@errorType$qx30sf@system@Exception@ERROR_TYPE
+Warning duplicate symbol: @sf@system@Exception@errorType$qx30sf@system@Exception@ERROR_TYPE
+Warning duplicate symbol: @sf@system@Exception@errorType$qx30sf@system@Exception@ERROR_TYPE
+Warning duplicate symbol: @sf@system@Exception@errorType$qx30sf@system@Exception@ERROR_TYPE
+Warning duplicate symbol: @sf@system@Exception@errorType$qx30sf@system@Exception@ERROR_TYPE
+Warning duplicate symbol: @sf@system@Exception@errorType$qx30sf@system@Exception@ERROR_TYPE
+Warning duplicate symbol: @sf@system@Exception@errorType$qx30sf@system@Exception@ERROR_TYPE
+Warning duplicate symbol: @sf@system@Exception@errorType$xqv
+Warning duplicate symbol: @sf@system@Exception@errorType$xqv
+Warning duplicate symbol: @sf@system@Exception@errorType$xqv
+Warning duplicate symbol: @sf@system@Exception@errorType$xqv
+Warning duplicate symbol: @sf@system@Exception@errorType$xqv
+Warning duplicate symbol: @sf@system@Exception@errorType$xqv
+Warning duplicate symbol: @sf@system@Exception@errorType$xqv
+Warning duplicate symbol: @sf@system@Exception@errorType$xqv
+Warning duplicate symbol: @sf@system@Exception@lineNumber$qv
+Warning duplicate symbol: @sf@system@Exception@lineNumber$qv
+Warning duplicate symbol: @sf@system@Exception@lineNumber$qv
+Warning duplicate symbol: @sf@system@Exception@lineNumber$qv
+Warning duplicate symbol: @sf@system@Exception@lineNumber$qv
+Warning duplicate symbol: @sf@system@Exception@lineNumber$qv
+Warning duplicate symbol: @sf@system@Exception@lineNumber$qv
+Warning duplicate symbol: @sf@system@Exception@lineNumber$qv
+Warning duplicate symbol: @sf@system@Exception@lineNumber$qxi
+Warning duplicate symbol: @sf@system@Exception@lineNumber$qxi
+Warning duplicate symbol: @sf@system@Exception@lineNumber$qxi
+Warning duplicate symbol: @sf@system@Exception@lineNumber$qxi
+Warning duplicate symbol: @sf@system@Exception@lineNumber$qxi
+Warning duplicate symbol: @sf@system@Exception@lineNumber$qxi
+Warning duplicate symbol: @sf@system@Exception@lineNumber$qxi
+Warning duplicate symbol: @sf@system@Exception@lineNumber$qxi
+Warning duplicate symbol: @sf@system@Exception@reason$qrx60std@%basic_string$c19std@%char_traits$c%17std@%allocator$c%%
+Warning duplicate symbol: @sf@system@Exception@reason$qrx60std@%basic_string$c19std@%char_traits$c%17std@%allocator$c%%
+Warning duplicate symbol: @sf@system@Exception@reason$qrx60std@%basic_string$c19std@%char_traits$c%17std@%allocator$c%%
+Warning duplicate symbol: @sf@system@Exception@reason$qrx60std@%basic_string$c19std@%char_traits$c%17std@%allocator$c%%
+Warning duplicate symbol: @sf@system@Exception@reason$qrx60std@%basic_string$c19std@%char_traits$c%17std@%allocator$c%%
+Warning duplicate symbol: @sf@system@Exception@reason$qrx60std@%basic_string$c19std@%char_traits$c%17std@%allocator$c%%
+Warning duplicate symbol: @sf@system@Exception@reason$qrx60std@%basic_string$c19std@%char_traits$c%17std@%allocator$c%%
+Warning duplicate symbol: @sf@system@Exception@reason$qrx60std@%basic_string$c19std@%char_traits$c%17std@%allocator$c%%
+Warning duplicate symbol: @sf@system@Exception@reason$qv
+Warning duplicate symbol: @sf@system@Exception@reason$qv
+Warning duplicate symbol: @sf@system@Exception@reason$qv
+Warning duplicate symbol: @sf@system@Exception@reason$qv
+Warning duplicate symbol: @sf@system@Exception@reason$qv
+Warning duplicate symbol: @sf@system@Exception@reason$qv
+Warning duplicate symbol: @sf@system@Exception@reason$qv
+Warning duplicate symbol: @sf@system@Exception@reason$qv
+Warning duplicate symbol: @sf@system@Exception@reason$qxpxc
+Warning duplicate symbol: @sf@system@Exception@reason$qxpxc
+Warning duplicate symbol: @sf@system@Exception@reason$qxpxc
+Warning duplicate symbol: @sf@system@Exception@reason$qxpxc
+Warning duplicate symbol: @sf@system@Exception@reason$qxpxc
+Warning duplicate symbol: @sf@system@Exception@reason$qxpxc
+Warning duplicate symbol: @sf@system@Exception@reason$qxpxc
+Warning duplicate symbol: @sf@system@Exception@reason$qxpxc
+Warning duplicate symbol: @sf@system@Exception@sourceFileName$qxpxc
+Warning duplicate symbol: @sf@system@Exception@sourceFileName$qxpxc
+Warning duplicate symbol: @sf@system@Exception@sourceFileName$qxpxc
+Warning duplicate symbol: @sf@system@Exception@sourceFileName$qxpxc
+Warning duplicate symbol: @sf@system@Exception@sourceFileName$qxpxc
+Warning duplicate symbol: @sf@system@Exception@sourceFileName$qxpxc
+Warning duplicate symbol: @sf@system@Exception@sourceFileName$qxpxc
+Warning duplicate symbol: @sf@system@Exception@sourceFileName$qxpxc
+Warning duplicate symbol: @sf@system@Exception@sourceFileName$xqv
+Warning duplicate symbol: @sf@system@Exception@sourceFileName$xqv
+Warning duplicate symbol: @sf@system@Exception@sourceFileName$xqv
+Warning duplicate symbol: @sf@system@Exception@sourceFileName$xqv
+Warning duplicate symbol: @sf@system@Exception@sourceFileName$xqv
+Warning duplicate symbol: @sf@system@Exception@sourceFileName$xqv
+Warning duplicate symbol: @sf@system@Exception@sourceFileName$xqv
+Warning duplicate symbol: @sf@system@Exception@sourceFileName$xqv
+Warning duplicate symbol: @sf@system@FatalErrorException@$bctr$qxpxct1xix30sf@system@Exception@ERROR_TYPE
+Warning duplicate symbol: @sf@system@FatalErrorException@$bctr$qxpxct1xix30sf@system@Exception@ERROR_TYPE
+Warning duplicate symbol: @sf@system@FatalErrorException@$bctr$qxpxct1xix30sf@system@Exception@ERROR_TYPE
+Warning duplicate symbol: @sf@system@RecoverbleErrorException@$bctr$qxpxct1xix30sf@system@Exception@ERROR_TYPE
+Warning duplicate symbol: @sf@system@RecoverbleErrorException@$bctr$qxpxct1xix30sf@system@Exception@ERROR_TYPE
+Warning duplicate symbol: @sf@system@System@$bdtr$qv
+Warning duplicate symbol: @sf@system@SystemImpl@addWindowMessage$qulp23sf@system@WindowMessage
+Warning duplicate symbol: @sf@system@WindowMessage@$bdtr$qv
+Warning duplicate symbol: @sf@system@console@Console@$bdtr$qv
+Warning duplicate symbol: @sf@system@console@Obj2D@angle$qxf
+Warning duplicate symbol: @sf@system@console@Obj2D@angle$qxf
+Warning duplicate symbol: @sf@system@console@Obj2D@angle$qxf
+Warning duplicate symbol: @sf@system@console@Obj2D@angle$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@angle$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@angle$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@drawMode$qx26sf@system@console@DrawMode
+Warning duplicate symbol: @sf@system@console@Obj2D@drawMode$qx26sf@system@console@DrawMode
+Warning duplicate symbol: @sf@system@console@Obj2D@drawMode$qx26sf@system@console@DrawMode
+Warning duplicate symbol: @sf@system@console@Obj2D@drawMode$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@drawMode$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@drawMode$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@index$qxi
+Warning duplicate symbol: @sf@system@console@Obj2D@index$qxi
+Warning duplicate symbol: @sf@system@console@Obj2D@index$qxi
+Warning duplicate symbol: @sf@system@console@Obj2D@index$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@index$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@index$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@next$qxp21sf@system@console@Obj
+Warning duplicate symbol: @sf@system@console@Obj2D@next$qxp21sf@system@console@Obj
+Warning duplicate symbol: @sf@system@console@Obj2D@next$qxp21sf@system@console@Obj
+Warning duplicate symbol: @sf@system@console@Obj2D@next$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@next$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@next$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@previous$qxp21sf@system@console@Obj
+Warning duplicate symbol: @sf@system@console@Obj2D@previous$qxp21sf@system@console@Obj
+Warning duplicate symbol: @sf@system@console@Obj2D@previous$qxp21sf@system@console@Obj
+Warning duplicate symbol: @sf@system@console@Obj2D@previous$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@previous$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@previous$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@reverseX$qxo
+Warning duplicate symbol: @sf@system@console@Obj2D@reverseX$qxo
+Warning duplicate symbol: @sf@system@console@Obj2D@reverseX$qxo
+Warning duplicate symbol: @sf@system@console@Obj2D@reverseX$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@reverseX$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@reverseX$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@reverseY$qxo
+Warning duplicate symbol: @sf@system@console@Obj2D@reverseY$qxo
+Warning duplicate symbol: @sf@system@console@Obj2D@reverseY$qxo
+Warning duplicate symbol: @sf@system@console@Obj2D@reverseY$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@reverseY$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@reverseY$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@scalingX$qxf
+Warning duplicate symbol: @sf@system@console@Obj2D@scalingX$qxf
+Warning duplicate symbol: @sf@system@console@Obj2D@scalingX$qxf
+Warning duplicate symbol: @sf@system@console@Obj2D@scalingX$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@scalingX$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@scalingX$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@scalingY$qxf
+Warning duplicate symbol: @sf@system@console@Obj2D@scalingY$qxf
+Warning duplicate symbol: @sf@system@console@Obj2D@scalingY$qxf
+Warning duplicate symbol: @sf@system@console@Obj2D@scalingY$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@scalingY$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@scalingY$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@sprite$qxp31sf@system@console@sprite@Sprite
+Warning duplicate symbol: @sf@system@console@Obj2D@sprite$qxp31sf@system@console@sprite@Sprite
+Warning duplicate symbol: @sf@system@console@Obj2D@sprite$qxp31sf@system@console@sprite@Sprite
+Warning duplicate symbol: @sf@system@console@Obj2D@sprite$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@sprite$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@sprite$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@visibility$qxo
+Warning duplicate symbol: @sf@system@console@Obj2D@visibility$qxo
+Warning duplicate symbol: @sf@system@console@Obj2D@visibility$qxo
+Warning duplicate symbol: @sf@system@console@Obj2D@visibility$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@visibility$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@visibility$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@x$qxf
+Warning duplicate symbol: @sf@system@console@Obj2D@x$qxf
+Warning duplicate symbol: @sf@system@console@Obj2D@x$qxf
+Warning duplicate symbol: @sf@system@console@Obj2D@x$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@x$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@x$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@y$qxf
+Warning duplicate symbol: @sf@system@console@Obj2D@y$qxf
+Warning duplicate symbol: @sf@system@console@Obj2D@y$qxf
+Warning duplicate symbol: @sf@system@console@Obj2D@y$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@y$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@y$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@z$qxf
+Warning duplicate symbol: @sf@system@console@Obj2D@z$qxf
+Warning duplicate symbol: @sf@system@console@Obj2D@z$qxf
+Warning duplicate symbol: @sf@system@console@Obj2D@z$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@z$xqv
+Warning duplicate symbol: @sf@system@console@Obj2D@z$xqv
+Warning duplicate symbol: @sf@system@console@Obj3D@drawMode$qx26sf@system@console@DrawMode
+Warning duplicate symbol: @sf@system@console@Obj3D@drawMode$xqv
+Warning duplicate symbol: @sf@system@console@Obj3D@index$qxi
+Warning duplicate symbol: @sf@system@console@Obj3D@index$xqv
+Warning duplicate symbol: @sf@system@console@Obj3D@next$qxp21sf@system@console@Obj
+Warning duplicate symbol: @sf@system@console@Obj3D@next$xqv
+Warning duplicate symbol: @sf@system@console@Obj3D@previous$qxp21sf@system@console@Obj
+Warning duplicate symbol: @sf@system@console@Obj3D@previous$xqv
+Warning duplicate symbol: @sf@system@console@Obj3D@rotXCos$xqv
+Warning duplicate symbol: @sf@system@console@Obj3D@rotXSin$xqv
+Warning duplicate symbol: @sf@system@console@Obj3D@rotYCos$xqv
+Warning duplicate symbol: @sf@system@console@Obj3D@rotYSin$xqv
+Warning duplicate symbol: @sf@system@console@Obj3D@rotZCos$xqv
+Warning duplicate symbol: @sf@system@console@Obj3D@rotZSin$xqv
+Warning duplicate symbol: @sf@system@console@Obj3D@scalingX$xqv
+Warning duplicate symbol: @sf@system@console@Obj3D@scalingY$xqv
+Warning duplicate symbol: @sf@system@console@Obj3D@scalingZ$xqv
+Warning duplicate symbol: @sf@system@console@Obj3D@spaceX$xqv
+Warning duplicate symbol: @sf@system@console@Obj3D@spaceY$xqv
+Warning duplicate symbol: @sf@system@console@Obj3D@spaceZ$xqv
+Warning duplicate symbol: @sf@system@console@Obj3D@sprite$qxp31sf@system@console@sprite@Sprite
+Warning duplicate symbol: @sf@system@console@Obj3D@sprite$xqv
+Warning duplicate symbol: @sf@system@console@Obj3D@visibility$qxo
+Warning duplicate symbol: @sf@system@console@Obj3D@visibility$xqv
+Warning duplicate symbol: @sf@system@console@Obj3D@z$xqv
+Warning duplicate symbol: @sf@system@console@sprite@AbstractSprite@centerX$xqv
+Warning duplicate symbol: @sf@system@console@sprite@AbstractSprite@centerX$xqv
+Warning duplicate symbol: @sf@system@console@sprite@AbstractSprite@centerX$xqv
+Warning duplicate symbol: @sf@system@console@sprite@AbstractSprite@centerY$xqv
+Warning duplicate symbol: @sf@system@console@sprite@AbstractSprite@centerY$xqv
+Warning duplicate symbol: @sf@system@console@sprite@AbstractSprite@centerY$xqv
+Warning duplicate symbol: @sf@system@console@sprite@AbstractSprite@height$xqv
+Warning duplicate symbol: @sf@system@console@sprite@AbstractSprite@use$qxo
+Warning duplicate symbol: @sf@system@console@sprite@AbstractSprite@width$xqv
+Warning duplicate symbol: @sf@system@console@sprite@Sprite@$bdtr$qv
+Warning duplicate symbol: @sf@system@console@sprite@Sprite@$bdtr$qv
+Warning duplicate symbol: @sf@system@console@sprite@Sprite@$bdtr$qv
+Warning duplicate symbol: @sf@system@console@sprite@Sprite@$bdtr$qv
+Warning duplicate symbol: @sf@system@console@sprite@Sprite@$bdtr$qv
+Warning duplicate symbol: @sf@system@input@Input@$bdtr$qv
+Warning duplicate symbol: @sf@system@sound@Sound@$bdtr$qv
+       copy .\obj\sfglib.dll ..\obj
+        1 \8cÂ\82Ì\83t\83@\83C\83\8b\82ð\83R\83s\81[\82µ\82Ü\82µ\82½.
diff --git a/project/sfglib/resource.h b/project/sfglib/resource.h
new file mode 100644 (file)
index 0000000..178e019
--- /dev/null
@@ -0,0 +1,33 @@
+/**
+ * @file
+ * @brief \83\8a\83\\81[\83XID\82Ì\92è\8b`.
+ * 
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.*/
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by sfglib.rc
+//
+#define IDI_ICON1                       101
+#define IDR_MENU1                       104
+#define IDD_ABOUT                       105
+#define ID_RESET                        40001
+#define ID_EXIT                         40002
+#define ID_BGM                          40003
+#define ID_EFFECT                       40004
+#define ID_ABOUT                        40005
+#define ID_DIK                          40006
+#define ID_EDITGAME                     40008
+
+// Next default values for new objects
+// 
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE        109
+#define _APS_NEXT_COMMAND_VALUE         40009
+#define _APS_NEXT_CONTROL_VALUE         1009
+#define _APS_NEXT_SYMED_VALUE           101
+#endif
+#endif
diff --git a/project/sfglib/sf.h b/project/sfglib/sf.h
new file mode 100644 (file)
index 0000000..c923c4a
--- /dev/null
@@ -0,0 +1,19 @@
+/**
+ * @file Sf.h
+ * @brief \83\89\83C\83u\83\89\83\8aDLL\82Ì\83C\83\93\83N\83\8b\81[\83h\90§\8cä\82ð\8ds\82¤
+ *
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+/// \93ñ\8fd\83C\83\93\83N\83\8b\81[\83h\96h\8e~
+#ifndef SF
+#define SF
+#ifdef SFGLIB_EXPORTS 
+       #define SFDLL __declspec(dllexport)
+#else
+       #define SFDLL __declspec(dllimport)
+#endif
+#endif
\ No newline at end of file
diff --git a/project/sfglib/sfdebug.h b/project/sfglib/sfdebug.h
new file mode 100644 (file)
index 0000000..034b251
--- /dev/null
@@ -0,0 +1,25 @@
+/**
+ * @file sfdebug.h
+ * @brief \83f\83o\83b\83O\97p\83\89\83C\83u\83\89\83\8a\82Ì\91g\82Ý\8d\9e\82Ý\92è\8b`
+ *
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+/// \93ñ\8fd\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#ifndef _SFDEBUG
+#define _SFDEBUG
+// \83\81\83\82\83\8a\81[\83\8a\81[\83N\8c\9f\8fo\97p
+#ifdef _DEBUG
+#ifndef _BORLAND
+#define _CRTDBG_MAP_ALLOC
+#include <stdlib.h>
+#include <crtdbg.h>
+       #define DEBUG_NEW new(_NORMAL_BLOCK,__FILE__,__LINE__)
+#else
+       #define DEBUG_NEW new
+#endif
+#endif
+#endif
\ No newline at end of file
diff --git a/project/sfglib/sfglib.aps b/project/sfglib/sfglib.aps
new file mode 100644 (file)
index 0000000..8d11cd4
Binary files /dev/null and b/project/sfglib/sfglib.aps differ
diff --git a/project/sfglib/sfglib.cpp b/project/sfglib/sfglib.cpp
new file mode 100644 (file)
index 0000000..5a9131c
--- /dev/null
@@ -0,0 +1,68 @@
+/**
+ * @file
+ * @brief DLL \97p\82Ì\83G\83\93\83g\83\8a \83|\83C\83\93\83g\82ð\92è\8b`\82·\82é\81B
+ * 
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.*/
+
+
+#pragma warning( disable : 4786 4251)  //STL\82Ì\8cx\8d\90\8aO\82µ
+
+#include "stdafx.h"
+#include "sfdebug.h"
+
+
+// SYSTEM INCLUDES
+//
+//#define INITGUID
+
+/// 
+#define WIN32_LEAN_AND_MEAN
+
+#include "math.h"
+#include <list>
+#include <queue>
+#include <memory>
+#include <map>
+#include <iostream>
+#include <strstream>
+
+#include "windows.h"
+#include "windowsx.h"
+#include "d3d8.h"
+#include "d3dx8.h"
+#include "dmusici.h"
+#include "dinput.h"
+#include "dxerr8sf.h"
+
+// PROJECT INCLUDES
+//
+
+#include "exception.h"
+#include "resource.h"
+#include "System.h"
+#include "Console.h"
+#include "Obj.h"
+#include "singleton.h"
+#include "AbstractSprite.h"
+#include "ConsoleImpl.h"       
+#include "SoundImpl.h"
+#include "InputImpl.h"
+#include "Main.h"
+#include "SystemImpl.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+/// DLL\83\81\83C\83\93
+BOOL APIENTRY DllMain( HANDLE hModule, 
+                       DWORD  ul_reason_for_call, 
+                       LPVOID lpReserved
+                                        )
+{
+    return TRUE;
+}
+
+
diff --git a/project/sfglib/sfglib.def b/project/sfglib/sfglib.def
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/project/sfglib/sfglib.dep b/project/sfglib/sfglib.dep
new file mode 100644 (file)
index 0000000..b976a07
--- /dev/null
@@ -0,0 +1,378 @@
+# Microsoft Developer Studio Generated Dependency File, included by sfglib.mak
+
+.\AbstractSprite.cpp : \
+       "..\..\..\..\mssdk\include\basetsd.h"\
+       ".\AbstractSprite.h"\
+       ".\Console.h"\
+       ".\ConsoleImpl.h"\
+       ".\dxerr8sf.h"\
+       ".\Exception.h"\
+       ".\Input.h"\
+       ".\main.h"\
+       ".\Obj.h"\
+       ".\Obj2D.h"\
+       ".\Obj3D.h"\
+       ".\Obj3DL.h"\
+       ".\ObjQuadrangle.h"\
+       ".\ObjRectangle.h"\
+       ".\sf.h"\
+       ".\sfdebug.h"\
+       ".\Sound.h"\
+       ".\System.h"\
+       {$(INCLUDE)}"d3d8.h"\
+       {$(INCLUDE)}"d3d8caps.h"\
+       {$(INCLUDE)}"d3d8types.h"\
+       {$(INCLUDE)}"d3dx8.h"\
+       {$(INCLUDE)}"d3dx8core.h"\
+       {$(INCLUDE)}"d3dx8effect.h"\
+       {$(INCLUDE)}"d3dx8math.h"\
+       {$(INCLUDE)}"d3dx8math.inl"\
+       {$(INCLUDE)}"d3dx8mesh.h"\
+       {$(INCLUDE)}"d3dx8shape.h"\
+       {$(INCLUDE)}"d3dx8tex.h"\
+       {$(INCLUDE)}"dxerr8.h"\
+       {$(INCLUDE)}"dxfile.h"\
+       
+
+.\BackGround.cpp : \
+       ".\BackGround.h"\
+       ".\Console.h"\
+       ".\Exception.h"\
+       ".\Obj.h"\
+       ".\Obj2D.h"\
+       ".\ObjQuadrangle.h"\
+       ".\ObjRectangle.h"\
+       ".\sf.h"\
+       ".\sfdebug.h"\
+       ".\System.h"\
+       
+
+.\ConsoleImpl.cpp : \
+       ".\AbstractSprite.h"\
+       ".\Console.h"\
+       ".\ConsoleImpl.h"\
+       ".\dxerr8sf.h"\
+       ".\Exception.h"\
+       ".\Input.h"\
+       ".\main.h"\
+       ".\Obj.h"\
+       ".\Obj2D.h"\
+       ".\Obj3D.h"\
+       ".\Obj3DL.h"\
+       ".\ObjQuadrangle.h"\
+       ".\ObjRectangle.h"\
+       ".\sf.h"\
+       ".\sfdebug.h"\
+       ".\Sound.h"\
+       ".\Sprite2D.h"\
+       ".\Sprite3D.h"\
+       ".\SpriteMesh.h"\
+       ".\System.h"\
+       {$(INCLUDE)}"d3d8.h"\
+       {$(INCLUDE)}"d3d8caps.h"\
+       {$(INCLUDE)}"d3d8types.h"\
+       {$(INCLUDE)}"d3dx8.h"\
+       {$(INCLUDE)}"d3dx8core.h"\
+       {$(INCLUDE)}"d3dx8effect.h"\
+       {$(INCLUDE)}"d3dx8math.h"\
+       {$(INCLUDE)}"d3dx8math.inl"\
+       {$(INCLUDE)}"d3dx8mesh.h"\
+       {$(INCLUDE)}"d3dx8shape.h"\
+       {$(INCLUDE)}"d3dx8tex.h"\
+       {$(INCLUDE)}"dxerr8.h"\
+       {$(INCLUDE)}"dxfile.h"\
+       
+
+.\Exception.cpp : \
+       ".\Exception.h"\
+       ".\sf.h"\
+       ".\sfdebug.h"\
+       
+
+.\InputImpl.cpp : \
+       ".\AbstractSprite.h"\
+       ".\Console.h"\
+       ".\ConsoleImpl.h"\
+       ".\dxerr8sf.h"\
+       ".\Exception.h"\
+       ".\Input.h"\
+       ".\InputImpl.h"\
+       ".\main.h"\
+       ".\Obj.h"\
+       ".\sf.h"\
+       ".\sfdebug.h"\
+       ".\singleton.h"\
+       ".\Sound.h"\
+       ".\SoundImpl.h"\
+       ".\System.h"\
+       ".\SystemImpl.h"\
+       {$(INCLUDE)}"d3d8.h"\
+       {$(INCLUDE)}"d3d8caps.h"\
+       {$(INCLUDE)}"d3d8types.h"\
+       {$(INCLUDE)}"d3dx8.h"\
+       {$(INCLUDE)}"d3dx8core.h"\
+       {$(INCLUDE)}"d3dx8effect.h"\
+       {$(INCLUDE)}"d3dx8math.h"\
+       {$(INCLUDE)}"d3dx8math.inl"\
+       {$(INCLUDE)}"d3dx8mesh.h"\
+       {$(INCLUDE)}"d3dx8shape.h"\
+       {$(INCLUDE)}"d3dx8tex.h"\
+       {$(INCLUDE)}"dls1.h"\
+       {$(INCLUDE)}"dmdls.h"\
+       {$(INCLUDE)}"dmerror.h"\
+       {$(INCLUDE)}"dmplugin.h"\
+       {$(INCLUDE)}"dmusbuff.h"\
+       {$(INCLUDE)}"dmusicc.h"\
+       {$(INCLUDE)}"dmusici.h"\
+       {$(INCLUDE)}"dxerr8.h"\
+       {$(INCLUDE)}"dxfile.h"\
+       
+
+.\Obj.cpp : \
+       ".\Console.h"\
+       ".\Obj.h"\
+       ".\sf.h"\
+       ".\System.h"\
+       
+
+.\Obj2D.cpp : \
+       ".\Console.h"\
+       ".\Obj.h"\
+       ".\Obj2D.h"\
+       ".\sf.h"\
+       ".\System.h"\
+       
+
+.\Obj3D.cpp : \
+       ".\Console.h"\
+       ".\Obj.h"\
+       ".\Obj3D.h"\
+       ".\sf.h"\
+       ".\sfdebug.h"\
+       ".\System.h"\
+       
+
+.\Obj3DL.cpp : \
+       ".\Console.h"\
+       ".\Obj.h"\
+       ".\Obj3D.h"\
+       ".\Obj3DL.h"\
+       ".\sf.h"\
+       ".\sfdebug.h"\
+       ".\System.h"\
+       
+
+.\ObjQuadrangle.cpp : \
+       ".\Console.h"\
+       ".\Obj.h"\
+       ".\Obj2D.h"\
+       ".\ObjQuadrangle.h"\
+       ".\sf.h"\
+       ".\sfdebug.h"\
+       ".\System.h"\
+       
+
+.\ObjRectangle.cpp : \
+       ".\Console.h"\
+       ".\Obj.h"\
+       ".\Obj2D.h"\
+       ".\ObjRectangle.h"\
+       ".\sf.h"\
+       ".\sfdebug.h"\
+       ".\System.h"\
+       
+
+.\sfglib.cpp : \
+       ".\StdAfx.h"\
+       
+
+.\sflib.rc : \
+       ".\icon1.ico"\
+       
+
+.\SoundImpl.cpp : \
+       ".\Console.h"\
+       ".\dxerr8sf.h"\
+       ".\Exception.h"\
+       ".\Input.h"\
+       ".\sf.h"\
+       ".\sfdebug.h"\
+       ".\Sound.h"\
+       ".\SoundImpl.h"\
+       ".\System.h"\
+       {$(INCLUDE)}"dls1.h"\
+       {$(INCLUDE)}"dmdls.h"\
+       {$(INCLUDE)}"dmerror.h"\
+       {$(INCLUDE)}"dmplugin.h"\
+       {$(INCLUDE)}"dmusbuff.h"\
+       {$(INCLUDE)}"dmusicc.h"\
+       {$(INCLUDE)}"dmusici.h"\
+       {$(INCLUDE)}"dxerr8.h"\
+       
+
+.\Sprite2D.cpp : \
+       ".\AbstractSprite.h"\
+       ".\Console.h"\
+       ".\ConsoleImpl.h"\
+       ".\dxerr8sf.h"\
+       ".\Exception.h"\
+       ".\Obj.h"\
+       ".\Obj2D.h"\
+       ".\ObjQuadrangle.h"\
+       ".\ObjRectangle.h"\
+       ".\sf.h"\
+       ".\sfdebug.h"\
+       ".\Sound.h"\
+       ".\Sprite2D.h"\
+       ".\System.h"\
+       {$(INCLUDE)}"d3d8.h"\
+       {$(INCLUDE)}"d3d8caps.h"\
+       {$(INCLUDE)}"d3d8types.h"\
+       {$(INCLUDE)}"d3dx8.h"\
+       {$(INCLUDE)}"d3dx8core.h"\
+       {$(INCLUDE)}"d3dx8effect.h"\
+       {$(INCLUDE)}"d3dx8math.h"\
+       {$(INCLUDE)}"d3dx8math.inl"\
+       {$(INCLUDE)}"d3dx8mesh.h"\
+       {$(INCLUDE)}"d3dx8shape.h"\
+       {$(INCLUDE)}"d3dx8tex.h"\
+       {$(INCLUDE)}"dxerr8.h"\
+       {$(INCLUDE)}"dxfile.h"\
+       
+
+.\Sprite3D.cpp : \
+       ".\AbstractSprite.h"\
+       ".\Console.h"\
+       ".\ConsoleImpl.h"\
+       ".\dxerr8sf.h"\
+       ".\Exception.h"\
+       ".\Obj.h"\
+       ".\Obj3D.h"\
+       ".\Obj3DL.h"\
+       ".\sf.h"\
+       ".\sfdebug.h"\
+       ".\Sound.h"\
+       ".\Sprite3D.h"\
+       ".\System.h"\
+       {$(INCLUDE)}"d3d8.h"\
+       {$(INCLUDE)}"d3d8caps.h"\
+       {$(INCLUDE)}"d3d8types.h"\
+       {$(INCLUDE)}"d3dx8.h"\
+       {$(INCLUDE)}"d3dx8core.h"\
+       {$(INCLUDE)}"d3dx8effect.h"\
+       {$(INCLUDE)}"d3dx8math.h"\
+       {$(INCLUDE)}"d3dx8math.inl"\
+       {$(INCLUDE)}"d3dx8mesh.h"\
+       {$(INCLUDE)}"d3dx8shape.h"\
+       {$(INCLUDE)}"d3dx8tex.h"\
+       {$(INCLUDE)}"dxerr8.h"\
+       {$(INCLUDE)}"dxfile.h"\
+       
+
+.\SpriteMesh.cpp : \
+       ".\AbstractSprite.h"\
+       ".\Console.h"\
+       ".\dxerr8sf.h"\
+       ".\Exception.h"\
+       ".\Obj.h"\
+       ".\Obj3D.h"\
+       ".\Obj3DL.h"\
+       ".\sf.h"\
+       ".\sfdebug.h"\
+       ".\Sound.h"\
+       ".\SpriteMesh.h"\
+       ".\System.h"\
+       {$(INCLUDE)}"d3d8.h"\
+       {$(INCLUDE)}"d3d8caps.h"\
+       {$(INCLUDE)}"d3d8types.h"\
+       {$(INCLUDE)}"d3dx8.h"\
+       {$(INCLUDE)}"d3dx8core.h"\
+       {$(INCLUDE)}"d3dx8effect.h"\
+       {$(INCLUDE)}"d3dx8math.h"\
+       {$(INCLUDE)}"d3dx8math.inl"\
+       {$(INCLUDE)}"d3dx8mesh.h"\
+       {$(INCLUDE)}"d3dx8shape.h"\
+       {$(INCLUDE)}"d3dx8tex.h"\
+       {$(INCLUDE)}"dxerr8.h"\
+       {$(INCLUDE)}"dxfile.h"\
+       
+
+.\StdAfx.cpp : \
+       "..\..\..\..\mssdk\include\basetsd.h"\
+       ".\StdAfx.h"\
+       
+
+.\System.cpp : \
+       ".\AbstractSprite.h"\
+       ".\Console.h"\
+       ".\ConsoleImpl.h"\
+       ".\Exception.h"\
+       ".\Input.h"\
+       ".\InputImpl.h"\
+       ".\main.h"\
+       ".\Obj.h"\
+       ".\sf.h"\
+       ".\singleton.h"\
+       ".\Sound.h"\
+       ".\SoundImpl.h"\
+       ".\System.h"\
+       ".\SystemImpl.h"\
+       {$(INCLUDE)}"d3d8.h"\
+       {$(INCLUDE)}"d3d8caps.h"\
+       {$(INCLUDE)}"d3d8types.h"\
+       {$(INCLUDE)}"d3dx8.h"\
+       {$(INCLUDE)}"d3dx8core.h"\
+       {$(INCLUDE)}"d3dx8effect.h"\
+       {$(INCLUDE)}"d3dx8math.h"\
+       {$(INCLUDE)}"d3dx8math.inl"\
+       {$(INCLUDE)}"d3dx8mesh.h"\
+       {$(INCLUDE)}"d3dx8shape.h"\
+       {$(INCLUDE)}"d3dx8tex.h"\
+       {$(INCLUDE)}"dls1.h"\
+       {$(INCLUDE)}"dmdls.h"\
+       {$(INCLUDE)}"dmerror.h"\
+       {$(INCLUDE)}"dmplugin.h"\
+       {$(INCLUDE)}"dmusbuff.h"\
+       {$(INCLUDE)}"dmusicc.h"\
+       {$(INCLUDE)}"dmusici.h"\
+       {$(INCLUDE)}"dxfile.h"\
+       
+
+.\SystemImpl.cpp : \
+       ".\AbstractSprite.h"\
+       ".\Console.h"\
+       ".\ConsoleImpl.h"\
+       ".\dxerr8sf.h"\
+       ".\Exception.h"\
+       ".\Input.h"\
+       ".\InputImpl.h"\
+       ".\main.h"\
+       ".\Obj.h"\
+       ".\sf.h"\
+       ".\sfdebug.h"\
+       ".\singleton.h"\
+       ".\Sound.h"\
+       ".\SoundImpl.h"\
+       ".\System.h"\
+       ".\SystemImpl.h"\
+       {$(INCLUDE)}"d3d8.h"\
+       {$(INCLUDE)}"d3d8caps.h"\
+       {$(INCLUDE)}"d3d8types.h"\
+       {$(INCLUDE)}"d3dx8.h"\
+       {$(INCLUDE)}"d3dx8core.h"\
+       {$(INCLUDE)}"d3dx8effect.h"\
+       {$(INCLUDE)}"d3dx8math.h"\
+       {$(INCLUDE)}"d3dx8math.inl"\
+       {$(INCLUDE)}"d3dx8mesh.h"\
+       {$(INCLUDE)}"d3dx8shape.h"\
+       {$(INCLUDE)}"d3dx8tex.h"\
+       {$(INCLUDE)}"dls1.h"\
+       {$(INCLUDE)}"dmdls.h"\
+       {$(INCLUDE)}"dmerror.h"\
+       {$(INCLUDE)}"dmplugin.h"\
+       {$(INCLUDE)}"dmusbuff.h"\
+       {$(INCLUDE)}"dmusicc.h"\
+       {$(INCLUDE)}"dmusici.h"\
+       {$(INCLUDE)}"dxerr8.h"\
+       {$(INCLUDE)}"dxfile.h"\
+       
diff --git a/project/sfglib/sfglib.dsp b/project/sfglib/sfglib.dsp
new file mode 100644 (file)
index 0000000..8800f42
--- /dev/null
@@ -0,0 +1,293 @@
+# Microsoft Developer Studio Project File - Name="sfglib" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** \95Ò\8fW\82µ\82È\82¢\82Å\82­\82¾\82³\82¢ **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=sfglib - Win32 Debug
+!MESSAGE \82±\82ê\82Í\97L\8cø\82ÈÒ²¸Ì§²Ù\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81\82±\82ÌÌßÛ¼Þª¸Ä\82ðËÞÙÄÞ\82·\82é\82½\82ß\82É\82Í NMAKE \82ð\8eg\97p\82µ\82Ä\82­\82¾\82³\82¢\81B
+!MESSAGE [Ò²¸Ì§²Ù\82Ì´¸½Îß°Ä] ºÏÝÄÞ\82ð\8eg\97p\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢
+!MESSAGE 
+!MESSAGE NMAKE /f "sfglib.mak".
+!MESSAGE 
+!MESSAGE NMAKE \82Ì\8eÀ\8ds\8e\9e\82É\8d\\90¬\82ð\8ew\92è\82Å\82«\82Ü\82·
+!MESSAGE ºÏÝÄޠײÝ\8fã\82ÅϸÛ\82Ì\90Ý\92è\82ð\92è\8b`\82µ\82Ü\82·\81B\97á:
+!MESSAGE 
+!MESSAGE NMAKE /f "sfglib.mak" CFG="sfglib - Win32 Debug"
+!MESSAGE 
+!MESSAGE \91I\91ð\89Â\94\\82ÈËÞÙÄÞ Ó°ÄÞ:
+!MESSAGE 
+!MESSAGE "sfglib - Win32 Release" ("Win32 (x86) Dynamic-Link Library" \97p)
+!MESSAGE "sfglib - Win32 Debug" ("Win32 (x86) Dynamic-Link Library" \97p)
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "sfglib - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir ".\Release"
+# PROP Intermediate_Dir ".\Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SFGLIB_EXPORTS" /Yu"stdafx.h" /FD /c
+# ADD CPP /nologo /MT /W3 /GR /GX /O2 /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SFGLIB_EXPORTS" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x411 /d "NDEBUG"
+# ADD RSC /l 0x411 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD LINK32 winmm.lib ole32.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# Begin Special Build Tool
+SOURCE="$(InputPath)"
+PostBuild_Cmds=copy .\release\sfglib.lib ..
+# End Special Build Tool
+
+!ELSEIF  "$(CFG)" == "sfglib - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir ".\Debug"
+# PROP Intermediate_Dir ".\Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SFGLIB_EXPORTS" /Yu"stdafx.h" /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GR /GX /ZI /Od /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SFGLIB_EXPORTS" /YX /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x411 /d "_DEBUG"
+# ADD RSC /l 0x411 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 winmm.lib ole32.lib dinput8.lib Dxerr8.lib d3dx8dt.lib d3d8.lib dxguid.lib d3dxof.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib uuid.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# SUBTRACT LINK32 /pdb:none
+# Begin Special Build Tool
+SOURCE="$(InputPath)"
+PostBuild_Cmds=copy .\debug\sfglib.lib ..
+# End Special Build Tool
+
+!ENDIF 
+
+# Begin Target
+
+# Name "sfglib - Win32 Release"
+# Name "sfglib - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\AbstractSprite.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\BackGround.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\ConsoleImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\InputImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Obj.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Obj2D.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Obj3D.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Obj3DL.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\ObjQuadrangle.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\ObjRectangle.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\sfglib.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\sfglib.rc
+# End Source File
+# Begin Source File
+
+SOURCE=.\SoundImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Sprite2D.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Sprite3D.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\SpriteMesh.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.cpp
+# ADD CPP /Yc"stdafx.h"
+# End Source File
+# Begin Source File
+
+SOURCE=.\SystemImpl.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\AbstractSprite.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\BackGround.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Console.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ConsoleImpl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\dxerr8sf.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Exception.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Input.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\InputImpl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Obj.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Obj2D.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Obj3D.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Obj3DL.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ObjQuadrangle.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ObjRectangle.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\sf.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\sfdebug.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\singleton.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Sound.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\SoundImpl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Sprite2D.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Sprite3D.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\SpriteMesh.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\StdAfx.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\System.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\SystemImpl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\SystemWin32.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# Begin Source File
+
+SOURCE=.\ReadMe.txt
+# End Source File
+# End Target
+# End Project
diff --git a/project/sfglib/sfglib.mak b/project/sfglib/sfglib.mak
new file mode 100644 (file)
index 0000000..313175f
--- /dev/null
@@ -0,0 +1,414 @@
+# Microsoft Developer Studio Generated NMAKE File, Based on sfglib.dsp
+!IF "$(CFG)" == ""
+CFG=sfglib - Win32 Debug
+!MESSAGE \8d\\90¬\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81BÃÞÌ«ÙÄ\82Ì sfglib - Win32 Debug \82ð\90Ý\92è\82µ\82Ü\82·\81B
+!ENDIF 
+
+!IF "$(CFG)" != "sfglib - Win32 Release" && "$(CFG)" != "sfglib - Win32 Debug"
+!MESSAGE \8ew\92è\82³\82ê\82½ ËÞÙÄÞ Ó°ÄÞ "$(CFG)" \82Í\90³\82µ\82­\82 \82è\82Ü\82¹\82ñ\81B
+!MESSAGE NMAKE \82Ì\8eÀ\8ds\8e\9e\82É\8d\\90¬\82ð\8ew\92è\82Å\82«\82Ü\82·
+!MESSAGE ºÏÝÄޠײÝ\8fã\82ÅϸÛ\82Ì\90Ý\92è\82ð\92è\8b`\82µ\82Ü\82·\81B\97á:
+!MESSAGE 
+!MESSAGE NMAKE /f "sfglib.mak" CFG="sfglib - Win32 Debug"
+!MESSAGE 
+!MESSAGE \91I\91ð\89Â\94\\82ÈËÞÙÄÞ Ó°ÄÞ:
+!MESSAGE 
+!MESSAGE "sfglib - Win32 Release" ("Win32 (x86) Dynamic-Link Library" \97p)
+!MESSAGE "sfglib - Win32 Debug" ("Win32 (x86) Dynamic-Link Library" \97p)
+!MESSAGE 
+!ERROR \96³\8cø\82È\8d\\90¬\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82·\81B
+!ENDIF 
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+
+!IF  "$(CFG)" == "sfglib - Win32 Release"
+
+OUTDIR=.\..\Release
+INTDIR=.\..\Release
+# Begin Custom Macros
+OutDir=.\..\Release
+# End Custom Macros
+
+ALL : "$(OUTDIR)\sfglib.dll" "$(OUTDIR)\sfglib.pch"
+
+
+CLEAN :
+       -@erase "$(INTDIR)\AbstractSprite.obj"
+       -@erase "$(INTDIR)\BackGround.obj"
+       -@erase "$(INTDIR)\ConsoleImpl.obj"
+       -@erase "$(INTDIR)\Exception.obj"
+       -@erase "$(INTDIR)\InputImpl.obj"
+       -@erase "$(INTDIR)\Obj.obj"
+       -@erase "$(INTDIR)\Obj2D.obj"
+       -@erase "$(INTDIR)\Obj3D.obj"
+       -@erase "$(INTDIR)\Obj3DL.obj"
+       -@erase "$(INTDIR)\ObjQuadrangle.obj"
+       -@erase "$(INTDIR)\ObjRectangle.obj"
+       -@erase "$(INTDIR)\sfglib.obj"
+       -@erase "$(INTDIR)\sfglib.pch"
+       -@erase "$(INTDIR)\sflib.res"
+       -@erase "$(INTDIR)\SoundImpl.obj"
+       -@erase "$(INTDIR)\Sprite2D.obj"
+       -@erase "$(INTDIR)\Sprite3D.obj"
+       -@erase "$(INTDIR)\SpriteMesh.obj"
+       -@erase "$(INTDIR)\StdAfx.obj"
+       -@erase "$(INTDIR)\System.obj"
+       -@erase "$(INTDIR)\SystemImpl.obj"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "$(OUTDIR)\sfglib.dll"
+       -@erase "$(OUTDIR)\sfglib.exp"
+       -@erase "$(OUTDIR)\sfglib.lib"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MT /W3 /GR /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SFGLIB_EXPORTS" /Fp"$(INTDIR)\sfglib.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+
+.c{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+MTL=midl.exe
+MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 
+RSC=rc.exe
+RSC_PROJ=/l 0x411 /fo"$(INTDIR)\sflib.res" /d "NDEBUG" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\sfglib.bsc" 
+BSC32_SBRS= \
+       
+LINK32=link.exe
+LINK32_FLAGS=winmm.lib ole32.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\sfglib.pdb" /machine:I386 /out:"$(OUTDIR)\sfglib.dll" /implib:"$(OUTDIR)\sfglib.lib" 
+LINK32_OBJS= \
+       "$(INTDIR)\AbstractSprite.obj" \
+       "$(INTDIR)\BackGround.obj" \
+       "$(INTDIR)\ConsoleImpl.obj" \
+       "$(INTDIR)\Exception.obj" \
+       "$(INTDIR)\InputImpl.obj" \
+       "$(INTDIR)\Obj.obj" \
+       "$(INTDIR)\Obj2D.obj" \
+       "$(INTDIR)\Obj3D.obj" \
+       "$(INTDIR)\Obj3DL.obj" \
+       "$(INTDIR)\ObjQuadrangle.obj" \
+       "$(INTDIR)\ObjRectangle.obj" \
+       "$(INTDIR)\sfglib.obj" \
+       "$(INTDIR)\SoundImpl.obj" \
+       "$(INTDIR)\Sprite2D.obj" \
+       "$(INTDIR)\Sprite3D.obj" \
+       "$(INTDIR)\SpriteMesh.obj" \
+       "$(INTDIR)\StdAfx.obj" \
+       "$(INTDIR)\System.obj" \
+       "$(INTDIR)\SystemImpl.obj" \
+       "$(INTDIR)\sflib.res"
+
+"$(OUTDIR)\sfglib.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+SOURCE="$(InputPath)"
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+
+ALL : $(DS_POSTBUILD_DEP)
+
+# Begin Custom Macros
+OutDir=.\..\Release
+# End Custom Macros
+
+$(DS_POSTBUILD_DEP) : "$(OUTDIR)\sfglib.dll" "$(OUTDIR)\sfglib.pch"
+   copy ..\release\sfglib.lib ..
+       echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
+
+!ELSEIF  "$(CFG)" == "sfglib - Win32 Debug"
+
+OUTDIR=.\..\Debug
+INTDIR=.\..\Debug
+# Begin Custom Macros
+OutDir=.\..\Debug
+# End Custom Macros
+
+ALL : "$(OUTDIR)\sfglib.dll" "$(OUTDIR)\sfglib.pch"
+
+
+CLEAN :
+       -@erase "$(INTDIR)\AbstractSprite.obj"
+       -@erase "$(INTDIR)\BackGround.obj"
+       -@erase "$(INTDIR)\ConsoleImpl.obj"
+       -@erase "$(INTDIR)\Exception.obj"
+       -@erase "$(INTDIR)\InputImpl.obj"
+       -@erase "$(INTDIR)\Obj.obj"
+       -@erase "$(INTDIR)\Obj2D.obj"
+       -@erase "$(INTDIR)\Obj3D.obj"
+       -@erase "$(INTDIR)\Obj3DL.obj"
+       -@erase "$(INTDIR)\ObjQuadrangle.obj"
+       -@erase "$(INTDIR)\ObjRectangle.obj"
+       -@erase "$(INTDIR)\sfglib.obj"
+       -@erase "$(INTDIR)\sfglib.pch"
+       -@erase "$(INTDIR)\sflib.res"
+       -@erase "$(INTDIR)\SoundImpl.obj"
+       -@erase "$(INTDIR)\Sprite2D.obj"
+       -@erase "$(INTDIR)\Sprite3D.obj"
+       -@erase "$(INTDIR)\SpriteMesh.obj"
+       -@erase "$(INTDIR)\StdAfx.obj"
+       -@erase "$(INTDIR)\System.obj"
+       -@erase "$(INTDIR)\SystemImpl.obj"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "$(INTDIR)\vc60.pdb"
+       -@erase "$(OUTDIR)\sfglib.dll"
+       -@erase "$(OUTDIR)\sfglib.exp"
+       -@erase "$(OUTDIR)\sfglib.ilk"
+       -@erase "$(OUTDIR)\sfglib.lib"
+       -@erase "$(OUTDIR)\sfglib.pdb"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MTd /W3 /Gm /GR /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SFGLIB_EXPORTS" /Fp"$(INTDIR)\sfglib.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c 
+
+.c{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+MTL=midl.exe
+MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32 
+RSC=rc.exe
+RSC_PROJ=/l 0x411 /fo"$(INTDIR)\sflib.res" /d "_DEBUG" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\sfglib.bsc" 
+BSC32_SBRS= \
+       
+LINK32=link.exe
+LINK32_FLAGS=winmm.lib ole32.lib dinput8.lib Dxerr8.lib d3dx8dt.lib d3d8.lib dxguid.lib d3dxof.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib uuid.lib /nologo /dll /incremental:yes /pdb:"$(OUTDIR)\sfglib.pdb" /debug /machine:I386 /out:"$(OUTDIR)\sfglib.dll" /implib:"$(OUTDIR)\sfglib.lib" /pdbtype:sept 
+LINK32_OBJS= \
+       "$(INTDIR)\AbstractSprite.obj" \
+       "$(INTDIR)\BackGround.obj" \
+       "$(INTDIR)\ConsoleImpl.obj" \
+       "$(INTDIR)\Exception.obj" \
+       "$(INTDIR)\InputImpl.obj" \
+       "$(INTDIR)\Obj.obj" \
+       "$(INTDIR)\Obj2D.obj" \
+       "$(INTDIR)\Obj3D.obj" \
+       "$(INTDIR)\Obj3DL.obj" \
+       "$(INTDIR)\ObjQuadrangle.obj" \
+       "$(INTDIR)\ObjRectangle.obj" \
+       "$(INTDIR)\sfglib.obj" \
+       "$(INTDIR)\SoundImpl.obj" \
+       "$(INTDIR)\Sprite2D.obj" \
+       "$(INTDIR)\Sprite3D.obj" \
+       "$(INTDIR)\SpriteMesh.obj" \
+       "$(INTDIR)\StdAfx.obj" \
+       "$(INTDIR)\System.obj" \
+       "$(INTDIR)\SystemImpl.obj" \
+       "$(INTDIR)\sflib.res"
+
+"$(OUTDIR)\sfglib.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+SOURCE="$(InputPath)"
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+
+ALL : $(DS_POSTBUILD_DEP)
+
+# Begin Custom Macros
+OutDir=.\..\Debug
+# End Custom Macros
+
+$(DS_POSTBUILD_DEP) : "$(OUTDIR)\sfglib.dll" "$(OUTDIR)\sfglib.pch"
+   copy ..\debug\sfglib.lib ..
+       echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
+
+!ENDIF 
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("sfglib.dep")
+!INCLUDE "sfglib.dep"
+!ELSE 
+!MESSAGE Warning: cannot find "sfglib.dep"
+!ENDIF 
+!ENDIF 
+
+
+!IF "$(CFG)" == "sfglib - Win32 Release" || "$(CFG)" == "sfglib - Win32 Debug"
+SOURCE=.\AbstractSprite.cpp
+
+"$(INTDIR)\AbstractSprite.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\BackGround.cpp
+
+"$(INTDIR)\BackGround.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\ConsoleImpl.cpp
+
+"$(INTDIR)\ConsoleImpl.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\Exception.cpp
+
+"$(INTDIR)\Exception.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\InputImpl.cpp
+
+"$(INTDIR)\InputImpl.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\Obj.cpp
+
+"$(INTDIR)\Obj.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\Obj2D.cpp
+
+"$(INTDIR)\Obj2D.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\Obj3D.cpp
+
+"$(INTDIR)\Obj3D.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\Obj3DL.cpp
+
+"$(INTDIR)\Obj3DL.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\ObjQuadrangle.cpp
+
+"$(INTDIR)\ObjQuadrangle.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\ObjRectangle.cpp
+
+"$(INTDIR)\ObjRectangle.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\sfglib.cpp
+
+"$(INTDIR)\sfglib.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\sflib.rc
+
+"$(INTDIR)\sflib.res" : $(SOURCE) "$(INTDIR)"
+       $(RSC) $(RSC_PROJ) $(SOURCE)
+
+
+SOURCE=.\SoundImpl.cpp
+
+"$(INTDIR)\SoundImpl.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\Sprite2D.cpp
+
+"$(INTDIR)\Sprite2D.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\Sprite3D.cpp
+
+"$(INTDIR)\Sprite3D.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\SpriteMesh.cpp
+
+"$(INTDIR)\SpriteMesh.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\StdAfx.cpp
+
+!IF  "$(CFG)" == "sfglib - Win32 Release"
+
+CPP_SWITCHES=/nologo /MT /W3 /GR /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SFGLIB_EXPORTS" /Fp"$(INTDIR)\sfglib.pch" /Yc"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+
+"$(INTDIR)\StdAfx.obj" "$(INTDIR)\sfglib.pch" : $(SOURCE) "$(INTDIR)"
+       $(CPP) @<<
+  $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ELSEIF  "$(CFG)" == "sfglib - Win32 Debug"
+
+CPP_SWITCHES=/nologo /MTd /W3 /Gm /GR /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SFGLIB_EXPORTS" /Fp"$(INTDIR)\sfglib.pch" /Yc"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c 
+
+"$(INTDIR)\StdAfx.obj" "$(INTDIR)\sfglib.pch" : $(SOURCE) "$(INTDIR)"
+       $(CPP) @<<
+  $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ENDIF 
+
+SOURCE=.\System.cpp
+
+"$(INTDIR)\System.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\SystemImpl.cpp
+
+"$(INTDIR)\SystemImpl.obj" : $(SOURCE) "$(INTDIR)"
+
+
+
+!ENDIF 
+
diff --git a/project/sfglib/sfglib.plg b/project/sfglib/sfglib.plg
new file mode 100644 (file)
index 0000000..2a649c2
--- /dev/null
@@ -0,0 +1,26 @@
+<html>
+<body>
+<pre>
+<h1>ËÞÙÄÞ\82ÌÛ¸Þ</h1>
+<h3>
+--------------------\8d\\90¬: sfglib - Win32 Debug--------------------
+</h3>
+<h3>ºÏÝÄޠײÝ</h3>
+\88ê\8e\9ȩ²Ù "C:\DOCUME~1\fujiwara\LOCALS~1\Temp\RSP5A.tmp" \82ð\8dì\90¬\82µ\81A\8e\9f\82Ì\93à\97e\82ð\8bL\98^\82µ\82Ü\82·
+[
+/nologo /MTd /W3 /Gm /GR /GX /ZI /Od /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SFGLIB_EXPORTS" /Fp".\Debug/sfglib.pch" /YX /Fo".\Debug/" /Fd".\Debug/" /FD /GZ /c 
+"C:\My Documents\genx\project\sfglib\InputImpl.cpp"
+]
+Creating command line "cl.exe @C:\DOCUME~1\fujiwara\LOCALS~1\Temp\RSP5A.tmp" 
+<h3>±³ÄÌ߯Ġ³¨ÝÄÞ³</h3>
+ºÝÊß²Ù\92\86...
+InputImpl.cpp
+c:\dxsdk\include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800
+
+
+
+<h3>\8c\8b\89Ê</h3>
+InputImpl.obj - ´×° 0\81A\8cx\8d\90 0
+</pre>
+</body>
+</html>
diff --git a/project/sfglib/sfglib.rc b/project/sfglib/sfglib.rc
new file mode 100644 (file)
index 0000000..e510eb7
--- /dev/null
@@ -0,0 +1,109 @@
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// \93ú\96{\8cê resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
+#ifdef _WIN32
+LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
+#pragma code_page(932)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE 
+BEGIN
+    "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE 
+BEGIN
+    "#include ""afxres.h""\r\n"
+    "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE 
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+
+#ifndef _MAC
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,0,0,1
+ PRODUCTVERSION 1,0,0,1
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x40004L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "041104b0"
+        BEGIN
+            VALUE "Comments", "\0"
+            VALUE "CompanyName", " \0"
+            VALUE "FileDescription", "genx\0"
+            VALUE "FileVersion", "1, 0, 0, 1\0"
+            VALUE "InternalName", "genx\0"
+            VALUE "LegalCopyright", "Copyright (C) 1998\0"
+            VALUE "LegalTrademarks", "\0"
+            VALUE "OriginalFilename", "genx.exe\0"
+            VALUE "PrivateBuild", "\0"
+            VALUE "ProductName", "  genx\0"
+            VALUE "ProductVersion", "1, 0, 0, 1\0"
+            VALUE "SpecialBuild", "\0"
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x411, 1200
+    END
+END
+
+#endif    // !_MAC
+
+#endif    // \93ú\96{\8cê resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
diff --git a/project/sfglib/sfglib.vcproj b/project/sfglib/sfglib.vcproj
new file mode 100644 (file)
index 0000000..a61fed4
--- /dev/null
@@ -0,0 +1,772 @@
+<?xml version="1.0" encoding="shift_jis"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="sfglib"
+       ProjectGUID="{6BAF91BD-0810-4884-A06E-4373F0AFC95D}"
+       TargetFrameworkVersion="131072"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory=".\Debug"
+                       IntermediateDirectory=".\Debug"
+                       ConfigurationType="2"
+                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       CharacterSet="1"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Debug/sfglib.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories=".."
+                               PreprocessorDefinitions="_UNICODE;WIN32;_DEBUG;_WINDOWS;_USRDLL;SFGLIB_EXPORTS"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="1"
+                               RuntimeTypeInfo="true"
+                               UsePrecompiledHeader="0"
+                               PrecompiledHeaderFile=".\Debug/sfglib.pch"
+                               AssemblerListingLocation=".\Debug/"
+                               ObjectFile=".\Debug/"
+                               ProgramDataBaseFileName=".\Debug/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               DebugInformationFormat="4"
+                               CompileAs="0"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               Culture="1041"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="winmm.lib dinput9.lib Dxerr9.lib d3dx9dt.lib d3d9.lib dxguid.lib d3dxof.lib Xact3.lib"
+                               OutputFile=".\Debug/sfglib.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               GenerateDebugInformation="true"
+                               ProgramDatabaseFile=".\Debug/sfglib.pdb"
+                               RandomizedBaseAddress="1"
+                               DataExecutionPrevention="0"
+                               ImportLibrary=".\Debug/sfglib.lib"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               CommandLine="copy .\debug\sfglib.lib .."
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory=".\Release"
+                       IntermediateDirectory=".\Release"
+                       ConfigurationType="2"
+                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="false"
+                       CharacterSet="1"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="true"
+                               SuppressStartupBanner="true"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Release/sfglib.tlb"
+                               HeaderFileName=""
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               InlineFunctionExpansion="1"
+                               AdditionalIncludeDirectories=".."
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SFGLIB_EXPORTS"
+                               StringPooling="true"
+                               RuntimeLibrary="0"
+                               EnableFunctionLevelLinking="true"
+                               RuntimeTypeInfo="true"
+                               UsePrecompiledHeader="0"
+                               PrecompiledHeaderFile=".\Release/sfglib.pch"
+                               AssemblerListingLocation=".\Release/"
+                               ObjectFile=".\Release/"
+                               ProgramDataBaseFileName=".\Release/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="true"
+                               CompileAs="0"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               Culture="1041"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="winmm.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib odbc32.lib odbccp32.lib"
+                               OutputFile=".\Release/sfglib.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="true"
+                               ProgramDatabaseFile=".\Release/sfglib.pdb"
+                               RandomizedBaseAddress="1"
+                               DataExecutionPrevention="0"
+                               ImportLibrary=".\Release/sfglib.lib"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               CommandLine="copy .\release\sfglib.lib .."
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source Files"
+                       Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+                       >
+                       <File
+                               RelativePath="AbstractSprite.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="BackGround.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="ConsoleImpl.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="InputImpl.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Obj.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Obj2D.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Obj3D.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Obj3DL.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="ObjQuadrangle.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="ObjRectangle.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="sfglib.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="sfglib.rc"
+                               >
+                       </File>
+                       <File
+                               RelativePath="SoundImpl.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Sprite2D.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Sprite3D.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="SpriteMesh.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="StdAfx.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                               UsePrecompiledHeader="1"
+                                               PrecompiledHeaderThrough="stdafx.h"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               UsePrecompiledHeader="1"
+                                               PrecompiledHeaderThrough="stdafx.h"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="SystemImpl.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                       />
+                               </FileConfiguration>
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Header Files"
+                       Filter="h;hpp;hxx;hm;inl"
+                       >
+                       <File
+                               RelativePath="AbstractSprite.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="BackGround.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Console.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="ConsoleImpl.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="dxerr8sf.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Exception.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Input.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="InputImpl.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Obj.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Obj2D.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Obj3D.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Obj3DL.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="ObjQuadrangle.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="ObjRectangle.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="sf.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="sfdebug.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="singleton.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Sound.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="SoundImpl.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Sprite2D.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="Sprite3D.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="SpriteMesh.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="StdAfx.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="System.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="SystemImpl.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath="SystemWin32.h"
+                               >
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Resource Files"
+                       Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+                       >
+               </Filter>
+               <File
+                       RelativePath="ReadMe.txt"
+                       >
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/project/sfglib/sfglib.vcproj.7.10.old b/project/sfglib/sfglib.vcproj.7.10.old
new file mode 100644 (file)
index 0000000..fb56eca
--- /dev/null
@@ -0,0 +1,594 @@
+<?xml version="1.0" encoding="shift_jis"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="7.10"
+       Name="sfglib"
+       SccProjectName=""
+       SccLocalPath="">
+       <Platforms>
+               <Platform
+                       Name="Win32"/>
+       </Platforms>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory=".\Debug"
+                       IntermediateDirectory=".\Debug"
+                       ConfigurationType="2"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="FALSE"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               AdditionalIncludeDirectories=".."
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SFGLIB_EXPORTS"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="1"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="2"
+                               PrecompiledHeaderFile=".\Debug/sfglib.pch"
+                               AssemblerListingLocation=".\Debug/"
+                               ObjectFile=".\Debug/"
+                               ProgramDataBaseFileName=".\Debug/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="TRUE"
+                               DebugInformationFormat="4"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="winmm.lib dinput8.lib Dxerr8.lib d3dx8dt.lib d3d8.lib dxguid.lib d3dxof.lib"
+                               OutputFile=".\Debug/sfglib.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               GenerateDebugInformation="TRUE"
+                               ProgramDatabaseFile=".\Debug/sfglib.pdb"
+                               ImportLibrary=".\Debug/sfglib.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               MkTypLibCompatible="TRUE"
+                               SuppressStartupBanner="TRUE"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Debug/sfglib.tlb"
+                               HeaderFileName=""/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               CommandLine="copy .\debug\sfglib.lib .."/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="_DEBUG"
+                               Culture="1041"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory=".\Release"
+                       IntermediateDirectory=".\Release"
+                       ConfigurationType="2"
+                       UseOfMFC="0"
+                       ATLMinimizesCRunTimeLibraryUsage="FALSE"
+                       CharacterSet="2">
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               InlineFunctionExpansion="1"
+                               AdditionalIncludeDirectories=".."
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SFGLIB_EXPORTS"
+                               StringPooling="TRUE"
+                               RuntimeLibrary="0"
+                               EnableFunctionLevelLinking="TRUE"
+                               RuntimeTypeInfo="TRUE"
+                               UsePrecompiledHeader="2"
+                               PrecompiledHeaderFile=".\Release/sfglib.pch"
+                               AssemblerListingLocation=".\Release/"
+                               ObjectFile=".\Release/"
+                               ProgramDataBaseFileName=".\Release/"
+                               WarningLevel="3"
+                               SuppressStartupBanner="TRUE"
+                               CompileAs="0"/>
+                       <Tool
+                               Name="VCCustomBuildTool"/>
+                       <Tool
+                               Name="VCLinkerTool"
+                               AdditionalDependencies="winmm.lib dinput8.lib Dxerr8.lib d3dx8.lib d3d8.lib dxguid.lib d3dxof.lib odbc32.lib odbccp32.lib"
+                               OutputFile=".\Release/sfglib.dll"
+                               LinkIncremental="1"
+                               SuppressStartupBanner="TRUE"
+                               ProgramDatabaseFile=".\Release/sfglib.pdb"
+                               ImportLibrary=".\Release/sfglib.lib"
+                               TargetMachine="1"/>
+                       <Tool
+                               Name="VCMIDLTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               MkTypLibCompatible="TRUE"
+                               SuppressStartupBanner="TRUE"
+                               TargetEnvironment="1"
+                               TypeLibraryName=".\Release/sfglib.tlb"
+                               HeaderFileName=""/>
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                               CommandLine="copy .\release\sfglib.lib .."/>
+                       <Tool
+                               Name="VCPreBuildEventTool"/>
+                       <Tool
+                               Name="VCPreLinkEventTool"/>
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                               PreprocessorDefinitions="NDEBUG"
+                               Culture="1041"/>
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"/>
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"/>
+                       <Tool
+                               Name="VCWebDeploymentTool"/>
+                       <Tool
+                               Name="VCManagedWrapperGeneratorTool"/>
+                       <Tool
+                               Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="Source Files"
+                       Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+                       <File
+                               RelativePath="AbstractSprite.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="BackGround.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="ConsoleImpl.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="InputImpl.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Obj.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Obj2D.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Obj3D.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Obj3DL.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="ObjQuadrangle.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="ObjRectangle.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="sfglib.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="sfglib.rc">
+                       </File>
+                       <File
+                               RelativePath="SoundImpl.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Sprite2D.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="Sprite3D.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="SpriteMesh.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="StdAfx.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"
+                                               UsePrecompiledHeader="1"
+                                               PrecompiledHeaderThrough="stdafx.h"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               UsePrecompiledHeader="1"
+                                               PrecompiledHeaderThrough="stdafx.h"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
+                               RelativePath="SystemImpl.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="0"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"
+                                               BasicRuntimeChecks="3"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               Optimization="2"
+                                               AdditionalIncludeDirectories=""
+                                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS;$(NoInherit)"/>
+                               </FileConfiguration>
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Header Files"
+                       Filter="h;hpp;hxx;hm;inl">
+                       <File
+                               RelativePath="AbstractSprite.h">
+                       </File>
+                       <File
+                               RelativePath="BackGround.h">
+                       </File>
+                       <File
+                               RelativePath="Console.h">
+                       </File>
+                       <File
+                               RelativePath="ConsoleImpl.h">
+                       </File>
+                       <File
+                               RelativePath="dxerr8sf.h">
+                       </File>
+                       <File
+                               RelativePath="Exception.h">
+                       </File>
+                       <File
+                               RelativePath="Input.h">
+                       </File>
+                       <File
+                               RelativePath="InputImpl.h">
+                       </File>
+                       <File
+                               RelativePath="Obj.h">
+                       </File>
+                       <File
+                               RelativePath="Obj2D.h">
+                       </File>
+                       <File
+                               RelativePath="Obj3D.h">
+                       </File>
+                       <File
+                               RelativePath="Obj3DL.h">
+                       </File>
+                       <File
+                               RelativePath="ObjQuadrangle.h">
+                       </File>
+                       <File
+                               RelativePath="ObjRectangle.h">
+                       </File>
+                       <File
+                               RelativePath="sf.h">
+                       </File>
+                       <File
+                               RelativePath="sfdebug.h">
+                       </File>
+                       <File
+                               RelativePath="singleton.h">
+                       </File>
+                       <File
+                               RelativePath="Sound.h">
+                       </File>
+                       <File
+                               RelativePath="SoundImpl.h">
+                       </File>
+                       <File
+                               RelativePath="Sprite2D.h">
+                       </File>
+                       <File
+                               RelativePath="Sprite3D.h">
+                       </File>
+                       <File
+                               RelativePath="SpriteMesh.h">
+                       </File>
+                       <File
+                               RelativePath="StdAfx.h">
+                       </File>
+                       <File
+                               RelativePath="System.h">
+                       </File>
+                       <File
+                               RelativePath="SystemImpl.h">
+                       </File>
+                       <File
+                               RelativePath="SystemWin32.h">
+                       </File>
+               </Filter>
+               <Filter
+                       Name="Resource Files"
+                       Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+               </Filter>
+               <File
+                       RelativePath="ReadMe.txt">
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/project/sfglib/sfglib.vcproj.satoshi-PC.satoshi.user b/project/sfglib/sfglib.vcproj.satoshi-PC.satoshi.user
new file mode 100644 (file)
index 0000000..2f8e275
--- /dev/null
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="shift_jis"?>
+<VisualStudioUserFile
+       ProjectType="Visual C++"
+       Version="9.00"
+       ShowAllFiles="false"
+       >
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       >
+                       <DebugSettings
+                               Command=""
+                               WorkingDirectory=""
+                               CommandArguments=""
+                               Attach="false"
+                               DebuggerType="3"
+                               Remote="1"
+                               RemoteMachine="SATOSHI-PC"
+                               RemoteCommand=""
+                               HttpUrl=""
+                               PDBPath=""
+                               SQLDebugging=""
+                               Environment=""
+                               EnvironmentMerge="true"
+                               DebuggerFlavor=""
+                               MPIRunCommand=""
+                               MPIRunArguments=""
+                               MPIRunWorkingDirectory=""
+                               ApplicationCommand=""
+                               ApplicationArguments=""
+                               ShimCommand=""
+                               MPIAcceptMode=""
+                               MPIAcceptFilter=""
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       >
+                       <DebugSettings
+                               Command=""
+                               WorkingDirectory=""
+                               CommandArguments=""
+                               Attach="false"
+                               DebuggerType="3"
+                               Remote="1"
+                               RemoteMachine="SATOSHI-PC"
+                               RemoteCommand=""
+                               HttpUrl=""
+                               PDBPath=""
+                               SQLDebugging=""
+                               Environment=""
+                               EnvironmentMerge="true"
+                               DebuggerFlavor=""
+                               MPIRunCommand=""
+                               MPIRunArguments=""
+                               MPIRunWorkingDirectory=""
+                               ApplicationCommand=""
+                               ApplicationArguments=""
+                               ShimCommand=""
+                               MPIAcceptMode=""
+                               MPIAcceptFilter=""
+                       />
+               </Configuration>
+       </Configurations>
+</VisualStudioUserFile>
diff --git a/project/sfglib/sfglib.vcxproj b/project/sfglib/sfglib.vcxproj
new file mode 100644 (file)
index 0000000..aba9067
--- /dev/null
@@ -0,0 +1,340 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{6BAF91BD-0810-4884-A06E-4373F0AFC95D}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseOfMfc>false</UseOfMfc>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\Debug\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</OutDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\Release\</IntDir>
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Midl>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>Win32</TargetEnvironment>
+      <TypeLibraryName>.\Debug/sfglib.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_UNICODE;WIN32;_DEBUG;_WINDOWS;_USRDLL;SFGLIB_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <PrecompiledHeaderOutputFile>.\Debug/sfglib.pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
+      <ObjectFileName>.\Debug/</ObjectFileName>
+      <ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+      <CompileAs>Default</CompileAs>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0411</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>winmm.lib;dinput9.lib;Dxerr9.lib;d3dx9dt.lib;d3d9.lib;dxguid.lib;d3dxof.lib;Xact3.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>.\Debug/sfglib.dll</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ProgramDatabaseFile>.\Debug/sfglib.pdb</ProgramDatabaseFile>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+      <ImportLibrary>.\Debug/sfglib.lib</ImportLibrary>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>copy .\debug\sfglib.lib ..</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Midl>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <TargetEnvironment>Win32</TargetEnvironment>
+      <TypeLibraryName>.\Release/sfglib.tlb</TypeLibraryName>
+      <HeaderFileName>
+      </HeaderFileName>
+    </Midl>
+    <ClCompile>
+      <Optimization>MaxSpeed</Optimization>
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+      <AdditionalIncludeDirectories>..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;SFGLIB_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <PrecompiledHeaderOutputFile>.\Release/sfglib.pch</PrecompiledHeaderOutputFile>
+      <AssemblerListingLocation>.\Release/</AssemblerListingLocation>
+      <ObjectFileName>.\Release/</ObjectFileName>
+      <ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
+      <WarningLevel>Level3</WarningLevel>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <CompileAs>Default</CompileAs>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Culture>0x0411</Culture>
+    </ResourceCompile>
+    <Link>
+      <AdditionalDependencies>winmm.lib;dinput8.lib;Dxerr8.lib;d3dx8.lib;d3d8.lib;dxguid.lib;d3dxof.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>.\Release/sfglib.dll</OutputFile>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <ProgramDatabaseFile>.\Release/sfglib.pdb</ProgramDatabaseFile>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+      <ImportLibrary>.\Release/sfglib.lib</ImportLibrary>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+    <PostBuildEvent>
+      <Command>copy .\release\sfglib.lib ..</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="AbstractSprite.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="BackGround.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="ConsoleImpl.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="InputImpl.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="Obj.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="Obj2D.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="Obj3D.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="Obj3DL.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="ObjQuadrangle.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="ObjRectangle.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="sfglib.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="SoundImpl.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="Sprite2D.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="Sprite3D.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="SpriteMesh.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+    <ClCompile Include="StdAfx.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">stdafx.h</PrecompiledHeaderFile>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">stdafx.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <ClCompile Include="SystemImpl.cpp">
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;SFGLIB_EXPORTS</PreprocessorDefinitions>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="sfglib.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="AbstractSprite.h" />
+    <ClInclude Include="BackGround.h" />
+    <ClInclude Include="Console.h" />
+    <ClInclude Include="ConsoleImpl.h" />
+    <ClInclude Include="dxerr8sf.h" />
+    <ClInclude Include="Exception.h" />
+    <ClInclude Include="Input.h" />
+    <ClInclude Include="InputImpl.h" />
+    <ClInclude Include="Obj.h" />
+    <ClInclude Include="Obj2D.h" />
+    <ClInclude Include="Obj3D.h" />
+    <ClInclude Include="Obj3DL.h" />
+    <ClInclude Include="ObjQuadrangle.h" />
+    <ClInclude Include="ObjRectangle.h" />
+    <ClInclude Include="sf.h" />
+    <ClInclude Include="sfdebug.h" />
+    <ClInclude Include="singleton.h" />
+    <ClInclude Include="Sound.h" />
+    <ClInclude Include="SoundImpl.h" />
+    <ClInclude Include="Sprite2D.h" />
+    <ClInclude Include="Sprite3D.h" />
+    <ClInclude Include="SpriteMesh.h" />
+    <ClInclude Include="StdAfx.h" />
+    <ClInclude Include="System.h" />
+    <ClInclude Include="SystemImpl.h" />
+    <ClInclude Include="SystemWin32.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="ReadMe.txt" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/project/sfglib/sfglib.vcxproj.filters b/project/sfglib/sfglib.vcxproj.filters
new file mode 100644 (file)
index 0000000..4e305bb
--- /dev/null
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{5df606fc-359f-4e16-9abd-ee4b5c44b0ff}</UniqueIdentifier>
+      <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{c0f7178e-fe13-4115-bdbc-192ab0857d4c}</UniqueIdentifier>
+      <Extensions>h;hpp;hxx;hm;inl</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{88ada58c-8728-4095-9d66-f6e94d0fcebf}</UniqueIdentifier>
+      <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="AbstractSprite.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="BackGround.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="ConsoleImpl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="InputImpl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Obj.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Obj2D.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Obj3D.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Obj3DL.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="ObjQuadrangle.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="ObjRectangle.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="sfglib.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="SoundImpl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Sprite2D.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Sprite3D.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="SpriteMesh.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="StdAfx.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="SystemImpl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="sfglib.rc">
+      <Filter>Source Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="AbstractSprite.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="BackGround.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Console.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="ConsoleImpl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="dxerr8sf.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Exception.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Input.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="InputImpl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Obj.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Obj2D.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Obj3D.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Obj3DL.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="ObjQuadrangle.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="ObjRectangle.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="sf.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="sfdebug.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="singleton.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Sound.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="SoundImpl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Sprite2D.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Sprite3D.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="SpriteMesh.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="StdAfx.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="System.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="SystemImpl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="SystemWin32.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="ReadMe.txt" />
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/project/sfglib/sfglib.vcxproj.user b/project/sfglib/sfglib.vcxproj.user
new file mode 100644 (file)
index 0000000..ace9a86
--- /dev/null
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+</Project>
\ No newline at end of file
diff --git a/project/sfglib/sflib.aps b/project/sfglib/sflib.aps
new file mode 100644 (file)
index 0000000..f8e5a74
Binary files /dev/null and b/project/sfglib/sflib.aps differ
diff --git a/project/sfglib/singleton.h b/project/sfglib/singleton.h
new file mode 100644 (file)
index 0000000..8d2e930
--- /dev/null
@@ -0,0 +1,57 @@
+/**
+ * @file
+ * @brief Singleton\83p\83^\81[\83\93\82Ì\8eÀ\91\95\82ð\82Í\82µ\82å\82é\82½\82ß\82Ì\83}\83N\83\8d\92è\8b`\83t\83@\83C\83\8b
+ *
+ * STL\82Ìauto_ptr \82ð\8eg\97p\82µ\82Ä\82¢\82Ü\82·\81B\81@
+ * @author S.F.
+ * @version $Id:
+ *
+ * Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved.
+ */
+
+/// \93ñ\8fd\83C\83\93\83N\83\8b\81[\83h\96h\8e~\83}\83N\83\8d
+#ifndef _SINGLETON
+#define _SINGLETON
+#include <memory>
+
+/** \83V\83\93\83O\83\8b\83g\83\93\92è\8b`\83}\83N\83\8d
+ * @param X \92è\8b`\82·\82é\83N\83\89\83X\96¼ */
+#define DECLARE_SINGLETON(X)   \
+       public: \
+               static X* const instance(void); \
+       private: \
+       typedef std::auto_ptr<X> _Instance; \
+               friend _Instance; \
+               static _Instance msInstance;
+#ifdef _BORLAND 
+
+/** \83V\83\93\83O\83\8b\83g\83\93\8eÀ\91\95\83}\83N\83\8d
+ * @param X \92è\8b`\82·\82é\83N\83\89\83X\96¼\81i\92Ê\8fí\82Í\8eÀ\91\95\83N\83\89\83X) 
+ * @param Y \83C\83\93\83X\83^\83\93\83X\82ð\90\90¬\82·\82é\83N\83\89\83X\96¼(\92Ê\8fí\82ÍX\82Æ\93¯\82\81j*/
+#define IMPLEMENT_SINGLETON(X,Y) \
+       X::_Instance X::msInstance; \
+       X* const X::instance(void) \
+       { \
+       if(!msInstance.get()){ \
+               _Instance temp(new Y); \
+               msInstance = temp; \
+       } \
+       return msInstance.get(); \
+       }
+#else
+
+/** \83V\83\93\83O\83\8b\83g\83\93\8eÀ\91\95\83}\83N\83\8d
+ *  @param X \92è\8b`\82·\82é\83N\83\89\83X\96¼\81i\92Ê\8fí\82Í\8eÀ\91\95\83N\83\89\83X) 
+    @param Y \83C\83\93\83X\83^\83\93\83X\82ð\90\90¬\82·\82é\83N\83\89\83X\96¼(\92Ê\8fí\82ÍX\82Æ\93¯\82\81j*/
+#define IMPLEMENT_SINGLETON(X,Y) \
+       X::_Instance X::msInstance; \
+       X* const X::instance(void) \
+       { \
+       if(!msInstance.get()){ \
+               msInstance = _Instance(new Y); \
+       } \
+       return msInstance.get(); \
+       }
+
+#endif
+#endif
\ No newline at end of file
diff --git a/project/sfglib/sourcefilelist.wsf b/project/sfglib/sourcefilelist.wsf
new file mode 100644 (file)
index 0000000..b642695
--- /dev/null
@@ -0,0 +1,196 @@
+<!--//@STATE=\8a®\90¬
+//@DESCRIPTION
+//\83\\81[\83X\83t\83@\83C\83\8b\82Ì\83\8a\83X\83g\82ð\90\90¬\82·\82é\83X\83N\83\8a\83v\83g\82Å\82·\81B
+//@DESCRIPTION_END
+//@AUTHOR=S.F.
+-->
+<job ID="SourceFileList">
+<script language="JScript">
+//     var gsFolder = "/source/game";
+//     var gsFolder = "/images";
+       var gsFolder = "c:\\inetpub\\wwwroot\\source\\game";
+       var gsFolderURL = "/source/game";
+       var gsExePath = "c:\\inetpub\\wwwroot\\s2001.lzh";
+       var gsUmlPath = "c:\\inetpub\\wwwroot\\images\\uml2001.gif";
+       
+       var gsTitle = "\83Q\81[\83\80\83\89\83C\83u\83\89\83\8a\83\\81[\83X";
+       var grFileType = /(.*\.bmp)|(.*\.cpp)|(.*\.h)|(.*.wsf)|(MAKEFILE)|(.*\.rc)|(.*\.ico)/i;
+       var gsListFilePath = "c:\\inetpub\\wwwroot\\sfglib.html";
+       var gsCaution = "\8fí\82É\8dì\90¬\92\86\82Ì\82½\82ß\81A\83\\81[\83X\82¨\82æ\82Ñ\83o\83C\83i\83\8a\82É\82Í\95s\8bï\8d\87\82ª\82 \82é\89Â\94\\90«\82ª\82 \82è\82Ü\82·\81B<br/>\81\83\96Æ\90Ó\8e\96\8d\80\81\84<br/>"
+                       + "\81E\82±\82ÌHP\82Ì\82·\82×\82Ä\82Ì\83\\81[\83X\82¨\82æ\82Ñ\83o\83C\83i\83\8a\82ð\8eg\97p\82µ\82Ä\8bN\82±\82è\82¤\82é\82 \82ç\82ä\82é\8c»\8fÛ\82É\8aÖ\82µ\82Ä\93¡\8c´\8cå\82Í\90Ó\94C\82ð\82Æ\82è\82Ü\82¹\82ñ\81B<BR/>" 
+                       + "\81E\82±\82Ì\83z\81[\83\80\83y\81[\83W\82Ì\8dì\8eÒ\82Í\81A\83z\81[\83\80\83y\81[\83W\8fã\82Ì\82·\82×\82Ä\82Ì\83R\83\93\83e\83\93\83c\82ð\97\98\97p\81A\8eg\97p\82µ\82Ä\8bN\82±\82Á\82½\82¢\82©\82È\82é\91¹\8aQ\82ð\94\85\8f\9e\82·\82é\90Ó\94C\82ð\95\89\82¢\82Ü\82¹\82ñ\81B<BR/>"  
+                       + "\8fã\8bL\82ð\82²\97¹\8f³\82Å\82«\82é\82©\82½\82Ì\82Ý\81A\83_\83E\83\93\83\8d\81[\83h\82µ\82Ä\82­\82¾\82³\82¢<br/>";
+       var gsExt = {   "ico" : "\83A\83C\83R\83\93\83t\83@\83C\83\8b" ,
+                       "bmp" : "\83r\83b\83g\83}\83b\83v\83t\83@\83C\83\8b" ,
+                       "rc"  : "\83\8a\83\\81[\83X\83t\83@\83C\83\8b"
+                       };
+function WriteHead(oText,sTitle,sTagOption)
+{
+       oText.WriteLine("<HTML>");
+       oText.WriteLine("<HEAD>");
+       oText.WriteLine("<META content=\"text/html;CHARSET=x-sjis\" http-equiv=\"Content-Type\" />");
+       oText.WriteLine("<META content=\"\83v\83\8d\83O\83\89\83~\83\93\83O\82Ì\83y\81[\83W\82Å\82·\81B\" name=\"description\" />");
+       oText.WriteLine("<TITLE>" + sTitle + "</TITLE>");
+       oText.WriteLine("<LINK HREF=\"styles.css\" REL=\"stylesheet\" TYPE=\"text/css\" />");
+    if(sTagOption.length > 0)
+           oText.WriteLine(sTagOption);
+       oText.WriteLine("<STYLE>");
+       oText.WriteLine("       TD {border:1px solid black;font-size:8pt;}");
+       oText.WriteLine("       TH {border:1px solid black;font-size:8pt;}");
+       oText.WriteLine("</STYLE>");
+       oText.WriteLine("</HEAD>");
+}
+
+
+function WriteBody(oText,sTitle,sCaution)
+{
+       var ofso = new ActiveXObject("Scripting.FileSystemObject");
+
+       var oFile = ofso.GetFile(gsExePath);
+       var dtFile = new Date(oFile.DateLastModified);
+       var sExeDate = dtFile.getFullYear() + "/" + (dtFile.getMonth() + 1) + "/" + dtFile.getDate() ;
+
+       oFile = ofso.GetFile(gsUmlPath);
+       dtFile = new Date(oFile.DateLastModified);
+       var sUmlDate = dtFile.getFullYear() + "/" + (dtFile.getMonth() + 1) + "/" + dtFile.getDate() ;
+
+       oText.WriteLine("<BODY LINK=BLUE VLINK=DARKRED >");
+       oText.WriteLine("<!-- TITLE -->");
+       oText.WriteLine("<TABLE WIDTH=\"100%\" ><TR><TH CLASS=H2 >" + sTitle + "</TH></TR></TABLE>");
+       oText.WriteLine("<DIV><FONT COLOR=\"RED\">\81\83\92\8d\88Ó\81\84" + sCaution + "</FONT></DIV>");
+//     oText.WriteLine("<P><a href=\"images/uml2001.gif\" >\82±\82Ì\83Q\81[\83\80\82ÌUML\83N\83\89\83X\90}(\8dX\90V\93ú " + sUmlDate + " )</a><br/>");
+//     oText.WriteLine("\82©\82È\82è\82¢\82¢\82©\82°\82ñ\82Å\82·\81B</P>");
+       oText.WriteLine("<P><a href=\"s2001.lzh\" >\82±\82Ì\83Q\81[\83\80\82Ì\83R\83\93\83p\83C\83\8b\8dÏ\82Ý\83o\83C\83i\83\8a(\97vDirectX8\81A\8dX\90V\93ú " + sExeDate + " )</a><br/>");
+       oText.WriteLine("\83_\83E\83\93\83\8d\81[\83h\8cã\81A\89ð\93\80\82µ\82½GENX.EXE\82ð\83_\83u\83\8b\83N\83\8a\83b\83N\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢\81B\8fI\97¹\82ÍQ\83L\81[\82Å\82·\81B</P>");
+       oText.WriteLine("<!-- LIST -->");
+       oText.WriteLine("<TABLE WIDTH=\"100%\" border=\"0\" ALIGN=\"CENTER\" style=\"border-collapse:collapse;table-style:fixed;\">");
+       oText.WriteLine("<TR><TH width=\"20%\">\83t\83@\83C\83\8b\96¼</TH><TH width=\"5%\">\8dX\90V\93ú</TH><TH width=\"10%\" >\83T\83C\83Y</TH><TH width=\"15%\">\8fó\91Ô</TH><TH width=\"40%\">\90à\96¾</TH><TH width=\"10%\">\8dì\90¬\8eÒ</TH></TR>");
+
+       var ofolder = ofso.GetFolder(gsFolder);
+       var oFiles = new Enumerator(ofolder.files);
+
+       var dtDate = new Date();
+       var dayMil = (1000 * 60 * 60 * 24);
+       var s = ""
+    var sFiles = new Array();
+    var i = 0;
+       for (; !oFiles.atEnd(); oFiles.moveNext()){
+       sFiles[i++] = oFiles.item();
+    }  
+       // \83t\83B\83\8b\83l\81[\83\80\8f\87\82É\83\\81[\83g
+       
+       sFiles = sFiles.sort();
+       for (var i = 0;i < sFiles.length; i++)
+       {
+               var oFile = ofso.GetFile(sFiles[i]);
+               var sFileName = oFile.Name;
+       
+               if(sFileName.match(grFileType)){
+
+                       var sState = "&nbsp;";
+                       var sDescription = "&nbsp;";
+                       var sAuthor = "&nbsp;";
+
+                       if(!sFileName.match(/(.*\.ico)|(.*\.bmp)/i)){
+                               var oTxtTemp = oFile.OpenAsTextStream(1,0);
+                               var sTemp = oTxtTemp.ReadLine();
+                       
+                               if(sTemp.match(/\/\/@STATE=/i)){
+                                       sTemp = sTemp.split("=");
+                                       sState = sTemp[1];
+                                       var sTemp = oTxtTemp.ReadLine();
+                               } else {
+                                       sState = "\95s\96¾";
+                               }
+
+                               if(sTemp.match(/\/\/@DESCRIPTION/i)){
+                                       sTemp = oTxtTemp.ReadLine();
+                                       while(!sTemp.match(/\/\/@DESCRIPTION_END/i) && !oTxtTemp.AtEndOfStream )
+                                       {
+                                               sDescription += sTemp.replace(/\/\//i,"") + "<br/>";
+                                               sTemp = oTxtTemp.ReadLine();
+                                       } 
+
+                               } else {
+                                       sDescription = "&nbsp;";
+                               }
+                       
+                               //\8dì\90¬\8eÒ\96¼\82ð\8eæ\93¾\82·\82é\81B
+                       
+                               if(!oTxtTemp.AtEndOfStream)
+                                       sTemp = oTxtTemp.ReadLine();
+                               else
+                                       sTemp = "";
+
+                               if(sTemp.match(/\/\/@AUTHOR=/i)){
+                                       sTemp = sTemp.split("=");
+                                       sAuthor = sTemp[1];
+                               } else {
+                                       sAuthor = "&nbsp;";
+                               }
+                       
+                               oTxtTemp.Close();
+                               oTxtTemp = null;
+                       } else {
+                               sTemp = sFileName.split(".");
+                               sTemp = sTemp[1].toLowerCase();
+                               sDescription = gsExt[sTemp];
+                       }
+                       
+                       dtFile = new Date(oFile.DateLastModified);
+                       sDate = dtFile.getFullYear() + "/" + (dtFile.getMonth() + 1) + "/" + dtFile.getDate() ;
+                       var dt = dtDate - oFile.DateLastModified;
+                       var dayValue = dt / dayMil;
+               
+                       if(dayValue <= 7){
+                               var sBldS = "<B>";
+                               var sBldE = "</B>";
+                               var sUpdated = "";
+                               //"<font color=\"red\">&nbsp;Updated!</font>";
+                       } else {
+                               var sBldS = sBldE = "";
+                               var sUpdated = "";
+                       }
+
+                       s += "<TR><TD>" + sBldS + "<A HREF=\"" + gsFolderURL + "/" 
+                               + oFile.Name + "\" target=\"_top\" >" 
+                               + oFile.Name + sUpdated + "</A>" + sBldE + "</TD>";
+
+                       s += "<TD>" + sBldS + sDate + sBldE + "</TD>";
+                       s += "<TD>" + sBldS + oFile.Size + sBldE + "</TD>";
+                       s += "<TD>" + sBldS + sState + sBldE + "</TD>";
+                       s += "<TD>" + sBldS + sDescription + sBldE + "</TD>";
+                       s += "<TD>" + sBldS + sAuthor + sBldE + "</TD>";
+                       s += "</TR>\r\n";
+               }
+       }
+       oText.WriteLine(s);
+       oText.WriteLine("</BODY>");
+}
+
+function WriteTail(oText)
+{
+       oText.WriteLine("</HTML>");
+}
+
+function main()
+{
+       var oFso = new ActiveXObject("Scripting.FileSystemObject");
+       var oText = oFso.CreateTextFile(gsListFilePath,true);
+//     try{
+               WriteHead(oText,gsTitle,"");
+               WriteBody(oText,gsTitle,gsCaution);
+               WriteTail(oText);
+               oText.Close();
+               WScript.Echo("\90³\8fí\82É\8fI\97¹\82µ\82Ü\82µ\82½\81B");
+/*     } catch(e) {
+               WScript.Echo("\88Ù\8fí\8fI\97¹\82µ\82Ü\82µ\82½\81B");
+               throw e;
+       }
+*/
+}
+
+main();
+</script>
+</job>
\ No newline at end of file
diff --git a/project/sfglib/td32.TR2 b/project/sfglib/td32.TR2
new file mode 100644 (file)
index 0000000..6264ef6
Binary files /dev/null and b/project/sfglib/td32.TR2 differ
diff --git a/project/sfinterface.h b/project/sfinterface.h
new file mode 100644 (file)
index 0000000..6e52062
--- /dev/null
@@ -0,0 +1,38 @@
+//@STATE=\8dì\90¬\92\86
+//@DESCRIPTION ---------------------------------------------------------------
+// Scene.h: Scene \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X
+//     \83V\81[\83\93\82Ì\83C\83\93\83^\81[\83t\83F\81[\83X\82Æ\82È\82é\83N\83\89\83X\82Å\82·\81B
+// \97\9a\97ð\81F
+// 2000/02/05 \83R\83\81\83\93\83g\92Ç\89Á
+// $Log: Scene.h,v $
+// Revision 1.2  2001/11/06 21:27:34  fujiwara
+// \91å\95\9d\8dX\90V\91O\83o\83b\83N\83A\83b\83v
+//
+// Revision 1.1  2001/10/28 21:40:37  fujiwara
+// DLL\82É\95ª\8a\84
+//
+// Revision 1.4  2001/07/09 20:30:09  fujiwara
+// \97á\8aO\8f\88\97\9d\82Ì\91g\82Ý\8d\9e\82Ý
+//
+// Revision 1.3  2001/07/01 01:03:44  fujiwara
+// const \82Ì\8c©\92¼\82µ
+// \94z\92u\83G\83f\83B\83^\82Í\93r\92\86\8co\89ß
+//
+// Revision 1.2  2001/05/12 00:49:09  fujiwara
+// \82b\82u\82r\82ð\93±\93ü\82µ\81A\83\8d\83O\95\\8e¦\82ð\92Ç\89Á
+//
+//@DESCRIPTION_END -----------------------------------------------------------
+//@AUTHOR=S.F.
+// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef SFINTERFACE_H
+#define SFINTERFACE_H
+
+#if _MSC_VER > 1000
+#pragma once
+#endif // _MSC_VER > 1000
+
+#define SF_INTERFACE __declspec(novtable)
+
+#endif
\ No newline at end of file
diff --git a/project/sourcefilelist.wsf b/project/sourcefilelist.wsf
new file mode 100644 (file)
index 0000000..38b1848
--- /dev/null
@@ -0,0 +1,196 @@
+<!--//@STATE=\8a®\90¬
+//@DESCRIPTION
+//\83\\81[\83X\83t\83@\83C\83\8b\82Ì\83\8a\83X\83g\82ð\90\90¬\82·\82é\83X\83N\83\8a\83v\83g\82Å\82·\81B
+//@DESCRIPTION_END
+//@AUTHOR=S.F.
+-->
+<job ID="SourceFileList">
+<script language="JScript">
+//     var gsFolder = "/source/game";
+//     var gsFolder = "/images";
+       var gsFolder = "c:\\inetpub\\wwwroot\\source\\game";
+       var gsFolderURL = "/source/game";
+       var gsExePath = "c:\\inetpub\\wwwroot\\s2001.lzh";
+       var gsUmlPath = "c:\\inetpub\\wwwroot\\images\\uml2001.gif";
+       
+       var gsTitle = "\83Q\81[\83\80\83\\81[\83X\83t\83@\83C\83\8b\82¨\82æ\82Ñ\83\8a\83\\81[\83X";
+       var grFileType = /(.*\.bmp)|(.*\.cpp)|(.*\.h)|(.*.wsf)|(MAKEFILE)|(.*\.rc)|(.*\.ico)/i;
+       var gsListFilePath = "c:\\inetpub\\wwwroot\\cpplist.html";
+       var gsCaution = "\8fí\82É\8dì\90¬\92\86\82Ì\82½\82ß\81A\83\\81[\83X\82¨\82æ\82Ñ\83o\83C\83i\83\8a\82É\82Í\95s\8bï\8d\87\82ª\82 \82é\89Â\94\\90«\82ª\82 \82è\82Ü\82·\81B<br/>\81\83\96Æ\90Ó\8e\96\8d\80\81\84<br/>"
+                       + "\81E\82±\82ÌHP\82Ì\82·\82×\82Ä\82Ì\83\\81[\83X\82¨\82æ\82Ñ\83o\83C\83i\83\8a\82ð\8eg\97p\82µ\82Ä\8bN\82±\82è\82¤\82é\82 \82ç\82ä\82é\8c»\8fÛ\82É\8aÖ\82µ\82Ä\93¡\8c´\8cå\82Í\90Ó\94C\82ð\82Æ\82è\82Ü\82¹\82ñ\81B<BR/>" 
+                       + "\81E\82±\82Ì\83z\81[\83\80\83y\81[\83W\82Ì\8dì\8eÒ\82Í\81A\83z\81[\83\80\83y\81[\83W\8fã\82Ì\82·\82×\82Ä\82Ì\83R\83\93\83e\83\93\83c\82ð\97\98\97p\81A\8eg\97p\82µ\82Ä\8bN\82±\82Á\82½\82¢\82©\82È\82é\91¹\8aQ\82ð\94\85\8f\9e\82·\82é\90Ó\94C\82ð\95\89\82¢\82Ü\82¹\82ñ\81B<BR/>"  
+                       + "\8fã\8bL\82ð\82²\97¹\8f³\82Å\82«\82é\82©\82½\82Ì\82Ý\81A\83_\83E\83\93\83\8d\81[\83h\82µ\82Ä\82­\82¾\82³\82¢<br/>";
+       var gsExt = {   "ico" : "\83A\83C\83R\83\93\83t\83@\83C\83\8b" ,
+                       "bmp" : "\83r\83b\83g\83}\83b\83v\83t\83@\83C\83\8b" ,
+                       "rc"  : "\83\8a\83\\81[\83X\83t\83@\83C\83\8b"
+                       };
+function WriteHead(oText,sTitle,sTagOption)
+{
+       oText.WriteLine("<HTML>");
+       oText.WriteLine("<HEAD>");
+       oText.WriteLine("<META content=\"text/html;CHARSET=x-sjis\" http-equiv=\"Content-Type\" />");
+       oText.WriteLine("<META content=\"\83v\83\8d\83O\83\89\83~\83\93\83O\82Ì\83y\81[\83W\82Å\82·\81B\" name=\"description\" />");
+       oText.WriteLine("<TITLE>" + sTitle + "</TITLE>");
+       oText.WriteLine("<LINK HREF=\"styles.css\" REL=\"stylesheet\" TYPE=\"text/css\" />");
+    if(sTagOption.length > 0)
+           oText.WriteLine(sTagOption);
+       oText.WriteLine("<STYLE>");
+       oText.WriteLine("       TD {border:1px solid black;font-size:8pt;}");
+       oText.WriteLine("       TH {border:1px solid black;font-size:8pt;}");
+       oText.WriteLine("</STYLE>");
+       oText.WriteLine("</HEAD>");
+}
+
+
+function WriteBody(oText,sTitle,sCaution)
+{
+       var ofso = new ActiveXObject("Scripting.FileSystemObject");
+
+       var oFile = ofso.GetFile(gsExePath);
+       var dtFile = new Date(oFile.DateLastModified);
+       var sExeDate = dtFile.getFullYear() + "/" + (dtFile.getMonth() + 1) + "/" + dtFile.getDate() ;
+
+       oFile = ofso.GetFile(gsUmlPath);
+       dtFile = new Date(oFile.DateLastModified);
+       var sUmlDate = dtFile.getFullYear() + "/" + (dtFile.getMonth() + 1) + "/" + dtFile.getDate() ;
+
+       oText.WriteLine("<BODY LINK=BLUE VLINK=DARKRED >");
+       oText.WriteLine("<!-- TITLE -->");
+       oText.WriteLine("<TABLE WIDTH=\"100%\" ><TR><TH CLASS=H2 >" + sTitle + "</TH></TR></TABLE>");
+       oText.WriteLine("<DIV><FONT COLOR=\"RED\">\81\83\92\8d\88Ó\81\84" + sCaution + "</FONT></DIV>");
+//     oText.WriteLine("<P><a href=\"images/uml2001.gif\" >\82±\82Ì\83Q\81[\83\80\82ÌUML\83N\83\89\83X\90}(\8dX\90V\93ú " + sUmlDate + " )</a><br/>");
+//     oText.WriteLine("\82©\82È\82è\82¢\82¢\82©\82°\82ñ\82Å\82·\81B</P>");
+       oText.WriteLine("<P><a href=\"s2001.lzh\" >\82±\82Ì\83Q\81[\83\80\82Ì\83R\83\93\83p\83C\83\8b\8dÏ\82Ý\83o\83C\83i\83\8a(\97vDirectX8\81A\8dX\90V\93ú " + sExeDate + " )</a><br/>");
+       oText.WriteLine("\83_\83E\83\93\83\8d\81[\83h\8cã\81A\89ð\93\80\82µ\82½GENX.EXE\82ð\83_\83u\83\8b\83N\83\8a\83b\83N\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢\81B\8fI\97¹\82ÍQ\83L\81[\82Å\82·\81B</P>");
+       oText.WriteLine("<!-- LIST -->");
+       oText.WriteLine("<TABLE WIDTH=\"100%\" border=\"0\" ALIGN=\"CENTER\" style=\"border-collapse:collapse;table-style:fixed;\">");
+       oText.WriteLine("<TR><TH width=\"20%\">\83t\83@\83C\83\8b\96¼</TH><TH width=\"5%\">\8dX\90V\93ú</TH><TH width=\"10%\" >\83T\83C\83Y</TH><TH width=\"15%\">\8fó\91Ô</TH><TH width=\"40%\">\90à\96¾</TH><TH width=\"10%\">\8dì\90¬\8eÒ</TH></TR>");
+
+       var ofolder = ofso.GetFolder(gsFolder);
+       var oFiles = new Enumerator(ofolder.files);
+
+       var dtDate = new Date();
+       var dayMil = (1000 * 60 * 60 * 24);
+       var s = ""
+    var sFiles = new Array();
+    var i = 0;
+       for (; !oFiles.atEnd(); oFiles.moveNext()){
+       sFiles[i++] = oFiles.item();
+    }  
+       // \83t\83B\83\8b\83l\81[\83\80\8f\87\82É\83\\81[\83g
+       
+       sFiles = sFiles.sort();
+       for (var i = 0;i < sFiles.length; i++)
+       {
+               var oFile = ofso.GetFile(sFiles[i]);
+               var sFileName = oFile.Name;
+       
+               if(sFileName.match(grFileType)){
+
+                       var sState = "&nbsp;";
+                       var sDescription = "&nbsp;";
+                       var sAuthor = "&nbsp;";
+
+                       if(!sFileName.match(/(.*\.ico)|(.*\.bmp)/i)){
+                               var oTxtTemp = oFile.OpenAsTextStream(1,0);
+                               var sTemp = oTxtTemp.ReadLine();
+                       
+                               if(sTemp.match(/\/\/@STATE=/i)){
+                                       sTemp = sTemp.split("=");
+                                       sState = sTemp[1];
+                                       var sTemp = oTxtTemp.ReadLine();
+                               } else {
+                                       sState = "\95s\96¾";
+                               }
+
+                               if(sTemp.match(/\/\/@DESCRIPTION/i)){
+                                       sTemp = oTxtTemp.ReadLine();
+                                       while(!sTemp.match(/\/\/@DESCRIPTION_END/i) && !oTxtTemp.AtEndOfStream )
+                                       {
+                                               sDescription += sTemp.replace(/\/\//i,"") + "<br/>";
+                                               sTemp = oTxtTemp.ReadLine();
+                                       } 
+
+                               } else {
+                                       sDescription = "&nbsp;";
+                               }
+                       
+                               //\8dì\90¬\8eÒ\96¼\82ð\8eæ\93¾\82·\82é\81B
+                       
+                               if(!oTxtTemp.AtEndOfStream)
+                                       sTemp = oTxtTemp.ReadLine();
+                               else
+                                       sTemp = "";
+
+                               if(sTemp.match(/\/\/@AUTHOR=/i)){
+                                       sTemp = sTemp.split("=");
+                                       sAuthor = sTemp[1];
+                               } else {
+                                       sAuthor = "&nbsp;";
+                               }
+                       
+                               oTxtTemp.Close();
+                               oTxtTemp = null;
+                       } else {
+                               sTemp = sFileName.split(".");
+                               sTemp = sTemp[1].toLowerCase();
+                               sDescription = gsExt[sTemp];
+                       }
+                       
+                       dtFile = new Date(oFile.DateLastModified);
+                       sDate = dtFile.getFullYear() + "/" + (dtFile.getMonth() + 1) + "/" + dtFile.getDate() ;
+                       var dt = dtDate - oFile.DateLastModified;
+                       var dayValue = dt / dayMil;
+               
+                       if(dayValue <= 7){
+                               var sBldS = "<B>";
+                               var sBldE = "</B>";
+                               var sUpdated = "";
+                               //"<font color=\"red\">&nbsp;Updated!</font>";
+                       } else {
+                               var sBldS = sBldE = "";
+                               var sUpdated = "";
+                       }
+
+                       s += "<TR><TD>" + sBldS + "<A HREF=\"" + gsFolderURL + "/" 
+                               + oFile.Name + "\" target=\"_top\" >" 
+                               + oFile.Name + sUpdated + "</A>" + sBldE + "</TD>";
+
+                       s += "<TD>" + sBldS + sDate + sBldE + "</TD>";
+                       s += "<TD>" + sBldS + oFile.Size + sBldE + "</TD>";
+                       s += "<TD>" + sBldS + sState + sBldE + "</TD>";
+                       s += "<TD>" + sBldS + sDescription + sBldE + "</TD>";
+                       s += "<TD>" + sBldS + sAuthor + sBldE + "</TD>";
+                       s += "</TR>\r\n";
+               }
+       }
+       oText.WriteLine(s);
+       oText.WriteLine("</BODY>");
+}
+
+function WriteTail(oText)
+{
+       oText.WriteLine("</HTML>");
+}
+
+function main()
+{
+       var oFso = new ActiveXObject("Scripting.FileSystemObject");
+       var oText = oFso.CreateTextFile(gsListFilePath,true);
+//     try{
+               WriteHead(oText,gsTitle,"");
+               WriteBody(oText,gsTitle,gsCaution);
+               WriteTail(oText);
+               oText.Close();
+               WScript.Echo("\90³\8fí\82É\8fI\97¹\82µ\82Ü\82µ\82½\81B");
+/*     } catch(e) {
+               WScript.Echo("\88Ù\8fí\8fI\97¹\82µ\82Ü\82µ\82½\81B");
+               throw e;
+       }
+*/
+}
+
+main();
+</script>
+</job>
\ No newline at end of file
diff --git a/project/sourcefilelist2.wsf b/project/sourcefilelist2.wsf
new file mode 100644 (file)
index 0000000..7cce893
--- /dev/null
@@ -0,0 +1,98 @@
+<!--//@STATE=\8a®\90¬
+//@DESCRIPTION
+//\83\\81[\83X\83t\83@\83C\83\8b\82Ì\83\8a\83X\83g\82ð\90\90¬\82·\82é\83X\83N\83\8a\83v\83g\82Å\82·\81B
+//@DESCRIPTION_END
+//@AUTHOR=S.F.
+-->
+<job ID="SourceFileList">
+<script language="JScript">
+//     var gsFolder = "/source/game";
+//     var gsFolder = "/images";
+       var gsFolder = "c:\\inetpub\\wwwroot\\source\\game";
+       var gsFolderURL = "/source/game";
+       var gsExePath = "c:\\inetpub\\wwwroot\\s2001.lzh";
+       var gsUmlPath = "c:\\inetpub\\wwwroot\\images\\uml2001.gif";
+       
+       var gsTitle = "\83Q\81[\83\80\83o\83C\83i\83\8a\81A\83\\81[\83X\81A\83\8a\83\\81[\83X\82Ì\83_\83E\83\93\83\8d\81[\83h\82Ì\83y\81[\83W";
+       var grFileType = /(.*\.bmp)|(.*\.cpp)|(.*\.h)|(.*.wsf)|(MAKEFILE)|(.*\.rc)|(.*\.ico)/i;
+       var gsListFilePath = "c:\\inetpub\\wwwroot\\cpplist.html";
+       var gsCaution = "\8fí\82É\8dì\90¬\92\86\82Ì\82½\82ß\81A\83\\81[\83X\82¨\82æ\82Ñ\83o\83C\83i\83\8a\82É\82Í\95s\8bï\8d\87\82ª\82 \82é\89Â\94\\90«\82ª\82 \82è\82Ü\82·\81B<br/>\81\83\96Æ\90Ó\8e\96\8d\80\81\84<br/>"
+                       + "\81E\82±\82ÌHP\82Ì\82·\82×\82Ä\82Ì\83\\81[\83X\82¨\82æ\82Ñ\83o\83C\83i\83\8a\82ð\8eg\97p\82µ\82Ä\8bN\82±\82è\82¤\82é\82 \82ç\82ä\82é\8c»\8fÛ\82É\8aÖ\82µ\82Ä\93¡\8c´\8cå\82Í\90Ó\94C\82ð\82Æ\82è\82Ü\82¹\82ñ\81B<BR/>" 
+                       + "\81E\82±\82Ì\83z\81[\83\80\83y\81[\83W\82Ì\8dì\8eÒ\82Í\81A\83z\81[\83\80\83y\81[\83W\8fã\82Ì\82·\82×\82Ä\82Ì\83R\83\93\83e\83\93\83c\82ð\97\98\97p\81A\8eg\97p\82µ\82Ä\8bN\82±\82Á\82½\82¢\82©\82È\82é\91¹\8aQ\82ð\94\85\8f\9e\82·\82é\90Ó\94C\82ð\95\89\82¢\82Ü\82¹\82ñ\81B<BR/>"  
+                       + "\8fã\8bL\82ð\82²\97¹\8f³\82Å\82«\82é\82©\82½\82Ì\82Ý\81A\83_\83E\83\93\83\8d\81[\83h\82µ\82Ä\82­\82¾\82³\82¢<br/>";
+       var gsExt = {   "ico" : "\83A\83C\83R\83\93\83t\83@\83C\83\8b" ,
+                       "bmp" : "\83r\83b\83g\83}\83b\83v\83t\83@\83C\83\8b" ,
+                       "rc"  : "\83\8a\83\\81[\83X\83t\83@\83C\83\8b"
+                       };
+function WriteHead(oText,sTitle,sTagOption)
+{
+       oText.WriteLine("<HTML>");
+       oText.WriteLine("<HEAD>");
+       oText.WriteLine("<META content=\"text/html;CHARSET=x-sjis\" http-equiv=\"Content-Type\" />");
+       oText.WriteLine("<META content=\"\83v\83\8d\83O\83\89\83~\83\93\83O\82Ì\83y\81[\83W\82Å\82·\81B\" name=\"description\" />");
+       oText.WriteLine("<TITLE>" + sTitle + "</TITLE>");
+       oText.WriteLine("<LINK HREF=\"styles.css\" REL=\"stylesheet\" TYPE=\"text/css\" />");
+    if(sTagOption.length > 0)
+           oText.WriteLine(sTagOption);
+       oText.WriteLine("<STYLE>");
+       oText.WriteLine("       TD {border:1px solid black;font-size:8pt;}");
+       oText.WriteLine("       TH {border:1px solid black;font-size:8pt;}");
+       oText.WriteLine("</STYLE>");
+       oText.WriteLine("</HEAD>");
+}
+
+
+function WriteBody(oText,sTitle,sCaution)
+{
+       var ofso = new ActiveXObject("Scripting.FileSystemObject");
+
+       var oFile = ofso.GetFile(gsExePath);
+       var dtFile = new Date(oFile.DateLastModified);
+       var sExeDate = dtFile.getFullYear() + "/" + (dtFile.getMonth() + 1) + "/" + dtFile.getDate() ;
+
+       oFile = ofso.GetFile(gsUmlPath);
+       dtFile = new Date(oFile.DateLastModified);
+       var sUmlDate = dtFile.getFullYear() + "/" + (dtFile.getMonth() + 1) + "/" + dtFile.getDate() ;
+
+       oText.WriteLine("<BODY LINK=BLUE VLINK=DARKRED >");
+       oText.WriteLine("<!-- TITLE -->");
+       oText.WriteLine("<TABLE WIDTH=\"100%\" ><TR><TD CLASS=H2 >" + sTitle + "</TD></TR></TABLE>");
+       oText.WriteLine("<DIV><FONT COLOR=\"RED\">\81\83\92\8d\88Ó\81\84" + sCaution + "</FONT></DIV>");
+//     oText.WriteLine("<P><a href=\"images/uml2001.gif\" >\82±\82Ì\83Q\81[\83\80\82ÌUML\83N\83\89\83X\90}(\8dX\90V\93ú " + sUmlDate + " )</a><br/>");
+//     oText.WriteLine("\82©\82È\82è\82¢\82¢\82©\82°\82ñ\82Å\82·\81B</P>");
+       oText.WriteLine("<P><a href=\"s2001.lzh\" >\82±\82Ì\83Q\81[\83\80\82Ì\83R\83\93\83p\83C\83\8b\8dÏ\82Ý\83o\83C\83i\83\8a\82¨\82æ\82Ñ\83\\81[\83X(\97vDirectX8\81A\8dX\90V\93ú " + sExeDate + " )</a><br/>");
+       oText.WriteLine("\83_\83E\83\93\83\8d\81[\83h\8cã\81A\89ð\93\80\82µ\82½GENX.EXE\82ð\83_\83u\83\8b\83N\83\8a\83b\83N\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢\81B\8fI\97¹\82ÍQ\83L\81[\82Å\82·\81B</P>");
+       oText.WriteLine("<!-- \83r\83\8b\83h\95û\96@ -->");
+       var oBuildMethod = ofso.OpenTextFile("BuildMethod.html");
+       var str_ = oBuildMethod.ReadAll();
+       oText.WriteLine(str_)
+       oBuildMethod.Close();
+       oText.WriteLine("</BODY>");
+}
+
+function WriteTail(oText)
+{
+       oText.WriteLine("</HTML>");
+}
+
+function main()
+{
+       var oFso = new ActiveXObject("Scripting.FileSystemObject");
+       var oText = oFso.CreateTextFile(gsListFilePath,true);
+//     try{
+               WriteHead(oText,gsTitle,"");
+               WriteBody(oText,gsTitle,gsCaution);
+               WriteTail(oText);
+               oText.Close();
+               WScript.Echo("\90³\8fí\82É\8fI\97¹\82µ\82Ü\82µ\82½\81B");
+/*     } catch(e) {
+               WScript.Echo("\88Ù\8fí\8fI\97¹\82µ\82Ü\82µ\82½\81B");
+               throw e;
+       }
+*/
+}
+
+main();
+</script>
+</job>
\ No newline at end of file
diff --git a/project/td32.TR2 b/project/td32.TR2
new file mode 100644 (file)
index 0000000..6264ef6
Binary files /dev/null and b/project/td32.TR2 differ
diff --git a/project/tdconfig.td2 b/project/tdconfig.td2
new file mode 100644 (file)
index 0000000..3f531e9
Binary files /dev/null and b/project/tdconfig.td2 differ
diff --git a/project/test.X b/project/test.X
new file mode 100644 (file)
index 0000000..9815de7
--- /dev/null
@@ -0,0 +1,1437 @@
+xof 0302txt 0064
+template Header {
+ <3D82AB43-62DA-11cf-AB39-0020AF71E433>
+ WORD major;
+ WORD minor;
+ DWORD flags;
+}
+
+template Vector {
+ <3D82AB5E-62DA-11cf-AB39-0020AF71E433>
+ FLOAT x;
+ FLOAT y;
+ FLOAT z;
+}
+
+template Coords2d {
+ <F6F23F44-7686-11cf-8F52-0040333594A3>
+ FLOAT u;
+ FLOAT v;
+}
+
+template Matrix4x4 {
+ <F6F23F45-7686-11cf-8F52-0040333594A3>
+ array FLOAT matrix[16];
+}
+
+template ColorRGBA {
+ <35FF44E0-6C7C-11cf-8F52-0040333594A3>
+ FLOAT red;
+ FLOAT green;
+ FLOAT blue;
+ FLOAT alpha;
+}
+
+template ColorRGB {
+ <D3E16E81-7835-11cf-8F52-0040333594A3>
+ FLOAT red;
+ FLOAT green;
+ FLOAT blue;
+}
+
+template IndexedColor {
+ <1630B820-7842-11cf-8F52-0040333594A3>
+ DWORD index;
+ ColorRGBA indexColor;
+}
+
+template Boolean {
+ <4885AE61-78E8-11cf-8F52-0040333594A3>
+ WORD truefalse;
+}
+
+template Boolean2d {
+ <4885AE63-78E8-11cf-8F52-0040333594A3>
+ Boolean u;
+ Boolean v;
+}
+
+template MaterialWrap {
+ <4885AE60-78E8-11cf-8F52-0040333594A3>
+ Boolean u;
+ Boolean v;
+}
+
+template TextureFilename {
+ <A42790E1-7810-11cf-8F52-0040333594A3>
+ STRING filename;
+}
+
+template Material {
+ <3D82AB4D-62DA-11cf-AB39-0020AF71E433>
+ ColorRGBA faceColor;
+ FLOAT power;
+ ColorRGB specularColor;
+ ColorRGB emissiveColor;
+ [...]
+}
+
+template MeshFace {
+ <3D82AB5F-62DA-11cf-AB39-0020AF71E433>
+ DWORD nFaceVertexIndices;
+ array DWORD faceVertexIndices[nFaceVertexIndices];
+}
+
+template MeshFaceWraps {
+ <4885AE62-78E8-11cf-8F52-0040333594A3>
+ DWORD nFaceWrapValues;
+ Boolean2d faceWrapValues;
+}
+
+template MeshTextureCoords {
+ <F6F23F40-7686-11cf-8F52-0040333594A3>
+ DWORD nTextureCoords;
+ array Coords2d textureCoords[nTextureCoords];
+}
+
+template MeshMaterialList {
+ <F6F23F42-7686-11cf-8F52-0040333594A3>
+ DWORD nMaterials;
+ DWORD nFaceIndexes;
+ array DWORD faceIndexes[nFaceIndexes];
+ [Material]
+}
+
+template MeshNormals {
+ <F6F23F43-7686-11cf-8F52-0040333594A3>
+ DWORD nNormals;
+ array Vector normals[nNormals];
+ DWORD nFaceNormals;
+ array MeshFace faceNormals[nFaceNormals];
+}
+
+template MeshVertexColors {
+ <1630B821-7842-11cf-8F52-0040333594A3>
+ DWORD nVertexColors;
+ array IndexedColor vertexColors[nVertexColors];
+}
+
+template Mesh {
+ <3D82AB44-62DA-11cf-AB39-0020AF71E433>
+ DWORD nVertices;
+ array Vector vertices[nVertices];
+ DWORD nFaces;
+ array MeshFace faces[nFaces];
+ [...]
+}
+
+template FrameTransformMatrix {
+ <F6F23F41-7686-11cf-8F52-0040333594A3>
+ Matrix4x4 frameMatrix;
+}
+
+template Frame {
+ <3D82AB46-62DA-11cf-AB39-0020AF71E433>
+ [...]
+}
+
+Header {
+ 1;
+ 0;
+ 1;
+}
+
+Mesh Body {
+ 208;
+ -0.131707;0.010976;0.487805;,
+ -0.159756;-0.014634;0.487805;,
+ -0.291463;-0.053659;0.487805;,
+ -0.324390;-0.043902;0.487805;,
+ -0.346341;-0.020732;0.487805;,
+ -0.357317;0.013415;0.487805;,
+ -0.346341;0.046341;0.487805;,
+ -0.324390;0.068293;0.487805;,
+ -0.230488;0.112195;0.487805;,
+ -0.196341;0.123171;0.487805;,
+ -0.157317;0.112195;0.487805;,
+ -0.131707;0.086585;0.487805;,
+ -0.123171;0.047561;0.487805;,
+ 0.324390;-0.043902;0.487805;,
+ 0.291463;-0.053659;0.487805;,
+ 0.159756;-0.014634;0.487805;,
+ 0.131707;0.010976;0.487805;,
+ 0.123171;0.047561;0.487805;,
+ 0.131707;0.086585;0.487805;,
+ 0.157317;0.112195;0.487805;,
+ 0.196341;0.123171;0.487805;,
+ 0.230488;0.112195;0.487805;,
+ 0.324390;0.068293;0.487805;,
+ 0.346341;0.046341;0.487805;,
+ 0.357317;0.013415;0.487805;,
+ 0.346341;-0.020732;0.487805;,
+ -0.342683;-0.062195;0.378049;,
+ -0.371951;-0.032927;0.378049;,
+ -0.346341;-0.020732;0.541463;,
+ -0.324390;-0.043902;0.541463;,
+ -0.357317;0.013415;0.541463;,
+ -0.346341;-0.020732;0.541463;,
+ -0.371951;-0.032927;0.378049;,
+ -0.384146;0.009756;0.378049;,
+ -0.371951;0.050000;0.378049;,
+ -0.346341;0.046341;0.541463;,
+ -0.342683;0.079268;0.378049;,
+ -0.371951;0.050000;0.378049;,
+ -0.346341;0.046341;0.541463;,
+ -0.324390;0.068293;0.541463;,
+ -0.230488;0.112195;0.541463;,
+ -0.226829;0.134146;0.378049;,
+ -0.302439;-0.073171;0.378049;,
+ -0.291463;-0.053659;0.541463;,
+ -0.159756;-0.014634;0.541463;,
+ -0.137805;-0.025610;0.378049;,
+ -0.131707;0.010976;0.541463;,
+ -0.102439;0.007317;0.378049;,
+ -0.131707;0.010976;0.541463;,
+ -0.123171;0.047561;0.541463;,
+ -0.091463;0.053659;0.378049;,
+ -0.102439;0.007317;0.378049;,
+ -0.131707;0.086585;0.541463;,
+ -0.102439;0.101220;0.378049;,
+ -0.157317;0.112195;0.541463;,
+ -0.131707;0.086585;0.541463;,
+ -0.102439;0.101220;0.378049;,
+ -0.135366;0.134146;0.378049;,
+ -0.182927;0.146341;0.378049;,
+ -0.196341;0.123171;0.541463;,
+ -0.054878;0.135366;0.378049;,
+ -0.073171;0.000000;0.378049;,
+ -0.219512;-0.073171;0.378049;,
+ -0.342683;-0.073171;0.378049;,
+ -0.439024;0.036585;0.378049;,
+ -0.182927;0.164634;0.378049;,
+ -0.073171;0.000000;0.378049;,
+ -0.073171;-0.036585;0.268293;,
+ -0.219512;-0.109756;0.268293;,
+ -0.219512;-0.073171;0.378049;,
+ -0.402439;-0.109756;0.268293;,
+ -0.342683;-0.073171;0.378049;,
+ -0.342683;-0.073171;0.378049;,
+ -0.402439;-0.109756;0.268293;,
+ -0.530488;0.036585;0.268293;,
+ -0.439024;0.036585;0.378049;,
+ -0.182927;0.164634;0.378049;,
+ -0.182927;0.212195;0.268293;,
+ -0.054878;0.182927;0.268293;,
+ -0.054878;0.135366;0.378049;,
+ -0.439024;0.036585;0.378049;,
+ -0.530488;0.036585;0.268293;,
+ -0.182927;0.212195;0.268293;,
+ -0.146341;0.262195;0.268293;,
+ -0.054878;0.182927;0.268293;,
+ -0.046341;0.292683;0.926829;,
+ -0.146341;0.262195;0.268293;,
+ -0.073171;0.329268;1.000000;,
+ 0.342683;-0.062195;0.378049;,
+ 0.371951;-0.032927;0.378049;,
+ 0.346341;-0.020732;0.541463;,
+ 0.324390;-0.043902;0.541463;,
+ 0.384146;0.009756;0.378049;,
+ 0.371951;-0.032927;0.378049;,
+ 0.346341;-0.020732;0.541463;,
+ 0.357317;0.013415;0.541463;,
+ 0.371951;0.050000;0.378049;,
+ 0.346341;0.046341;0.541463;,
+ 0.342683;0.079268;0.378049;,
+ 0.371951;0.050000;0.378049;,
+ 0.346341;0.046341;0.541463;,
+ 0.324390;0.068293;0.541463;,
+ 0.230488;0.112195;0.541463;,
+ 0.226829;0.134146;0.378049;,
+ 0.302439;-0.073171;0.378049;,
+ 0.291463;-0.053659;0.541463;,
+ 0.159756;-0.014634;0.541463;,
+ 0.137805;-0.025610;0.378049;,
+ 0.131707;0.010976;0.541463;,
+ 0.102439;0.007317;0.378049;,
+ 0.131707;0.010976;0.541463;,
+ 0.123171;0.047561;0.541463;,
+ 0.091463;0.053659;0.378049;,
+ 0.102439;0.007317;0.378049;,
+ 0.131707;0.086585;0.541463;,
+ 0.102439;0.101220;0.378049;,
+ 0.157317;0.112195;0.541463;,
+ 0.131707;0.086585;0.541463;,
+ 0.102439;0.101220;0.378049;,
+ 0.135366;0.134146;0.378049;,
+ 0.196341;0.123171;0.541463;,
+ 0.182927;0.146341;0.378049;,
+ 0.182927;0.164634;0.378049;,
+ 0.439024;0.036585;0.378049;,
+ 0.342683;-0.073171;0.378049;,
+ 0.219512;-0.073171;0.378049;,
+ 0.073171;0.000000;0.378049;,
+ 0.054878;0.135366;0.378049;,
+ 0.073171;-0.036585;0.268293;,
+ 0.073171;0.000000;0.378049;,
+ 0.219512;-0.073171;0.378049;,
+ 0.219512;-0.109756;0.268293;,
+ 0.342683;-0.073171;0.378049;,
+ 0.402439;-0.109756;0.268293;,
+ 0.439024;0.036585;0.378049;,
+ 0.530488;0.036585;0.268293;,
+ 0.402439;-0.109756;0.268293;,
+ 0.342683;-0.073171;0.378049;,
+ 0.054878;0.135366;0.378049;,
+ 0.054878;0.182927;0.268293;,
+ 0.182927;0.212195;0.268293;,
+ 0.182927;0.164634;0.378049;,
+ 0.530488;0.036585;0.268293;,
+ 0.439024;0.036585;0.378049;,
+ 0.054878;0.182927;0.268293;,
+ 0.146341;0.262195;0.268293;,
+ 0.182927;0.212195;0.268293;,
+ 0.046341;0.292683;0.926829;,
+ 0.073171;0.329268;1.000000;,
+ 0.146341;0.262195;0.268293;,
+ -0.025610;0.402439;0.926829;,
+ 0.025610;0.402439;0.926829;,
+ -0.182927;0.212195;0.268293;,
+ -0.182927;0.223171;0.487805;,
+ -0.146341;0.262195;0.268293;,
+ -0.548780;0.036585;0.487805;,
+ -0.182927;0.223171;0.487805;,
+ -0.658537;0.000000;0.268293;,
+ -0.073171;-0.068293;-0.170732;,
+ -0.285366;-0.054878;-0.317073;,
+ -0.073171;0.000000;-0.792683;,
+ -0.182927;0.047561;-0.682927;,
+ -0.108537;-0.036585;-0.682927;,
+ -0.384146;0.057317;-0.317073;,
+ -0.285366;-0.054878;-0.317073;,
+ -0.073171;0.000000;-0.792683;,
+ -0.146341;0.000000;-0.902439;,
+ -0.182927;0.047561;-0.682927;,
+ -0.219512;0.000000;-0.902439;,
+ -0.585366;0.000000;-0.317073;,
+ -0.384146;0.057317;-0.317073;,
+ 0.182927;0.212195;0.268293;,
+ 0.182927;0.223171;0.487805;,
+ 0.146341;0.262195;0.268293;,
+ 0.182927;0.223171;0.487805;,
+ 0.548780;0.036585;0.487805;,
+ 0.658537;0.000000;0.268293;,
+ -0.108537;-0.036585;-0.682927;,
+ 0.108537;-0.036585;-0.682927;,
+ 0.073171;0.000000;-0.792683;,
+ 0.285366;-0.054878;-0.317073;,
+ 0.073171;-0.068293;-0.170732;,
+ 0.108537;-0.036585;-0.682927;,
+ 0.182927;0.047561;-0.682927;,
+ 0.073171;0.000000;-0.792683;,
+ 0.285366;-0.054878;-0.317073;,
+ 0.384146;0.057317;-0.317073;,
+ 0.182927;0.047561;-0.682927;,
+ 0.146341;0.000000;-0.902439;,
+ 0.219512;0.000000;-0.902439;,
+ 0.384146;0.057317;-0.317073;,
+ 0.585366;0.000000;-0.317073;,
+ -0.219512;0.182927;-0.390244;,
+ 0.219512;0.182927;-0.390244;,
+ -0.025610;0.402439;0.926829;,
+ -0.073171;0.329268;1.000000;,
+ -0.073171;0.365854;0.341463;,
+ -0.073171;0.365854;0.341463;,
+ 0.073171;0.365854;0.341463;,
+ 0.073171;0.365854;0.341463;,
+ 0.073171;0.329268;1.000000;,
+ 0.025610;0.402439;0.926829;,
+ 0.073171;0.365854;0.341463;,
+ -0.073171;0.365854;0.341463;,
+ -0.324390;-0.043902;0.541463;,
+ -0.342683;-0.062195;0.378049;,
+ 0.324390;-0.043902;0.541463;,
+ 0.342683;-0.062195;0.378049;;
+
+  236;
+ 3;0,12,11,
+ 3;0,11,10,
+ 3;0,10,9,
+ 3;0,9,8,
+ 3;0,8,7,
+ 3;0,7,6,
+ 3;0,6,5,
+ 3;0,5,4,
+ 3;0,4,3,
+ 3;0,3,2,
+ 3;0,2,1,
+ 3;13,25,24,
+ 3;13,24,23,
+ 3;13,23,22,
+ 3;13,22,21,
+ 3;13,21,20,
+ 3;13,20,19,
+ 3;13,19,18,
+ 3;13,18,17,
+ 3;13,17,16,
+ 3;13,16,15,
+ 3;13,15,14,
+ 3;26,29,28,
+ 3;26,28,27,
+ 3;30,33,32,
+ 3;30,32,31,
+ 3;34,35,30,
+ 3;34,30,33,
+ 3;36,39,38,
+ 3;36,38,37,
+ 3;39,36,41,
+ 3;39,41,40,
+ 3;26,29,43,
+ 3;26,43,42,
+ 3;43,42,45,
+ 3;43,45,44,
+ 3;44,45,47,
+ 3;44,47,46,
+ 3;48,51,50,
+ 3;48,50,49,
+ 3;49,50,53,
+ 3;49,53,52,
+ 3;54,57,56,
+ 3;54,56,55,
+ 3;58,59,54,
+ 3;58,54,57,
+ 3;59,58,41,
+ 3;59,41,40,
+ 3;60,65,64,
+ 3;60,64,63,
+ 3;60,63,62,
+ 3;60,62,61,
+ 3;66,69,68,
+ 3;66,68,67,
+ 3;69,71,70,
+ 3;69,70,68,
+ 3;72,75,74,
+ 3;72,74,73,
+ 3;76,79,78,
+ 3;76,78,77,
+ 3;80,76,77,
+ 3;80,77,81,
+ 3;82,84,83,
+ 3;85,87,86,
+ 3;85,86,78,
+ 3;88,91,90,
+ 3;88,90,89,
+ 3;92,95,94,
+ 3;92,94,93,
+ 3;96,97,95,
+ 3;96,95,92,
+ 3;98,101,100,
+ 3;98,100,99,
+ 3;101,98,103,
+ 3;101,103,102,
+ 3;88,91,105,
+ 3;88,105,104,
+ 3;105,104,107,
+ 3;105,107,106,
+ 3;106,107,109,
+ 3;106,109,108,
+ 3;110,113,112,
+ 3;110,112,111,
+ 3;111,112,115,
+ 3;111,115,114,
+ 3;116,119,118,
+ 3;116,118,117,
+ 3;120,121,119,
+ 3;120,119,116,
+ 3;121,120,102,
+ 3;121,102,103,
+ 3;122,127,126,
+ 3;122,126,125,
+ 3;122,125,124,
+ 3;122,124,123,
+ 3;60,61,126,
+ 3;60,126,127,
+ 3;128,129,66,
+ 3;128,66,67,
+ 3;130,129,128,
+ 3;130,128,131,
+ 3;132,130,131,
+ 3;132,131,133,
+ 3;134,137,136,
+ 3;134,136,135,
+ 3;138,139,78,
+ 3;138,78,79,
+ 3;138,141,140,
+ 3;138,140,139,
+ 3;141,143,142,
+ 3;141,142,140,
+ 3;144,146,145,
+ 3;139,147,85,
+ 3;139,85,78,
+ 3;147,148,87,
+ 3;147,87,85,
+ 3;148,147,139,
+ 3;148,139,149,
+ 3;148,151,150,
+ 3;148,150,87,
+ 3;152,154,153,
+ 3;77,156,155,
+ 3;77,155,81,
+ 3;81,155,157,
+ 3;67,68,158,
+ 3;158,68,70,
+ 3;158,70,159,
+ 3;160,162,161,
+ 3;162,164,163,
+ 3;162,163,161,
+ 3;164,73,74,
+ 3;164,74,163,
+ 3;165,167,166,
+ 3;166,167,168,
+ 3;168,167,170,
+ 3;168,170,169,
+ 3;169,170,81,
+ 3;169,81,157,
+ 3;171,173,172,
+ 3;174,140,142,
+ 3;174,142,175,
+ 3;175,142,176,
+ 3;177,165,179,
+ 3;177,179,178,
+ 3;159,177,178,
+ 3;159,178,180,
+ 3;131,128,181,
+ 3;67,158,181,
+ 3;67,181,128,
+ 3;181,158,159,
+ 3;181,159,180,
+ 3;131,181,180,
+ 3;131,180,133,
+ 3;182,184,183,
+ 3;185,182,183,
+ 3;185,183,186,
+ 3;136,185,186,
+ 3;136,186,135,
+ 3;187,179,188,
+ 3;187,188,189,
+ 3;187,189,191,
+ 3;187,191,190,
+ 3;190,191,176,
+ 3;190,176,142,
+ 3;192,166,168,
+ 3;165,166,192,
+ 3;193,179,165,
+ 3;193,165,192,
+ 3;188,179,193,
+ 3;188,193,189,
+ 3;156,86,157,
+ 3;156,157,155,
+ 3;194,196,154,
+ 3;194,154,195,
+ 3;86,192,169,
+ 3;86,169,157,
+ 3;169,192,168,
+ 3;149,174,175,
+ 3;149,175,176,
+ 3;151,198,197,
+ 3;151,197,150,
+ 3;199,201,200,
+ 3;199,200,173,
+ 3;83,203,202,
+ 3;83,202,145,
+ 3;86,149,193,
+ 3;86,193,192,
+ 3;193,149,176,
+ 3;193,176,191,
+ 3;193,191,189,
+ 3;204,205,32,
+ 3;204,32,31,
+ 3;35,34,33,
+ 3;35,33,30,
+ 3;39,36,37,
+ 3;39,37,38,
+ 3;36,39,40,
+ 3;36,40,41,
+ 3;29,26,42,
+ 3;29,42,43,
+ 3;42,43,44,
+ 3;42,44,45,
+ 3;45,44,46,
+ 3;45,46,47,
+ 3;51,48,49,
+ 3;51,49,50,
+ 3;50,49,52,
+ 3;50,52,53,
+ 3;57,54,55,
+ 3;57,55,56,
+ 3;206,207,93,
+ 3;206,93,94,
+ 3;97,96,92,
+ 3;97,92,95,
+ 3;101,98,99,
+ 3;101,99,100,
+ 3;98,101,102,
+ 3;98,102,103,
+ 3;91,88,104,
+ 3;91,104,105,
+ 3;104,105,106,
+ 3;104,106,107,
+ 3;107,106,108,
+ 3;107,108,109,
+ 3;113,110,111,
+ 3;113,111,112,
+ 3;112,111,114,
+ 3;112,114,115,
+ 3;119,116,117,
+ 3;119,117,118,
+ 3;154,152,153,
+ 3;155,81,157,
+ 3;173,171,172,
+ 3;140,174,175,
+ 3;140,175,142,
+ 3;179,187,188,
+
+ MeshMaterialList {
+  4;
+  236;
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  0,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  3,
+  3,
+  3,
+  3,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  2,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  1,
+  3,
+  3,
+  3,
+  3,
+  3,
+  3;
+
+  Material {
+   0.000000;0.000000;0.000000;1.0;;
+   100.000000;;
+   0.000000;0.000000;0.000000;;
+   0.049988;0.099976;0.199982;;
+  }
+  Material {
+   0.599976;0.649994;0.699982;1.0;;
+   8.000000;;
+   0.699982;0.699982;0.699982;;
+   0.000000;0.000000;0.000000;;
+   TextureFilename {
+    "media\\mecha1.bmp";
+   }
+  }
+  Material {
+   0.349976;0.349976;0.349976;1.0;;
+   8.000000;;
+   0.699982;0.699982;0.699982;;
+   0.000000;0.000000;0.000000;;
+   TextureFilename {
+    "media\\mecha1.bmp";
+   }
+  }
+  Material {
+   0.899994;0.949982;1.000000;1.0;;
+   8.000000;;
+   0.699982;0.699982;0.699982;;
+   0.000000;0.000000;0.000000;;
+   TextureFilename {
+    "media\\mecha1.bmp";
+   }
+  }
+ }
+
+ MeshNormals {
+  116;
+  0.000000;0.000000;1.000000;,
+  -0.706250;-0.689826;0.159219;,
+  -0.944234;-0.284769;0.165314;,
+  0.942381;-0.298421;-0.151203;,
+  0.701503;-0.701503;-0.125642;,
+  0.423486;-0.899253;-0.109558;,
+  0.270127;0.953388;-0.134470;,
+  0.279092;-0.955202;0.098477;,
+  0.671803;-0.727786;0.137870;,
+  0.958038;-0.225421;0.177056;,
+  0.957331;0.215736;0.192291;,
+  -0.694683;-0.694683;-0.186631;,
+  0.255209;0.953676;0.159280;,
+  -0.282654;0.952099;0.116681;,
+  0.210105;-0.930465;0.300150;,
+  0.000000;-0.996815;0.079745;,
+  0.230682;-0.962845;0.140415;,
+  -0.389475;-0.908774;0.149798;,
+  -0.350088;-0.810203;0.470118;,
+  -0.740370;-0.650325;0.170085;,
+  -0.638692;-0.558856;0.528917;,
+  0.205261;0.898018;0.389141;,
+  -0.419960;0.834860;0.355869;,
+  -0.650124;-0.748034;0.133354;,
+  -0.706250;0.689826;-0.159219;,
+  0.944234;-0.284769;0.165314;,
+  0.942381;0.298421;0.151203;,
+  0.701503;0.701503;0.125642;,
+  0.423486;0.899253;0.109558;,
+  0.270127;-0.953388;0.134470;,
+  0.279092;0.955202;-0.098477;,
+  0.671803;0.727786;-0.137870;,
+  0.958038;0.225421;-0.177056;,
+  0.957331;-0.215736;-0.192291;,
+  -0.694683;0.694683;0.186631;,
+  -0.255209;0.953676;0.159280;,
+  0.282654;0.952099;0.116681;,
+  -0.210105;-0.930465;0.300150;,
+  -0.230682;-0.962845;0.140415;,
+  0.350088;-0.810203;0.470118;,
+  0.389475;-0.908774;0.149798;,
+  0.638692;-0.558856;0.528917;,
+  0.740370;-0.650325;0.170085;,
+  0.000000;0.917556;0.397607;,
+  -0.205261;0.898018;0.389141;,
+  0.419960;0.834860;0.355869;,
+  0.000000;-0.986394;0.164399;,
+  0.000000;-0.894427;0.447214;,
+  0.650124;-0.748034;0.133354;,
+  0.000000;0.707107;0.707107;,
+  0.806679;-0.590253;0.029513;,
+  0.452309;-0.890913;0.041119;,
+  0.274649;-0.961272;0.022887;,
+  0.110409;-0.993683;-0.020074;,
+  -0.522303;-0.823632;-0.220974;,
+  -0.359246;-0.848221;-0.389184;,
+  -0.680374;-0.620341;-0.390215;,
+  -0.379299;-0.868395;-0.319410;,
+  -0.710782;-0.640705;-0.290320;,
+  -0.248166;-0.954485;0.165444;,
+  0.000000;-0.977323;0.211753;,
+  0.264392;-0.949783;0.167360;,
+  0.274089;-0.961090;0.034372;,
+  0.806679;0.590253;-0.029513;,
+  -0.452309;-0.890913;0.041119;,
+  -0.274649;-0.961272;0.022887;,
+  0.379299;-0.868395;-0.319410;,
+  0.359246;-0.848221;-0.389184;,
+  0.320610;-0.931772;-0.170324;,
+  -0.975668;0.219027;-0.009956;,
+  0.975668;-0.219027;0.009956;,
+  0.680374;-0.620341;-0.390215;,
+  0.710782;-0.640705;-0.290320;,
+  0.248166;-0.954485;0.165444;,
+  -0.264392;-0.949783;0.167360;,
+  -0.274089;-0.961090;0.034372;,
+  0.000000;0.941742;-0.336336;,
+  0.389775;0.883489;-0.259850;,
+  0.000000;0.910366;-0.413803;,
+  -0.389775;0.883489;-0.259850;,
+  -0.453633;0.887542;0.080536;,
+  -0.825461;0.563590;0.031311;,
+  -0.455186;0.888594;-0.056626;,
+  -0.473879;0.829288;-0.296174;,
+  0.453633;0.887542;0.080536;,
+  0.000000;0.998053;-0.062378;,
+  0.825461;0.563590;0.031311;,
+  0.000000;0.576683;-0.816968;,
+  0.000000;0.992833;-0.119508;,
+  0.455186;0.888594;-0.056626;,
+  0.473879;0.829288;-0.296174;,
+  0.706250;0.689826;-0.159219;,
+  -0.942381;0.298421;0.151203;,
+  -0.701503;0.701503;0.125642;,
+  -0.423486;0.899253;0.109558;,
+  -0.270127;-0.953388;0.134470;,
+  -0.279092;0.955202;-0.098477;,
+  -0.671803;0.727786;-0.137870;,
+  -0.958038;0.225421;-0.177056;,
+  -0.957331;-0.215736;-0.192291;,
+  0.694683;0.694683;0.186631;,
+  0.706250;-0.689826;0.159219;,
+  -0.942381;-0.298421;-0.151203;,
+  -0.701503;-0.701503;-0.125642;,
+  -0.423486;-0.899253;-0.109558;,
+  -0.270127;0.953388;-0.134470;,
+  -0.279092;-0.955202;0.098477;,
+  -0.671803;-0.727786;0.137870;,
+  -0.958038;-0.225421;0.177056;,
+  -0.957331;0.215736;0.192291;,
+  0.694683;-0.694683;-0.186631;,
+  -0.806679;0.590253;-0.029513;,
+  -0.274649;0.961272;-0.022887;,
+  -0.806679;-0.590253;0.029513;,
+  0.452309;0.890913;-0.041119;,
+  -0.248166;0.954485;-0.165444;;
+
+  236;
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;1,1,1;,
+  3;1,1,1;,
+  3;2,2,2;,
+  3;2,2,2;,
+  3;3,3,3;,
+  3;3,3,3;,
+  3;4,4,4;,
+  3;4,4,4;,
+  3;5,5,5;,
+  3;5,5,5;,
+  3;6,6,6;,
+  3;6,6,6;,
+  3;7,7,7;,
+  3;7,7,7;,
+  3;8,8,8;,
+  3;8,8,8;,
+  3;9,9,9;,
+  3;9,9,9;,
+  3;10,10,10;,
+  3;10,10,10;,
+  3;11,11,11;,
+  3;11,11,11;,
+  3;12,12,12;,
+  3;12,12,12;,
+  3;13,13,13;,
+  3;13,13,13;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;14,14,16,
+  3;14,16,15,
+  3;14,18,17,
+  3;14,17,16,
+  3;18,20,19,
+  3;18,19,17,
+  3;21,21,21;,
+  3;21,21,21;,
+  3;22,22,22;,
+  3;22,22,22;,
+  3;0,0,0;,
+  3;23,23,23;,
+  3;23,23,23;,
+  3;24,24,24;,
+  3;24,24,24;,
+  3;25,25,25;,
+  3;25,25,25;,
+  3;26,26,26;,
+  3;26,26,26;,
+  3;27,27,27;,
+  3;27,27,27;,
+  3;28,28,28;,
+  3;28,28,28;,
+  3;29,29,29;,
+  3;29,29,29;,
+  3;30,30,30;,
+  3;30,30,30;,
+  3;31,31,31;,
+  3;31,31,31;,
+  3;32,32,32;,
+  3;32,32,32;,
+  3;33,33,33;,
+  3;33,33,33;,
+  3;34,34,34;,
+  3;34,34,34;,
+  3;35,35,35;,
+  3;35,35,35;,
+  3;36,36,36;,
+  3;36,36,36;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;0,0,0;,
+  3;15,37,14,
+  3;15,14,15,
+  3;37,37,15,
+  3;37,15,38,
+  3;39,37,38,
+  3;39,38,40,
+  3;41,39,40,
+  3;41,40,42,
+  3;43,43,43;,
+  3;43,43,43;,
+  3;44,44,44;,
+  3;44,44,44;,
+  3;45,45,45;,
+  3;45,45,45;,
+  3;0,0,0;,
+  3;46,46,46;,
+  3;46,46,46;,
+  3;47,47,47;,
+  3;47,47,47;,
+  3;48,48,48;,
+  3;48,48,48;,
+  3;49,49,49;,
+  3;49,49,49;,
+  3;50,50,50;,
+  3;51,51,51;,
+  3;51,51,51;,
+  3;52,52,52;,
+  3;15,16,53,
+  3;53,16,17,
+  3;53,17,54,
+  3;55,57,56,
+  3;57,54,58,
+  3;57,58,56,
+  3;54,17,19,
+  3;54,19,58,
+  3;59,59,59;,
+  3;60,60,60;,
+  3;61,61,61;,
+  3;61,61,61;,
+  3;62,62,62;,
+  3;62,62,62;,
+  3;63,63,63;,
+  3;64,64,64;,
+  3;64,64,64;,
+  3;65,65,65;,
+  3;57,55,67,
+  3;57,67,66,
+  3;54,57,66,
+  3;54,66,68,
+  3;38,15,69,
+  3;15,53,70,
+  3;15,70,15,
+  3;70,53,54,
+  3;70,54,68,
+  3;38,70,68,
+  3;38,68,40,
+  3;66,67,71,
+  3;68,66,71,
+  3;68,71,72,
+  3;40,68,72,
+  3;40,72,42,
+  3;73,73,73;,
+  3;60,60,60;,
+  3;74,74,74;,
+  3;74,74,74;,
+  3;75,75,75;,
+  3;75,75,75;,
+  3;76,76,76;,
+  3;77,77,77;,
+  3;78,78,78;,
+  3;78,78,78;,
+  3;79,79,79;,
+  3;76,76,76;,
+  3;80,80,80;,
+  3;80,80,80;,
+  3;81,81,81;,
+  3;81,81,81;,
+  3;82,82,82;,
+  3;82,82,82;,
+  3;83,83,83;,
+  3;84,84,84;,
+  3;84,84,84;,
+  3;85,85,85;,
+  3;85,85,85;,
+  3;86,86,86;,
+  3;86,86,86;,
+  3;87,87,87;,
+  3;87,87,87;,
+  3;88,88,88;,
+  3;88,88,88;,
+  3;89,89,89;,
+  3;89,89,89;,
+  3;90,90,90;,
+  3;91,91,91;,
+  3;91,91,91;,
+  3;92,92,92;,
+  3;92,92,92;,
+  3;93,93,93;,
+  3;93,93,93;,
+  3;94,94,94;,
+  3;94,94,94;,
+  3;95,95,95;,
+  3;95,95,95;,
+  3;96,96,96;,
+  3;96,96,96;,
+  3;97,97,97;,
+  3;97,97,97;,
+  3;98,98,98;,
+  3;98,98,98;,
+  3;99,99,99;,
+  3;99,99,99;,
+  3;100,100,100;,
+  3;100,100,100;,
+  3;101,101,101;,
+  3;101,101,101;,
+  3;102,102,102;,
+  3;102,102,102;,
+  3;103,103,103;,
+  3;103,103,103;,
+  3;104,104,104;,
+  3;104,104,104;,
+  3;105,105,105;,
+  3;105,105,105;,
+  3;106,106,106;,
+  3;106,106,106;,
+  3;107,107,107;,
+  3;107,107,107;,
+  3;108,108,108;,
+  3;108,108,108;,
+  3;109,109,109;,
+  3;109,109,109;,
+  3;110,110,110;,
+  3;110,110,110;,
+  3;111,111,111;,
+  3;112,112,112;,
+  3;113,113,113;,
+  3;114,114,114;,
+  3;114,114,114;,
+  3;115,115,115;,
+ }
+
+ MeshTextureCoords {
+ 208;
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.000000;0.000000;,
+ 0.756863;0.670588;,
+ 0.780392;0.670588;,
+ 0.760784;0.756863;,
+ 0.745098;0.756863;,
+ 0.756863;0.756863;,
+ 0.756863;0.823529;,
+ 0.670588;0.847059;,
+ 0.670588;0.764706;,
+ 0.670588;0.686275;,
+ 0.756863;0.694118;,
+ 0.756863;0.670588;,
+ 0.780392;0.670588;,
+ 0.760784;0.756863;,
+ 0.745098;0.756863;,
+ 0.674510;0.756863;,
+ 0.670588;0.670588;,
+ 0.729412;0.670588;,
+ 0.717647;0.756863;,
+ 0.619608;0.756863;,
+ 0.603922;0.670588;,
+ 0.600000;0.756863;,
+ 0.576471;0.670588;,
+ 0.756863;0.760784;,
+ 0.756863;0.690196;,
+ 0.670588;0.678431;,
+ 0.670588;0.768627;,
+ 0.756863;0.615686;,
+ 0.670588;0.584314;,
+ 0.615686;0.756863;,
+ 0.600000;0.756863;,
+ 0.576471;0.670588;,
+ 0.600000;0.670588;,
+ 0.635294;0.670588;,
+ 0.647059;0.756863;,
+ 0.454902;0.517647;,
+ 0.443137;0.784314;,
+ 0.333333;0.925490;,
+ 0.239216;0.925490;,
+ 0.164706;0.713725;,
+ 0.360784;0.462745;,
+ 0.552941;0.670588;,
+ 0.552941;0.611765;,
+ 0.666667;0.611765;,
+ 0.666667;0.670588;,
+ 0.803922;0.611765;,
+ 0.756863;0.670588;,
+ 0.670588;0.925490;,
+ 0.611765;1.000000;,
+ 0.611765;0.713725;,
+ 0.670588;0.713725;,
+ 0.635294;0.670588;,
+ 0.635294;0.611765;,
+ 0.541176;0.611765;,
+ 0.541176;0.670588;,
+ 0.831373;0.670588;,
+ 0.901961;0.611765;,
+ 0.360784;0.368627;,
+ 0.388235;0.270588;,
+ 0.454902;0.427451;,
+ 0.533333;0.960784;,
+ 0.607843;0.611765;,
+ 0.552941;1.000000;,
+ 0.239216;0.670588;,
+ 0.215686;0.670588;,
+ 0.235294;0.756863;,
+ 0.250980;0.756863;,
+ 0.670588;0.764706;,
+ 0.670588;0.847059;,
+ 0.756863;0.823529;,
+ 0.756863;0.756863;,
+ 0.670588;0.686275;,
+ 0.756863;0.694118;,
+ 0.239216;0.670588;,
+ 0.215686;0.670588;,
+ 0.235294;0.756863;,
+ 0.250980;0.756863;,
+ 0.321569;0.756863;,
+ 0.325490;0.670588;,
+ 0.266667;0.670588;,
+ 0.278431;0.756863;,
+ 0.376471;0.756863;,
+ 0.392157;0.670588;,
+ 0.400000;0.756863;,
+ 0.419608;0.670588;,
+ 0.756863;0.760784;,
+ 0.756863;0.690196;,
+ 0.670588;0.678431;,
+ 0.670588;0.768627;,
+ 0.756863;0.615686;,
+ 0.670588;0.584314;,
+ 0.380392;0.756863;,
+ 0.400000;0.756863;,
+ 0.419608;0.670588;,
+ 0.396078;0.670588;,
+ 0.349020;0.756863;,
+ 0.360784;0.670588;,
+ 0.635294;0.462745;,
+ 0.831373;0.713725;,
+ 0.756863;0.925490;,
+ 0.666667;0.925490;,
+ 0.552941;0.784314;,
+ 0.541176;0.517647;,
+ 0.443137;0.611765;,
+ 0.443137;0.670588;,
+ 0.333333;0.670588;,
+ 0.333333;0.611765;,
+ 0.239216;0.670588;,
+ 0.192157;0.611765;,
+ 0.670588;0.713725;,
+ 0.611765;0.713725;,
+ 0.611765;1.000000;,
+ 0.670588;0.925490;,
+ 0.454902;0.670588;,
+ 0.454902;0.611765;,
+ 0.360784;0.611765;,
+ 0.360784;0.670588;,
+ 0.094118;0.611765;,
+ 0.164706;0.670588;,
+ 0.541176;0.427451;,
+ 0.607843;0.270588;,
+ 0.635294;0.368627;,
+ 0.462745;0.960784;,
+ 0.443137;1.000000;,
+ 0.388235;0.611765;,
+ 0.517647;0.960784;,
+ 0.478431;0.960784;,
+ 0.611765;0.368627;,
+ 0.729412;0.349020;,
+ 0.611765;0.270588;,
+ 0.913725;0.729412;,
+ 0.635294;0.729412;,
+ 1.000000;0.611765;,
+ 0.552941;0.384314;,
+ 0.713725;0.305882;,
+ 0.054902;0.784314;,
+ 0.113725;0.690196;,
+ 0.113725;0.854902;,
+ 0.305882;0.670588;,
+ 0.305882;0.890196;,
+ 0.552941;0.054902;,
+ 0.607843;0.000000;,
+ 0.635294;0.113725;,
+ 0.666667;0.000000;,
+ 0.941176;0.305882;,
+ 0.788235;0.305882;,
+ 0.611765;0.368627;,
+ 0.729412;0.349020;,
+ 0.611765;0.270588;,
+ 0.360784;0.729412;,
+ 0.082353;0.729412;,
+ 0.000000;0.611765;,
+ 0.580392;0.113725;,
+ 0.415686;0.113725;,
+ 0.443137;0.054902;,
+ 0.282353;0.305882;,
+ 0.443137;0.384314;,
+ 0.113725;0.854902;,
+ 0.113725;0.690196;,
+ 0.054902;0.784314;,
+ 0.305882;0.890196;,
+ 0.305882;0.670588;,
+ 0.360784;0.113725;,
+ 0.388235;0.000000;,
+ 0.333333;0.000000;,
+ 0.207843;0.305882;,
+ 0.054902;0.305882;,
+ 0.666667;0.266667;,
+ 0.333333;0.266667;,
+ 0.960784;0.000000;,
+ 1.000000;0.141176;,
+ 0.650980;0.070588;,
+ 0.552941;0.650980;,
+ 0.443137;0.650980;,
+ 0.650980;0.070588;,
+ 1.000000;0.141176;,
+ 0.960784;0.000000;,
+ 0.552941;0.070588;,
+ 0.443137;0.070588;,
+ 0.756863;0.870588;,
+ 0.670588;0.905882;,
+ 0.756863;0.870588;,
+ 0.670588;0.905882;;
+ }
+}
diff --git a/project/test.dis b/project/test.dis
new file mode 100644 (file)
index 0000000..f45d8e0
--- /dev/null
@@ -0,0 +1,75 @@
+0 Reset
+0 SetRestartPosition
+0 SetScrollSpeed 1
+56 SetEnemy 0 0 166 -28 0.5
+80 SetEnemy 0 0 166 -28 0.5
+104 SetEnemy 0 0 166 -28 0.5
+144 SetEnemy 0 0 481 -25 0.5
+168 SetEnemy 0 0 481 -25 0.5
+192 SetEnemy 0 0 481 -25 0.5
+216 SetEnemy 0 0 481 -25 0.5
+240 SetEnemy 0 0 481 -25 0.5
+280 SetEnemy 0 0 316 -26 0.5
+304 SetEnemy 0 0 316 -26 0.5
+328 SetEnemy 0 0 316 -26 0.5
+328 SetArmy 0 0 257 -22 0.5
+352 SetEnemy 0 0 316 -26 0.5
+376 SetEnemy 0 0 316 -26 0.5
+392 SetEnemy 0 0 483 -25 0.5
+408 SetEnemy 0 0 483 -25 0.5
+424 SetEnemy 0 0 483 -25 0.5
+440 SetEnemy 0 0 483 -25 0.5
+456 SetEnemy 0 0 483 -25 0.5
+472 SetEnemy 0 0 483 -25 0.5
+488 SetEnemy 0 0 482 -27 0.5
+496 SetEnemy 0 0 482 -27 0.5
+544 SetEnemy 0 0 147 -29 0.5
+560 SetEnemy 0 0 147 -29 0.5
+592 SetEnemy 0 0 479 -27 0.5
+608 SetEnemy 0 0 479 -27 0.5
+632 SetEnemy 0 0 155 -26 0.5
+648 SetEnemy 0 0 477 -26 0.5
+664 SetEnemy 0 0 154 -27 0.5
+680 SetEnemy 0 0 154 -29 0.5
+696 SetEnemy 0 0 312 -27 0.5
+712 SetEnemy 0 0 312 -27 0.5
+728 SetEnemy 0 0 312 -27 0.5
+800 SetEnemy 0 1 157 -27 0.5
+800 SetEnemy 0 1 206 -27 0.5
+800 SetEnemy 0 1 257 -26 0.5
+824 SetEnemy 0 1 389 -25 0.3
+824 SetEnemy 0 1 442 -24 0.3
+824 SetEnemy 0 1 491 -25 0.3
+872 SetEnemy 0 1 259 -27 0.3
+872 SetEnemy 0 1 310 -28 0.3
+872 SetEnemy 0 1 359 -28 0.3
+928 SetEnemy 0 1 147 -27 0.3
+928 SetEnemy 0 1 199 -27 0.3
+928 SetEnemy 0 1 254 -27 0.3
+928 SetEnemy 0 1 495 -32 0.3
+976 SetEnemy 0 0 451 -28 0.3
+976 SetEnemy 0 0 498 -28 0.3
+976 SetEnemy 0 1 149 -31 0.3
+976 SetEnemy 0 1 201 -33 0.3
+1157 SetArmy 0 0 176 -52 0.8
+1157 SetArmy 0 0 224 -51 0.8
+1157 SetEnemy 0 1 477 -32 0.3
+1181 SetEnemy 0 1 476 -31 0.3
+1205 SetEnemy 0 1 476 -31 0.3
+1229 SetEnemy 0 1 476 -31 0.3
+1253 SetEnemy 0 1 476 -31 0.3
+1253 SetEnemy 0 0 152 -32 0.3
+1269 SetEnemy 0 0 152 -32 0.3
+1285 SetEnemy 0 0 152 -32 0.3
+1301 SetEnemy 0 0 152 -32 0.3
+1317 SetEnemy 0 0 152 -32 0.3
+1347 SetEnemy 0 0 341 -26 0.3
+1363 SetEnemy 0 0 341 -26 0.3
+1379 SetEnemy 0 0 341 -26 0.3
+1395 SetEnemy 0 0 341 -26 0.3
+1411 SetEnemy 0 0 341 -26 0.3
+1622 SetArmy 0 0 504 -38 0.8
+1928 SetArmy 0 0 398 -33 0.8
+1928 SetArmy 0 0 149 -32 0.8
+1928 SetArmy 0 0 212 -33 0.8
+2024 SetArmy 0 0 251 -34 0.8
\ No newline at end of file
diff --git a/project/test.map b/project/test.map
new file mode 100644 (file)
index 0000000..9ad119c
--- /dev/null
@@ -0,0 +1,146 @@
+8
+media\\stage0.png
+64 64 0 0 0xff000000
+media\\stage1.png
+64 64 0 0 0xff000000
+media\\stage2.png
+64 64 0 0 0xff000000
+media\\stage3.png
+64 64 0 0 0xff000000
+media\\stage4.png
+64 64 0 0 0xff000000
+media\\stage5.png
+64 64 0 0 0xff000000
+media\\stage6.png
+64 64 0 0 0xff000000
+media\\stage7.png
+64 64 0 0 0xff000000
+8 128
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x4
+0x1 0x1 0x1 0x9 0xa 0xb 0xc 0x3
+0x1 0x1 0x1 0x5 0x6 0x7 0x8 0x2
+0x1 0x1 0x1 0x1 0xd 0xe 0xf 0x10
+0x1 0x1 0x1 0x1 0x1 0x70003 0x70004 0x70007
+0x1 0x1 0x1 0x1 0x1000d 0x1000e 0x1000f 0x10010
+0x1 0x1 0x20005 0x20006 0x10009 0x1000a 0x1000b 0x1000c
+0x1 0x1 0x20001 0x20002 0x10005 0x10006 0x10007 0x10008
+0x1 0x1 0x1 0x1 0x1 0x1 0x20007 0x10004
+0x1 0x1 0x1 0x1 0x1 0x1 0x20003 0x20004
+0x1 0x1 0x1 0x1 0x1 0x1 0x20009 0x2000a
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x4
+0x1 0x2000f 0x20010 0x1 0x1 0x1 0x1 0x4
+0x1 0x2000b 0x2000c 0x2000e 0x1 0x1 0x1 0x4
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x4
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x4
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x4
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x4
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x4
+0x1 0x1 0x1 0x1 0x1 0x1 0x2000f 0x20010
+0x1 0x1 0x1 0x1 0x1 0x1 0x2000b 0x2000c
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x5
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x5
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x5
+0x3000d 0x3000e 0x3000f 0x30010 0x30005 0x30006 0x30007 0x5
+0x30009 0x3000a 0x3000b 0x3000c 0x30001 0x30002 0x30003 0x30004
+0x4000d 0x4000e 0x4000f 0x40010 0x40005 0x40006 0x40007 0x40008
+0x40009 0x4000a 0x4000b 0x4000c 0x1 0x40002 0x40003 0x1
+0x5000d 0x5000e 0x5000f 0x50010 0x1 0x1 0x1 0x1
+0x50009 0x5000a 0x5000b 0x5000c 0x6000d 0x6000e 0x6000f 0x60010
+0x50005 0x50006 0x50007 0x50008 0x60009 0x6000a 0x6000b 0x6000c
+0x50001 0x50002 0x1 0x60005 0x60006 0x60007 0x60008 0x1
+0x50003 0x1 0x1 0x1 0x60001 0x60002 0x60003 0x60004
+0x50004 0x1 0x7000e 0x7000f 0x70010 0x70005 0x70006 0x1
+0x1 0x70009 0x7000a 0x7000b 0x7000c 0x70001 0x70002 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x30005 0x30006 0x30007 0x1 0x1 0x1 0x1 0x1
+0x30001 0x30002 0x30003 0x30004 0x1 0x1 0x1 0x1
+0x40005 0x40006 0x40007 0x40008 0x1 0x1 0x1 0x1
+0x1 0x40002 0x40003 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x9
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x9
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x9
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x4 0x1 0x1 0x9
+0x9 0xa 0xb 0xc 0x3 0x3000d 0x3000e 0x3000f
+0x5 0x6 0x7 0x8 0x2 0x30009 0x3000a 0x3000b
+0x1 0xd 0xe 0xf 0x10 0x4000d 0x4000e 0x4000f
+0x1 0x1 0x70003 0x70004 0x70007 0x40009 0x4000a 0x4000b
+0x1 0x1000d 0x1000e 0x1000f 0x10010 0x5000d 0x5000e 0x5000f
+0x20006 0x10009 0x1000a 0x1000b 0x1000c 0x50009 0x5000a 0x5000b
+0x20002 0x10005 0x10006 0x10007 0x10008 0x50005 0x50006 0x50007
+0x1 0x1 0x1 0x10003 0x10004 0x50001 0x50002 0x1
+0x1 0x1 0x1 0x20003 0x20004 0x50003 0x1 0x1
+0x1 0x1 0x1 0x20009 0x2000a 0x50004 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x6000d 0x6000e 0x6000f 0x60010 0x1 0x1 0x1 0xc
+0x60009 0x6000a 0x6000b 0x6000c 0x1 0x1 0x1 0xc
+0x60006 0x60007 0x60008 0x1 0x1 0x1 0x1 0xc
+0x60001 0x60002 0x60003 0x60004 0x1 0x1 0x1 0xd
+0x70010 0x70005 0x70006 0x1 0x1 0x1 0x1 0xd
+0x7000c 0x70001 0x70002 0x1 0x1 0x1 0x1 0xd
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0xd
+0x1 0x1 0x4 0x1 0x1 0x1 0x1 0xd
+0xb 0xc 0x3 0x3000d 0x3000e 0x3000f 0x30010 0xd
+0x8 0x8 0x2 0x30009 0x3000a 0x3000b 0x3000c 0x30001
+0xe 0xf 0x10 0x4000d 0x4000e 0x4000f 0x40010 0x40005
+0x70003 0x70004 0x70007 0x40009 0x4000a 0x4000b 0x4000c 0x1
+0x1000e 0x1000f 0x10010 0x5000d 0x5000e 0x5000f 0x50010 0x1
+0x1000a 0x1000b 0x1000c 0x50009 0x5000a 0x5000b 0x5000c 0x6000d
+0x10006 0x10007 0x10008 0x50005 0x50006 0x50007 0x50008 0x60009
+0x1 0x20007 0x20008 0x50001 0x50002 0x1 0x60005 0x60006
+0x1 0x20003 0x20004 0x50003 0x1 0x1 0x1 0x1
+0x1 0x20009 0x2000a 0x50004 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1
+0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
diff --git a/project/test1.dis b/project/test1.dis
new file mode 100644 (file)
index 0000000..823f0aa
--- /dev/null
@@ -0,0 +1,3 @@
+0 Reset
+0 SetRestartPosition
+0 SetScrollSpeed 1
\ No newline at end of file
diff --git a/project/test1.tpl b/project/test1.tpl
new file mode 100644 (file)
index 0000000..cf8bb2d
Binary files /dev/null and b/project/test1.tpl differ
diff --git a/project/test2.dat b/project/test2.dat
new file mode 100644 (file)
index 0000000..7eddb44
Binary files /dev/null and b/project/test2.dat differ
diff --git a/project/xml/doxygen.xml b/project/xml/doxygen.xml
new file mode 100644 (file)
index 0000000..3c4d381
--- /dev/null
@@ -0,0 +1,26775 @@
+<?xml version='1.0' encoding='ISO-8859-1' standalone='yes'?>
+<doxygen>
+  <compounddef id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite" kind="class">
+    <compoundname>sf::system::console::sprite::AbstractSprite</compoundname>
+    <basecompoundref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite" prot="public" virt="non-virtual"/>
+    <derivedcompoundref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D" prot="public" virt="non-virtual"/>
+    <derivedcompoundref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite3D" prot="public" virt="non-virtual"/>
+    <derivedcompoundref idref="classsf_1_1system_1_1console_1_1sprite_1_1SpriteMesh" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>AbstractSprite</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="47" bodystart="71" bodyend="87"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1a1" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~AbstractSprite</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="48" bodystart="89" bodyend="92"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1a2" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>initialize</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="50"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1a3" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>initialize</name>
+        <param>
+          <type>LPDIRECT3DDEVICE8</type>
+          <declname>pD3DDevice</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="51"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1a4" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>uninitialize</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="52"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1a5" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>load</name>
+        <param>
+          <type>const <ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info">sprite::Info</ref> *</type>
+          <declname>pInfo</declname>
+        </param>
+        <param>
+          <type>const D3DFORMAT</type>
+          <declname>textureFormat</declname>
+        </param>
+        <param>
+          <type>const COLOR</type>
+          <declname>color</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="55"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1a6" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>setRenderState</name>
+        <param>
+          <type>const <ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref></type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="58" bodystart="95" bodyend="125"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1a7" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const bool</type>
+        <name>use</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="62" bodystart="62" bodyend="62"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1a8" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>use</name>
+        <param>
+          <type>const bool</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="63" bodystart="63" bodyend="63"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1a9" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>width</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="65" bodystart="65" bodyend="65"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1a10" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>width</name>
+        <param>
+          <type>const</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="66" bodystart="66" bodyend="66"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1a11" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>height</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="68" bodystart="68" bodyend="68"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1a12" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>height</name>
+        <param>
+          <type>const</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="69" bodystart="69" bodyend="69"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1a13" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>centerX</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="71" bodystart="71" bodyend="71"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1a14" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>centerX</name>
+        <param>
+          <type>const</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="72" bodystart="72" bodyend="72"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1a15" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>centerY</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="74" bodystart="74" bodyend="74"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1a16" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>centerY</name>
+        <param>
+          <type>const</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="75" bodystart="75" bodyend="75"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1a17" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const bool</type>
+        <name>isUsed</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="79" bodystart="79" bodyend="79"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="protected-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1n0" virt="normal" prot="protected">
+        <type>bool</type>
+        <name>mbUse</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="82" bodystart="82" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1n1" virt="normal" prot="protected">
+        <type>LPDIRECT3DDEVICE8</type>
+        <name>mpD3DDevice</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="83" bodystart="83" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1n2" virt="normal" prot="protected">
+        <type>float</type>
+        <name>mWidth</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="85" bodystart="85" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1n3" virt="normal" prot="protected">
+        <type>float</type>
+        <name>mHeight</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="86" bodystart="86" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1n4" virt="normal" prot="protected">
+        <type>float</type>
+        <name>mCenterX</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="87" bodystart="87" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1n5" virt="normal" prot="protected">
+        <type>float</type>
+        <name>mCenterY</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="88" bodystart="88" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite_1n6" virt="normal" prot="protected">
+        <type><ref idref="namespacesf_1_1system_1_1console_1_1sprite_1a6">TYPE</ref></type>
+        <name>mType</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="90" bodystart="90" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="97">
+        <label>sf::system::console::sprite::Sprite2D</label>
+        <childnode id="95" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="98">
+        <label>sf::system::console::sprite::Sprite3D</label>
+        <childnode id="95" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="96">
+        <label>sf::system::console::sprite::Sprite</label>
+        <link id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite"/>
+      </node>
+      <node id="99">
+        <label>sf::system::console::sprite::SpriteMesh</label>
+        <childnode id="95" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="95">
+        <label>sf::system::console::sprite::AbstractSprite</label>
+        <childnode id="96" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="101">
+        <label>sf::system::console::sprite::Sprite</label>
+        <link id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite"/>
+      </node>
+      <node id="100">
+        <label>sf::system::console::sprite::AbstractSprite</label>
+        <childnode id="101" relation="public-inheritance">
+        </childnode>
+      </node>
+    </collaborationgraph>
+    <location file="J:/project/sfglib/AbstractSprite.h" line="45" bodystart="44" bodyend="92"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1console_1_1Background" kind="class">
+    <compoundname>sf::system::console::Background</compoundname>
+    <basecompoundref idref="classsf_1_1system_1_1console_1_1ObjRectangle" prot="public" virt="non-virtual"/>
+    <innerclass refid="classsf_1_1system_1_1console_1_1Background_1_1Map">sf::system::console::Background::Map</innerclass>
+      <sectiondef kind="public-type">
+      <memberdef kind="typedef" id="classsf_1_1system_1_1console_1_1Background_1s0" virt="normal" prot="public">
+        <type>std::vector&lt; <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite">sprite::Sprite</ref> *&gt;</type>
+        <name>TextureList</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="43" bodystart="43" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="typedef" id="classsf_1_1system_1_1console_1_1Background_1s1" virt="normal" prot="public">
+        <type>std::vector&lt; <ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info">sprite::Info</ref> &gt;</type>
+        <name>TextureInfoList</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="44" bodystart="44" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="typedef" id="classsf_1_1system_1_1console_1_1Background_1s2" virt="normal" prot="public">
+        <type>std::vector&lt; int &gt;</type>
+        <name>MapData</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="45" bodystart="45" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Background_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>Background</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="47" bodystart="92" bodyend="127"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Background_1a1" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~Background</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="48" bodystart="129" bodyend="133"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Background_1a2" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>draw</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="50" bodystart="220" bodyend="332"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Background_1a3" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>offsetX</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="53" bodystart="53" bodyend="53"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Background_1a4" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>offsetX</name>
+        <param>
+          <type>const float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="54" bodystart="54" bodyend="54"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Background_1a5" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>offsetY</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="56" bodystart="56" bodyend="56"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Background_1a6" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>offsetY</name>
+        <param>
+          <type>const float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="58" bodystart="57" bodyend="60"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Background_1a7" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>unload</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="62" bodystart="136" bodyend="147"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Background_1a8" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>load</name>
+        <param>
+          <type>const char *const</type>
+          <declname>pMapFileName</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="63" bodystart="150" bodyend="217"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Background_1a9" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>setData</name>
+        <param>
+          <type>float</type>
+          <declname>screenX</declname>
+        </param>
+        <param>
+          <type>float</type>
+          <declname>screenY</declname>
+        </param>
+        <param>
+          <type><ref idref="namespacesf_1a0">DWORD</ref></type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="66" bodystart="419" bodyend="424"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Background_1a10" virt="normal" prot="public" const="no" volatile="no">
+        <type>bool</type>
+        <name>save</name>
+        <param>
+          <type>const char *</type>
+          <declname>pFileName</declname>
+          <defname>pMapFileName</defname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="67" bodystart="335" bodyend="416"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Background_1a11" virt="normal" prot="public" const="no" volatile="no">
+        <type>TextureList *</type>
+        <name>textureList</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="69" bodystart="69" bodyend="69"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Background_1a12" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>startOffsetX</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="85" bodystart="85" bodyend="85"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Background_1a13" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>startOffsetX</name>
+        <param>
+          <type>const float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="86" bodystart="86" bodyend="86"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Background_1a14" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>startOffsetY</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="88" bodystart="88" bodyend="88"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Background_1a15" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>startOffsetY</name>
+        <param>
+          <type>const float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="89" bodystart="89" bodyend="89"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Background_1a16" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const bool</type>
+        <name>edit</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="91" bodystart="91" bodyend="91"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Background_1a17" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>edit</name>
+        <param>
+          <type>const bool</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="92" bodystart="92" bodyend="92"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1o0" virt="normal" prot="private">
+        <type>int</type>
+        <name>mMapWidth</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="95" bodystart="95" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1o1" virt="normal" prot="private">
+        <type>int</type>
+        <name>mMapHeight</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="95" bodystart="95" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1o2" virt="normal" prot="private">
+        <type>float</type>
+        <name>mOffsetYLimit</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="96" bodystart="96" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1o3" virt="normal" prot="private">
+        <type>float</type>
+        <name>mOffsetX</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="97" bodystart="97" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1o4" virt="normal" prot="private">
+        <type>float</type>
+        <name>mOffsetY</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="97" bodystart="97" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1o5" virt="normal" prot="private">
+        <type>float</type>
+        <name>mStartOffsetX</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="99" bodystart="99" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1o6" virt="normal" prot="private">
+        <type>float</type>
+        <name>mStartOffsetY</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="99" bodystart="99" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1o7" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbEdit</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="100" bodystart="100" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1o8" virt="normal" prot="private">
+        <type>int *</type>
+        <name>mpMap</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="101" bodystart="101" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1o9" virt="normal" prot="private">
+        <type>MapData</type>
+        <name>mMapData</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="102" bodystart="102" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1o10" virt="normal" prot="private">
+        <type>TextureList</type>
+        <name>mTextureList</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="103" bodystart="103" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1o11" virt="normal" prot="private">
+        <type>TextureInfoList</type>
+        <name>mTextureInfoList</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="104" bodystart="104" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1o12" virt="normal" prot="private">
+        <type><ref idref="classsf_1_1system_1_1console_1_1Console">Console</ref> *</type>
+        <name>mpConsole</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="105" bodystart="105" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1o13" virt="normal" prot="private">
+        <type>std::string</type>
+        <name>mFileName</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="106" bodystart="106" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1o14" virt="normal" prot="private">
+        <type><ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite">sf::system::console::sprite::Sprite</ref> *</type>
+        <name>mpBlankSprite</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="107" bodystart="107" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1o15" virt="normal" prot="private">
+        <type>sf::system::console::ObjQuadrangle</type>
+        <name>mObj</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="108" bodystart="108" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="105">
+        <label>sf::system::console::Obj</label>
+      </node>
+      <node id="102">
+        <label>sf::system::console::Background</label>
+        <childnode id="103" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="103">
+        <label>sf::system::console::ObjRectangle</label>
+        <childnode id="104" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="104">
+        <label>sf::system::console::Obj2D</label>
+        <childnode id="105" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="109">
+        <label>sf::system::console::Obj</label>
+      </node>
+      <node id="111">
+        <label>sf::system::console::Console</label>
+        <link id="classsf_1_1system_1_1console_1_1Console"/>
+      </node>
+      <node id="110">
+        <label>sf::system::console::sprite::Sprite</label>
+        <link id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite"/>
+      </node>
+      <node id="113">
+        <label>sf::system::console::Vertex</label>
+        <link id="structsf_1_1system_1_1console_1_1Vertex"/>
+      </node>
+      <node id="112">
+        <label>sf::system::console::ObjQuadrangle</label>
+        <childnode id="108" relation="public-inheritance">
+        </childnode>
+        <childnode id="113" relation="usage">
+          <edgelabel>mVertex</edgelabel>
+        </childnode>
+      </node>
+      <node id="106">
+        <label>sf::system::console::Background</label>
+        <childnode id="107" relation="public-inheritance">
+        </childnode>
+        <childnode id="111" relation="usage">
+          <edgelabel>mpConsole</edgelabel>
+        </childnode>
+        <childnode id="112" relation="usage">
+          <edgelabel>mObj</edgelabel>
+        </childnode>
+        <childnode id="110" relation="usage">
+          <edgelabel>mpBlankSprite</edgelabel>
+        </childnode>
+      </node>
+      <node id="107">
+        <label>sf::system::console::ObjRectangle</label>
+        <childnode id="108" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="108">
+        <label>sf::system::console::Obj2D</label>
+        <childnode id="109" relation="public-inheritance">
+        </childnode>
+        <childnode id="109" relation="usage">
+          <edgelabel>mpNext</edgelabel>
+          <edgelabel>mpPrevious</edgelabel>
+        </childnode>
+        <childnode id="110" relation="usage">
+          <edgelabel>mpSprite</edgelabel>
+        </childnode>
+      </node>
+    </collaborationgraph>
+    <location file="J:/project/sfglib/BackGround.h" line="41" bodystart="40" bodyend="110"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1console_1_1Background_1_1Map" kind="class">
+    <compoundname>sf::system::console::Background::Map</compoundname>
+      <sectiondef kind="public-static-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1_1Map_1p0" virt="normal" prot="public">
+        <type>const int</type>
+        <name>WIDTH</name>
+        <initializer> 8</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="73" bodystart="77" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1_1Map_1p1" virt="normal" prot="public">
+        <type>const int</type>
+        <name>HEIGHT_MAX</name>
+        <initializer> 64</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="74" bodystart="75" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1_1Map_1p2" virt="normal" prot="public">
+        <type>const int</type>
+        <name>CELL_SIZE</name>
+        <initializer> 64</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="75" bodystart="76" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1_1Map_1p3" virt="normal" prot="public">
+        <type>const int</type>
+        <name>CELL_TEX_COUNT_W</name>
+        <initializer> 4</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="76" bodystart="84" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1_1Map_1p4" virt="normal" prot="public">
+        <type>const int</type>
+        <name>CELL_TEX_COUNT_H</name>
+        <initializer> 4</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="77" bodystart="85" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1_1Map_1p5" virt="normal" prot="public">
+        <type>const int</type>
+        <name>DRAW_HEIGHT</name>
+        <initializer> 9</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="79" bodystart="79" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1_1Map_1p6" virt="normal" prot="public">
+        <type>const float</type>
+        <name>DRAW_START_X</name>
+        <initializer> 96.0f</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="80" bodystart="80" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1_1Map_1p7" virt="normal" prot="public">
+        <type>const float</type>
+        <name>DRAW_START_Y</name>
+        <initializer> 448.0f</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="81" bodystart="81" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Background_1_1Map_1p8" virt="normal" prot="public">
+        <type>const float</type>
+        <name>DRAW_CENTER_Y</name>
+        <initializer> 256.0f</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="82" bodystart="82" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="J:/project/sfglib/BackGround.h" line="71" bodystart="71" bodyend="83"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1console_1_1Color" kind="class">
+    <compoundname>sf::system::console::Color</compoundname>
+    <innerclass refid="unionsf_1_1system_1_1console_1_1Color_1_1@0">sf::system::console::Color::@0</innerclass>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Color_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>Color</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="49" bodystart="49" bodyend="49"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Color_1a1" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>Color</name>
+        <param>
+          <type>COLOR</type>
+          <declname>color</declname>
+        </param>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\????I\81\922 *. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>xolor</parametername><parameterdescription><para>
+COLOR \81E??IAI </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="52" bodystart="52" bodyend="52"/>
+        <references id="Console_8h_1a1">COLOR</references>
+        <references id="classsf_1_1system_1_1console_1_1Color_1o6">mColor</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Color_1a2" virt="normal" prot="public" const="yes" volatile="no">
+        <type>COLOR</type>
+        <name>value</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+COLOR?IAI?o?e?e?D?1. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+COLOR\81E??IAI </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="55" bodystart="55" bodyend="55"/>
+        <references id="Console_8h_1a1">COLOR</references>
+        <references id="classsf_1_1system_1_1console_1_1Color_1o6">mColor</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Color_1a3" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>value</name>
+        <param>
+          <type>COLOR</type>
+          <declname>color</declname>
+        </param>
+        <briefdescription>
+<para>
+COLOR?o\\81â\A\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>color</parametername><parameterdescription><para>
+COLOR\81E??IAI </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="58" bodystart="58" bodyend="58"/>
+        <references id="Console_8h_1a1">COLOR</references>
+        <references id="classsf_1_1system_1_1console_1_1Color_1o6">mColor</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Color_1a4" virt="normal" prot="public" const="yes" volatile="no">
+        <type>unsigned char</type>
+        <name>red</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+AO?IARE\81Ê?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+AOARE\81Ê(0-255) </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="62" bodystart="62" bodyend="62"/>
+        <references id="classsf_1_1system_1_1console_1_1Color_1o6">mColor</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Color_1a5" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>red</name>
+        <param>
+          <type>unsigned char</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+<para>
+AO?IARE\81Ê?o\\81â\A\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+AOARE\81Ê(0-255) </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="65" bodystart="65" bodyend="65"/>
+        <references id="classsf_1_1system_1_1console_1_1Color_1o6">mColor</references>
+        <references id="classsf_1_1system_1_1console_1_1Color_1o5">value</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Color_1a6" virt="normal" prot="public" const="yes" volatile="no">
+        <type>unsigned char</type>
+        <name>blue</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+AA?IARE\81Ê?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+AAARE\81Ê(0-255) </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="69" bodystart="69" bodyend="69"/>
+        <references id="classsf_1_1system_1_1console_1_1Color_1o6">mColor</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Color_1a7" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>blue</name>
+        <param>
+          <type>unsigned char</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+<para>
+AA?IARE\81Ê?o\\81â\A\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+AAARE\81Ê(0-255) </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="72" bodystart="72" bodyend="72"/>
+        <references id="classsf_1_1system_1_1console_1_1Color_1o6">mColor</references>
+        <references id="classsf_1_1system_1_1console_1_1Color_1o5">value</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Color_1a8" virt="normal" prot="public" const="yes" volatile="no">
+        <type>unsigned char</type>
+        <name>green</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+ID?IARE\81Ê?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+IDARE\81Ê(0-255) </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="76" bodystart="76" bodyend="76"/>
+        <references id="classsf_1_1system_1_1console_1_1Color_1o6">mColor</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Color_1a9" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>green</name>
+        <param>
+          <type>unsigned char</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+<para>
+ID?IARE\81Ê?o\\81â\A\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+IDARE\81Ê(0-255) </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="79" bodystart="79" bodyend="79"/>
+        <references id="classsf_1_1system_1_1console_1_1Color_1o6">mColor</references>
+        <references id="classsf_1_1system_1_1console_1_1Color_1o5">value</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Color_1a10" virt="normal" prot="public" const="yes" volatile="no">
+        <type>unsigned char</type>
+        <name>alpha</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+ALPHA?IARE\81Ê?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+ALPHAARE\81Ê(0-255) </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="83" bodystart="83" bodyend="83"/>
+        <references id="classsf_1_1system_1_1console_1_1Color_1o6">mColor</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Color_1a11" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>alpha</name>
+        <param>
+          <type>unsigned char</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+<para>
+ALPHA?IARE\81Ê?o\\81â\A\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+ALPHAARE\81Ê(0-255) </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="86" bodystart="86" bodyend="86"/>
+        <references id="classsf_1_1system_1_1console_1_1Color_1o6">mColor</references>
+        <references id="classsf_1_1system_1_1console_1_1Color_1o5">value</references>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Color_1o0" virt="normal" prot="private">
+        <type>COLOR</type>
+        <name>value32</name>
+        <briefdescription>
+<para>
+ARGB?IAI(32bit). </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="92" bodystart="91" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Color_1o1" virt="normal" prot="private">
+        <type>unsigned char</type>
+        <name>blue</name>
+        <briefdescription>
+<para>
+AAARE\81Ê. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="95" bodystart="94" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Color_1o2" virt="normal" prot="private">
+        <type>unsigned char</type>
+        <name>green</name>
+        <briefdescription>
+<para>
+IDARE\81Ê. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="96" bodystart="95" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Color_1o3" virt="normal" prot="private">
+        <type>unsigned char</type>
+        <name>red</name>
+        <briefdescription>
+<para>
+AOARE\81Ê. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="97" bodystart="96" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Color_1o4" virt="normal" prot="private">
+        <type>unsigned char</type>
+        <name>alpha</name>
+        <briefdescription>
+<para>
+ALPHAARE\81Ê. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="98" bodystart="97" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Color_1o5" virt="normal" prot="private">
+        <type>sf::system::console::Color::@0::@1</type>
+        <name>value</name>
+        <briefdescription>
+<para>
+I\83ÊI?1?A?AI. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="98"/>
+        <referencedby id="Console_8h_1a11">alpha</referencedby>
+        <referencedby id="Console_8h_1a7">blue</referencedby>
+        <referencedby id="Console_8h_1a9">green</referencedby>
+        <referencedby id="Console_8h_1a5">red</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Color_1o6" virt="normal" prot="private">
+        <type>sf::system::console::Color::@0</type>
+        <name>mColor</name>
+        <briefdescription>
+<para>
+!!I\83ÊI?\81÷|INAI. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="100"/>
+        <referencedby id="Console_8h_1a10">alpha</referencedby>
+        <referencedby id="Console_8h_1a6">blue</referencedby>
+        <referencedby id="Console_8h_1a1">Color</referencedby>
+        <referencedby id="Console_8h_1a8">green</referencedby>
+        <referencedby id="Console_8h_1a4">red</referencedby>
+        <referencedby id="Console_8h_1a2">value</referencedby>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+RGB\\81á\e!??oAc\81Ca?1?e\\81P\e\1. </para>
+    </briefdescription>
+    <detaileddescription>
+<para>
+32bit\\81á\e!??IAI?\81á?e!\81\913A?\81\98ARE\81Ê?o?e?e?D?\81E???e!\81\913A?\81\98ARE\81Ê?oAEIc?\81E?AAaoi?1?e???a?EoiAR?\83Ê?i??\\81P\e\1?C?1?\81Ê!\81\91?\81\91?T?e\81âE?i?i?A???T?\81â?o!\81\92 </para>
+    </detaileddescription>
+    <location file="J:/project/sfglib/Console.h" line="47" bodystart="47" bodyend="101"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1console_1_1Console" kind="class">
+    <compoundname>sf::system::console::Console</compoundname>
+    <derivedcompoundref idref="classsf_1_1system_1_1console_1_1ConsoleImpl" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Console_1a0" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~Console</name>
+        <briefdescription>
+<para>
+\C\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="237" bodystart="237" bodyend="237"/>
+        <references id="Console_8h_1a1">COLOR</references>
+        <references id="namespacesf_1_1system_1_1console_1a12a4">sf::system::console::DRAW_ADD</references>
+        <references id="namespacesf_1_1system_1_1console_1a12a5">sf::system::console::DRAW_ADD1</references>
+        <references id="namespacesf_1_1system_1_1console_1a12a7">sf::system::console::DRAW_INV</references>
+        <references id="namespacesf_1_1system_1_1console_1a12a8">sf::system::console::DRAW_MUL</references>
+        <references id="namespacesf_1_1system_1_1console_1a12a6">sf::system::console::DRAW_SHADOW</references>
+        <references id="namespacesf_1_1system_1_1console_1a12a3">sf::system::console::DRAW_TRANS</references>
+        <references id="Console_8h_1a12">sf::system::console::DrawMode</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Console_1a1" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>initialize</name>
+        <reimplementedby id="classsf_1_1system_1_1console_1_1ConsoleImpl_1a3">initialize</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1console_1_1Console">Console</ref>p.\?\o\?!?\O\\81\98!?\1?I?e\81Lu2??o1O?| <ref idref="classsf_1_1system_1_1console_1_1Console">Console</ref>p. \?\o\?!?\O\\81\98!?\1?I?AAo\\81P\e\1?I?e\81Lu2??o1O?|???a?I2?AU\81LO?o?C!\81\91AI?i\\81\91\\81~\e\\81}!?\\81E\c\o?\81á?e\81CA?O?D?\83Ê?i?e?3?E?I?\81\91?e?T?\81â?o!\81\92. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="244"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Console_1a2" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>clearScreen</name>
+        <reimplementedby id="classsf_1_1system_1_1console_1_1ConsoleImpl_1a6">clearScreen</reimplementedby>        <param>
+          <type>COLOR</type>
+          <declname>value</declname>
+          <defval>0x00000000</defval>
+        </param>
+        <briefdescription>
+<para>
+2eII?A\83Êi?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\1\\81P\e!?\o?o?A\83Êi?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+AE?e?A?O?1?\81\98 </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="249"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Console_1a3" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>fillScreen</name>
+        <reimplementedby id="classsf_1_1system_1_1console_1_1ConsoleImpl_1a7">fillScreen</reimplementedby>        <param>
+          <type>COLOR</type>
+          <declname>value</declname>
+          <defval>0x00000000</defval>
+        </param>
+        <briefdescription>
+<para>
+2eII?A\83Êi?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\1\\81P\e!?\o?o\81âOAe?\81\98?CAE?e?A?O?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+AE?e?A?O?1?\81\98 </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="254"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Console_1a4" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>update</name>
+        <reimplementedby id="classsf_1_1system_1_1console_1_1ConsoleImpl_1a8">update</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+2eII11?\81E?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+2eII11?\81E?o1O???T?1!\81\92 Windows?C?I!\81\91\D\A\\81P\D\A\O\!?\81á?e\\81~\e\?\T\e\\83Ê!?\O\\81\98!?\1?O?IA?A\81\80?o1O???T?1!\81\92 ?T??!\81\91\1\\81~\e\?\E?IEA2e!\81\91\A\-\1\E\D\A\O\!?EAsAN?\83Ê?i??E\81C\81âuIo?IEA2e?a?\81\91?i?\81â?A1O???T?1!\81\92 </para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="261"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Console_1a5" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>print</name>
+        <reimplementedby id="classsf_1_1system_1_1console_1_1ConsoleImpl_1a9">print</reimplementedby>        <param>
+          <type>const int</type>
+          <declname>textureNo</declname>
+        </param>
+        <param>
+          <type>const float</type>
+          <declname>x</declname>
+        </param>
+        <param>
+          <type>const float</type>
+          <declname>y</declname>
+        </param>
+        <param>
+          <type>const float</type>
+          <declname>angleRad</declname>
+        </param>
+        <param>
+          <type>const float</type>
+          <declname>scale</declname>
+        </param>
+        <param>
+          <type>const COLOR</type>
+          <declname>color</declname>
+        </param>
+        <param>
+          <type>const char *</type>
+          <declname>format</declname>
+        </param>
+        <param>
+          <type>...</type>
+        </param>
+        <briefdescription>
+<para>
+\D\A\\81P\D\A\O\!?EAsciiE\81C\81âuIo?o\81âOAe?\81E??\A\\81P\1\A\a!?EO1a?CE??\81N?1?e!\81\92. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>textureNo</parametername><parameterdescription><para>
+\O\c\o\EIN\A\\81P\1\A\a?IEO1a <ref idref="namespacesf_1_1system_1_1console_1_1font_1a5">sf::system::console::font::FILE_PATH</ref>p. ?o\81â2?E </para>
+</parameterdescription><parametername>x</parametername><parameterdescription><para>
+E??\81N3\81á\81âIXoAE\81C </para>
+</parameterdescription><parametername>y</parametername><parameterdescription><para>
+E??\81N3\81á\81âIYoAE\81C </para>
+</parameterdescription><parametername>angleRad</parametername><parameterdescription><para>
+E??\81N3NAU?o\e\\81C\\81\91\o?C\81âOAe </para>
+</parameterdescription><parametername>scale</parametername><parameterdescription><para>
+3EAc?I?RI\81N </para>
+</parameterdescription><parametername>color</parametername><parameterdescription><para>
+E??\81N?\81\98 </para>
+</parameterdescription><parametername>format</parametername><parameterdescription><para>
+printf?I\O\c!?\T\A\EE\81C\81âuIo </para>
+</parameterdescription><parametername>...</parametername><parameterdescription><para>
+E??\81N?\81E????EN?oIo </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="273"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Console_1a6" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite">sprite::Sprite</ref> *const</type>
+        <name>createSprite</name>
+        <reimplementedby id="classsf_1_1system_1_1console_1_1ConsoleImpl_1a10">createSprite</reimplementedby>        <param>
+          <type>const <ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info">sprite::Info</ref> *const</type>
+          <declname>pInfo</declname>
+        </param>
+        <briefdescription>
+<para>
+\1\\81~\e\?\E\C!?\??o\i!?\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info">sprite::Info</ref>p.?I?dEo?E???A?A\1\\81~\e\?\E\C!?\??o\i!?\E?\81E!\81\91Sprite\?\o\?!?\O\\81\98!?\1?I\Y\?\o\??oEO?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pInfo</parametername><parameterdescription><para>
+<ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info">sprite::Info</ref>p. 1?A?AI?I\Y\?\o\?  </para>
+</parameterdescription></parameterlist></para>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+Sprite\?\o\?!?\O\\81\98!?\1?O?I\Y\?\o\? </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="279"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Console_1a7" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>isEnabled</name>
+        <reimplementedby id="classsf_1_1system_1_1console_1_1ConsoleImpl_1a11">isEnabled</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\3\o\?!?\e?\81Ê\81âEIN2A?\81áEY?\81á?oEO?1. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\81âEIN2A  </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\81âEINEO2A </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="286"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+2eII?IEA2eAc\81Ca?o1O?|. </para>
+    </briefdescription>
+    <detaileddescription>
+<para>
+2eII?IEA2eAc\81Ca?o1O?|\?\o\?!?\O\\81\98!?\1?C?1!\81\92  </para>
+<simplesect kind="note"><title>3D?\81N?n?-: </title><para>
+<ref idref="classsf_1_1system_1_1console_1_1Console">Console</ref>p.\\81P\e\1?I!\81\91OS\81CCI-?I2eIIEA2e?t?e?I?AAo?oAe?Y2??1?eIUAa?\81Ê?\81\91?e?T?1!\81\92<linebreak/>Ae?Y2??o1O?|oY?E?I!\81\91OS?E\81\8bIA\81C?\81E?E???e?e\81\8biEI2??\81E??\81CAIO?C\83Ê-?O?1?U?-?C?1?\81Ê!\81\91 oi?O?\81ÊDirectX?\81E?\81áAI?e?E?????a!\81\91?AAo?a?e?O2oAa?EOS\81CCI-?IE?\81C??\81Ê?\81\91?e2AC?A-?\81Ê?\81\91?e?T?1!\81\92 </para>
+</simplesect>    </detaileddescription>
+    <inheritancegraph>
+      <node id="118">
+        <label>sf::system::console::Console</label>
+        <link id="classsf_1_1system_1_1console_1_1Console"/>
+      </node>
+      <node id="119">
+        <label>sf::system::console::ConsoleImpl</label>
+        <link id="classsf_1_1system_1_1console_1_1ConsoleImpl"/>
+        <childnode id="118" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <location file="J:/project/sfglib/Console.h" line="233" bodystart="232" bodyend="287"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1console_1_1ConsoleImpl" kind="class">
+    <compoundname>sf::system::console::ConsoleImpl</compoundname>
+    <basecompoundref idref="classsf_1_1system_1_1console_1_1Console" prot="public" virt="non-virtual"/>
+    <innerclass refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData">sf::system::console::ConsoleImpl::TextQueueData</innerclass>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>ConsoleImpl</name>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="49" bodystart="80" bodyend="86"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1a1" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>ConsoleImpl</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const bool</type>
+          <declname>bWindow</declname>
+        </param>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e </para>
+</parameterdescription><parametername>bWindow</parametername><parameterdescription><para>
+\|\\81\92\o\E\|E??\81N?\81á\O\e\1\\81P\e!?\oE??\81N?\81á </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="53" bodystart="88" bodyend="94"/>
+        <references id="ConsoleImpl_8h_1o2">mbWindowed</references>
+        <references id="ConsoleImpl_8h_1o0">mhWndMain</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1a2" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~ConsoleImpl</name>
+        <briefdescription>
+<para>
+\C\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="55" bodystart="96" bodyend="99"/>
+        <references id="ConsoleImpl_8cpp_1a5">uninitialize</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1a3" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>initialize</name>
+        <reimplements id="classsf_1_1system_1_1console_1_1Console_1a1">initialize</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1console_1_1Console">Console</ref>p.\?\o\?!?\O\\81\98!?\1?I?e\81Lu2??o1O?| <ref idref="classsf_1_1system_1_1console_1_1Console">Console</ref>p. \?\o\?!?\O\\81\98!?\1?I?AAo\\81P\e\1?I?e\81Lu2??o1O?|???a?I2?AU\81LO?o?C!\81\91AI?i\\81\91\\81~\e\\81}!?\\81E\c\o?\81á?e\81CA?O?D?\83Ê?i?e?3?E?I?\81\91?e?T?\81â?o!\81\92. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="58" bodystart="101" bodyend="104"/>
+        <references id="ConsoleImpl_8h_1o2">mbWindowed</references>
+        <references id="ConsoleImpl_8h_1o0">mhWndMain</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1a4" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>initialize</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const bool</type>
+          <declname>bWindow</declname>
+        </param>
+        <briefdescription>
+<para>
+?e\81Lu2??o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e </para>
+</parameterdescription><parametername>bWindow</parametername><parameterdescription><para>
+true \|\\81\92\o\E\|E??\81N false \O\e\1\\81P\e!?\oE??\81N </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="62" bodystart="106" bodyend="209"/>
+        <references id="ConsoleImpl_8cpp_1c0">checkAndSetDevice</references>
+        <references id="ConsoleImpl_8cpp_1c6">initConsoleViewStyle</references>
+        <references id="ConsoleImpl_8cpp_1c5">initDeviceStates</references>
+        <references id="ConsoleImpl_8cpp_1c9">initNotManagedObjects</references>
+        <references id="ConsoleImpl_8cpp_1c11">loadFont</references>
+        <references id="ConsoleImpl_8h_1o1">mbD3DReady</references>
+        <references id="ConsoleImpl_8h_1o2">mbWindowed</references>
+        <references id="ConsoleImpl_8h_1o4">mD3DDeviceType</references>
+        <references id="ConsoleImpl_8h_1o7">mD3DFormat</references>
+        <references id="ConsoleImpl_8h_1o10">mD3Dpp</references>
+        <references id="ConsoleImpl_8h_1o9">mDepthFormat</references>
+        <references id="ConsoleImpl_8h_1o0">mhWndMain</references>
+        <references id="ConsoleImpl_8h_1o3">mpD3D</references>
+        <references id="ConsoleImpl_8h_1o5">mpD3DDevice</references>
+        <references id="ConsoleImpl_8h_1o6">mpD3DXSprite</references>
+        <references id="ConsoleImpl_8h_1o11">mpFontTexture</references>
+        <references id="ConsoleImpl_8h_1o12">mpSprite</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1a5" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>uninitialize</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+?aI\81â?eIy?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+?aI\81â\81ât?E3\81áEu?\81E?E?\81P?A?I???\81}?E???a?I?I?3?3?C3\81áEu?1?e </para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="66" bodystart="581" bodyend="624"/>
+        <references id="ConsoleImpl_8h_1o3">mpD3D</references>
+        <references id="ConsoleImpl_8h_1o5">mpD3DDevice</references>
+        <references id="ConsoleImpl_8h_1o11">mpFontTexture</references>
+        <references id="ConsoleImpl_8h_1o12">mpSprite</references>
+        <references id="ConsoleImpl_8h_1o13">mTextQueue</references>
+        <references id="ConsoleImpl_8cpp_1c10">releaseNotManagedObjects</references>
+        <referencedby id="ConsoleImpl_8cpp_1a2">~ConsoleImpl</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1a6" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>clearScreen</name>
+        <reimplements id="classsf_1_1system_1_1console_1_1Console_1a2">clearScreen</reimplements>        <param>
+          <type>COLOR</type>
+          <declname>value</declname>
+          <defval>0x00000000</defval>
+        </param>
+        <briefdescription>
+<para>
+2eII?A\83Êi?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\1\\81P\e!?\o?o?A\83Êi?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+AE?e?A?O?1?\81\98 </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="68" bodystart="804" bodyend="807"/>
+        <references id="ConsoleImpl_8h_1o5">mpD3DDevice</references>
+        <referencedby id="ConsoleImpl_8cpp_1c6">initConsoleViewStyle</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a8">update</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1a7" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>fillScreen</name>
+        <reimplements id="classsf_1_1system_1_1console_1_1Console_1a3">fillScreen</reimplements>        <param>
+          <type>COLOR</type>
+          <declname>value</declname>
+          <defval>0x00000000</defval>
+        </param>
+        <briefdescription>
+<para>
+2eII?A\83Êi?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\1\\81P\e!?\o?o\81âOAe?\81\98?CAE?e?A?O?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+AE?e?A?O?1?\81\98 </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="69" bodystart="809" bodyend="812"/>
+        <references id="ConsoleImpl_8h_1o5">mpD3DDevice</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1a8" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>update</name>
+        <reimplements id="classsf_1_1system_1_1console_1_1Console_1a4">update</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+2eII11?\81E?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+2eII11?\81E?o1O???T?1!\81\92 Windows?C?I!\81\91\D\A\\81P\D\A\O\!?\81á?e\\81~\e\?\T\e\\83Ê!?\O\\81\98!?\1?O?IA?A\81\80?o1O???T?1!\81\92 ?T??!\81\91\1\\81~\e\?\E?IEA2e!\81\91\A\-\1\E\D\A\O\!?EAsAN?\83Ê?i??E\81C\81âuIo?IEA2e?a?\81\91?i?\81â?A1O???T?1!\81\92 </para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="70" bodystart="776" bodyend="801"/>
+        <references id="ConsoleImpl_8cpp_1a6">clearScreen</references>
+        <references id="ConsoleImpl_8cpp_1c13">endFrame</references>
+        <references id="ConsoleImpl_8h_1a11">isEnabled</references>
+        <references id="ConsoleImpl_8h_1o5">mpD3DDevice</references>
+        <references id="ConsoleImpl_8cpp_1c12">startFrame</references>
+        <references id="ConsoleImpl_8cpp_1c15">textOut</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1a9" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>print</name>
+        <reimplements id="classsf_1_1system_1_1console_1_1Console_1a5">print</reimplements>        <param>
+          <type>const int</type>
+          <declname>textureNo</declname>
+        </param>
+        <param>
+          <type>const float</type>
+          <declname>x</declname>
+        </param>
+        <param>
+          <type>const float</type>
+          <declname>y</declname>
+        </param>
+        <param>
+          <type>const float</type>
+          <declname>angleRad</declname>
+        </param>
+        <param>
+          <type>const float</type>
+          <declname>scale</declname>
+        </param>
+        <param>
+          <type>const COLOR</type>
+          <declname>color</declname>
+        </param>
+        <param>
+          <type>const char *</type>
+          <declname>format</declname>
+        </param>
+        <param>
+          <type>...</type>
+        </param>
+        <briefdescription>
+<para>
+\D\A\\81P\D\A\O\!?EAsciiE\81C\81âuIo?o\81âOAe?\81E??\A\\81P\1\A\a!?EO1a?CE??\81N?1?e!\81\92. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>textureNo</parametername><parameterdescription><para>
+\O\c\o\EIN\A\\81P\1\A\a?IEO1a <ref idref="namespacesf_1_1system_1_1console_1_1font_1a5">sf::system::console::font::FILE_PATH</ref>p. ?o\81â2?E </para>
+</parameterdescription><parametername>x</parametername><parameterdescription><para>
+E??\81N3\81á\81âIXoAE\81C </para>
+</parameterdescription><parametername>y</parametername><parameterdescription><para>
+E??\81N3\81á\81âIYoAE\81C </para>
+</parameterdescription><parametername>angleRad</parametername><parameterdescription><para>
+E??\81N3NAU?o\e\\81C\\81\91\o?C\81âOAe </para>
+</parameterdescription><parametername>scale</parametername><parameterdescription><para>
+3EAc?I?RI\81N </para>
+</parameterdescription><parametername>color</parametername><parameterdescription><para>
+E??\81N?\81\98 </para>
+</parameterdescription><parametername>format</parametername><parameterdescription><para>
+printf?I\O\c!?\T\A\EE\81C\81âuIo </para>
+</parameterdescription><parametername>...</parametername><parameterdescription><para>
+E??\81N?\81E????EN?oIo </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="74" bodystart="751" bodyend="773"/>
+        <references id="ConsoleImpl_8h_1o13">mTextQueue</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1a10" virt="normal" prot="public" const="no" volatile="no">
+        <type><ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite">sprite::Sprite</ref> *const</type>
+        <name>createSprite</name>
+        <reimplements id="classsf_1_1system_1_1console_1_1Console_1a6">createSprite</reimplements>        <param>
+          <type>const <ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info">sprite::Info</ref> *const</type>
+          <declname>pInfo</declname>
+        </param>
+        <briefdescription>
+<para>
+\1\\81~\e\?\E\C!?\??o\i!?\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info">sprite::Info</ref>p.?I?dEo?E???A?A\1\\81~\e\?\E\C!?\??o\i!?\E?\81E!\81\91Sprite\?\o\?!?\O\\81\98!?\1?I\Y\?\o\??oEO?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pInfo</parametername><parameterdescription><para>
+<ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info">sprite::Info</ref>p. 1?A?AI?I\Y\?\o\?  </para>
+</parameterdescription></parameterlist></para>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+Sprite\?\o\?!?\O\\81\98!?\1?O?I\Y\?\o\? </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="76" bodystart="863" bodyend="887"/>
+        <references id="namespacesf_1_1system_1_1console_1_1sprite_1a6a5">sf::system::console::sprite::MESH</references>
+        <references id="ConsoleImpl_8h_1o5">mpD3DDevice</references>
+        <references id="ConsoleImpl_8h_1o8">mTextureFormat</references>
+        <references id="namespacesf_1_1system_1_1console_1_1sprite_1a6a3">sf::system::console::sprite::SPRITE2D</references>
+        <references id="namespacesf_1_1system_1_1console_1_1sprite_1a6a4">sf::system::console::sprite::SPRITE3D</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1a11" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>isEnabled</name>
+        <reimplements id="classsf_1_1system_1_1console_1_1Console_1a7">isEnabled</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\3\o\?!?\e?\81Ê\81âEIN2A?\81áEY?\81á?oEO?1. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\81âEIN2A  </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\81âEINEO2A </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="81" bodystart="81" bodyend="81"/>
+        <references id="ConsoleImpl_8h_1o1">mbD3DReady</references>
+        <referencedby id="ConsoleImpl_8cpp_1a8">update</referencedby>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1c0" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>checkAndSetDevice</name>
+        <param>
+          <type>const D3DDEVTYPE</type>
+          <declname>devtype</declname>
+          <defval>D3DDEVTYPE_HAL</defval>
+        </param>
+        <briefdescription>
+<para>
+D3D\C\D\?\1?o\A\\81\98\A\\81P?\81E!\81\91AaAo?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\81C?os?I\I!?\E\|\\81\98\\81\91?ID3D\C\D\?\1?o\A\\81\98\A\\81P?\81E!\81\91<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl">ConsoleImpl</ref>p.?\81ÊE\81ÊI\81~?E?1?eI\81~\83Êa?EAD\81}t?\81E!\81\91?a?A?E?aC?II?I1a???a?I?oAaAo?\81E?T?1!\81\92 </para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="86" bodystart="212" bodyend="233"/>
+        <references id="ConsoleImpl_8cpp_1c1">checkAndSetDeviceType</references>
+        <references id="classsf_1_1system_1_1Exception_1s4s1">sf::system::Exception::DEVICE_NOT_FOUND</references>
+        <referencedby id="ConsoleImpl_8cpp_1a4">initialize</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1c1" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>checkAndSetDeviceType</name>
+        <param>
+          <type>const D3DDEVTYPE</type>
+          <declname>devtype</declname>
+        </param>
+        <briefdescription>
+<para>
+\C\D\?\1\?\?\\81~?o\A\\81\98\A\\81P?\81E!\81\91AsAe?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="89" bodystart="236" bodyend="269"/>
+        <references id="ConsoleImpl_8cpp_1c2">checkAndSetBackBufferFormat</references>
+        <references id="ConsoleImpl_8cpp_1c4">checkAndSetDepthFormat</references>
+        <references id="ConsoleImpl_8cpp_1c3">checkAndSetTextureFormat</references>
+        <references id="classsf_1_1system_1_1Exception_1s4s1">sf::system::Exception::DEVICE_NOT_FOUND</references>
+        <references id="ConsoleImpl_8h_1o4">mD3DDeviceType</references>
+        <references id="ConsoleImpl_8h_1o3">mpD3D</references>
+        <referencedby id="ConsoleImpl_8cpp_1c0">checkAndSetDevice</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1c2" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>checkAndSetBackBufferFormat</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\81C?os?I\I!?\E\|\\81\98\\81\91?I\D\A\\81P\D\A\O\!\O\c!?\T\A\E?o\A\\81\98\A\\81P?\81E!\81\91AsAe?1?e \\81E\1\A\a?\81ÊI\81~\83Êa?1?e\D\A\\81P\D\A\O\!\O\c!?\T\A\E?\81Ê?\81\91?e?\81á?E?|?\81á\A\\81\98\A\\81P?\81E!\81\91?\81\91?i?DAsAe?\81E?T?1!\81\92<linebreak/> ?E?\81}?i?D!\81\91I\81~\83Êa?1?e?a?I?EoC?a\81÷a??\D\A\\81P\D\A\O\!?I\O\c!?\T\A\E?oAaAo?\81E?T?1. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="94" bodystart="272" bodyend="297"/>
+        <references id="classsf_1_1system_1_1Exception_1s4s1">sf::system::Exception::DEVICE_NOT_FOUND</references>
+        <references id="ConsoleImpl_8h_1o4">mD3DDeviceType</references>
+        <references id="ConsoleImpl_8h_1o7">mD3DFormat</references>
+        <references id="ConsoleImpl_8h_1o3">mpD3D</references>
+        <referencedby id="ConsoleImpl_8cpp_1c1">checkAndSetDeviceType</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1c3" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>checkAndSetTextureFormat</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\81C?os?I\I!?\E\|\\81\98\\81\91?I\A\\81P\1\A\a\O\c!?\T\A\E?o\A\\81\98\A\\81P?\81E!\81\91AsAe?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="96" bodystart="300" bodyend="316"/>
+        <references id="classsf_1_1system_1_1Exception_1s4s1">sf::system::Exception::DEVICE_NOT_FOUND</references>
+        <references id="ConsoleImpl_8h_1o4">mD3DDeviceType</references>
+        <references id="ConsoleImpl_8h_1o7">mD3DFormat</references>
+        <references id="ConsoleImpl_8h_1o3">mpD3D</references>
+        <references id="ConsoleImpl_8h_1o8">mTextureFormat</references>
+        <referencedby id="ConsoleImpl_8cpp_1c1">checkAndSetDeviceType</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1c4" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>checkAndSetDepthFormat</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\81C?os?I\I!?\E\|\\81\98\\81\91?I\O\A\E??AU?oA\81L?U?A!\81\91AsAe?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="98" bodystart="319" bodyend="330"/>
+        <references id="classsf_1_1system_1_1Exception_1s4s1">sf::system::Exception::DEVICE_NOT_FOUND</references>
+        <references id="ConsoleImpl_8h_1o4">mD3DDeviceType</references>
+        <references id="ConsoleImpl_8h_1o7">mD3DFormat</references>
+        <references id="ConsoleImpl_8h_1o9">mDepthFormat</references>
+        <references id="ConsoleImpl_8h_1o3">mpD3D</references>
+        <referencedby id="ConsoleImpl_8cpp_1c1">checkAndSetDeviceType</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1c5" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>initDeviceStates</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\i\o\A\e\o\\81\8b\1\A!?\E!\81\91\A\\81P\1\A\a\1\A!?\\81C\1\A!?\E?I?e\81Lu2??o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="101" bodystart="333" bodyend="451"/>
+        <references id="ConsoleImpl_8h_1o5">mpD3DDevice</references>
+        <referencedby id="ConsoleImpl_8cpp_1a4">initialize</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c12">startFrame</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1c6" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>initConsoleViewStyle</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+2eII?I?e\81Lu2?!|\O\a!?\Y!?\E?IAsAe?E?E?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="104" bodystart="454" bodyend="497"/>
+        <references id="ConsoleImpl_8cpp_1a6">clearScreen</references>
+        <references id="ConsoleImpl_8cpp_1c7">initLight</references>
+        <references id="ConsoleImpl_8cpp_1c8">initMatrix</references>
+        <references id="ConsoleImpl_8h_1o5">mpD3DDevice</references>
+        <referencedby id="ConsoleImpl_8cpp_1a4">initialize</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c12">startFrame</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1c7" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>initLight</name>
+        <briefdescription>
+<para>
+\e\?\E?I?e\81Lu2??o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="107" bodystart="500" bodyend="515"/>
+        <references id="ConsoleImpl_8h_1o5">mpD3DDevice</references>
+        <referencedby id="ConsoleImpl_8cpp_1c6">initConsoleViewStyle</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1c8" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>initMatrix</name>
+        <briefdescription>
+<para>
+EN\81L11OIo?I?e\81Lu2??o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="110" bodystart="518" bodyend="553"/>
+        <references id="ConsoleImpl_8h_1o5">mpD3DDevice</references>
+        <referencedby id="ConsoleImpl_8cpp_1c6">initConsoleViewStyle</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1c9" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>initNotManagedObjects</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+Reset\81ât?EoAoiAR?\81E?E?\81P?A?I???\81}?E???eIy?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="114" bodystart="556" bodyend="567"/>
+        <references id="ConsoleImpl_8h_1o5">mpD3DDevice</references>
+        <references id="ConsoleImpl_8h_1o6">mpD3DXSprite</references>
+        <referencedby id="ConsoleImpl_8cpp_1a4">initialize</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c12">startFrame</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1c10" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>releaseNotManagedObjects</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+D3DDevice?C\81LEIy?\83Ê?i?E??\a\O\\81C\\81\98\\81P\E?o3\81áEu?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="117" bodystart="569" bodyend="578"/>
+        <references id="ConsoleImpl_8h_1o6">mpD3DXSprite</references>
+        <referencedby id="ConsoleImpl_8cpp_1c12">startFrame</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a5">uninitialize</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1c11" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>loadFont</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\O\c\o\E\O\!\?\e?oAE?s1t?a. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="120" bodystart="629" bodyend="656"/>
+        <references id="ConsoleImpl_8h_1o5">mpD3DDevice</references>
+        <references id="ConsoleImpl_8h_1o11">mpFontTexture</references>
+        <references id="ConsoleImpl_8h_1o8">mTextureFormat</references>
+        <referencedby id="ConsoleImpl_8cpp_1a4">initialize</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1c12" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>startFrame</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\O\i!?\a3\81á\81âI?oAe\81CA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="123" bodystart="815" bodyend="852"/>
+        <references id="ConsoleImpl_8cpp_1c6">initConsoleViewStyle</references>
+        <references id="ConsoleImpl_8cpp_1c5">initDeviceStates</references>
+        <references id="ConsoleImpl_8cpp_1c9">initNotManagedObjects</references>
+        <references id="ConsoleImpl_8h_1o1">mbD3DReady</references>
+        <references id="ConsoleImpl_8h_1o10">mD3Dpp</references>
+        <references id="ConsoleImpl_8h_1o5">mpD3DDevice</references>
+        <references id="ConsoleImpl_8cpp_1c10">releaseNotManagedObjects</references>
+        <referencedby id="ConsoleImpl_8cpp_1a8">update</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1c13" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>endFrame</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\O\i!?\a?aI\81â?oAe\81CA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="126" bodystart="855" bodyend="858"/>
+        <references id="ConsoleImpl_8h_1o5">mpD3DDevice</references>
+        <referencedby id="ConsoleImpl_8cpp_1a8">update</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1c14" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>textDraw</name>
+        <param>
+          <type>int</type>
+          <declname>textureNo</declname>
+        </param>
+        <param>
+          <type>float</type>
+          <declname>x</declname>
+        </param>
+        <param>
+          <type>float</type>
+          <declname>y</declname>
+        </param>
+        <param>
+          <type>float</type>
+          <declname>angleRad</declname>
+        </param>
+        <param>
+          <type>float</type>
+          <declname>scale</declname>
+        </param>
+        <param>
+          <type>COLOR</type>
+          <declname>color</declname>
+        </param>
+        <param>
+          <type>char *</type>
+          <declname>pBuf</declname>
+        </param>
+        <briefdescription>
+<para>
+\A\-\1\E?IEA2e?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="129" bodystart="659" bodyend="733"/>
+        <references id="ConsoleImpl_8h_1o5">mpD3DDevice</references>
+        <references id="ConsoleImpl_8h_1o6">mpD3DXSprite</references>
+        <references id="ConsoleImpl_8h_1o11">mpFontTexture</references>
+        <referencedby id="ConsoleImpl_8cpp_1c15">textOut</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1c15" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>textOut</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\A\-\1\E\-\a!??IAaIA?o?DII?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="132" bodystart="736" bodyend="748"/>
+        <references id="ConsoleImpl_8h_1o6">mpD3DXSprite</references>
+        <references id="ConsoleImpl_8h_1o13">mTextQueue</references>
+        <references id="ConsoleImpl_8cpp_1c14">textDraw</references>
+        <referencedby id="ConsoleImpl_8cpp_1a8">update</referencedby>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1o0" virt="normal" prot="private">
+        <type>HWND</type>
+        <name>mhWndMain</name>
+        <briefdescription>
+<para>
+Window\I\o\E\e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="135" bodystart="134" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8cpp_1a1">ConsoleImpl</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a3">initialize</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1o1" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbD3DReady</name>
+        <briefdescription>
+<para>
+?1?U?A?I?e\81Lu2??\81Ê\81L\81\8bI\81â?\81E!\81\91\81âEIN2AC?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="137" bodystart="136" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8cpp_1a4">initialize</referencedby>
+        <referencedby id="ConsoleImpl_8h_1a11">isEnabled</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c12">startFrame</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1o2" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbWindowed</name>
+        <briefdescription>
+<para>
+\|\\81\92\o\E\|\a!?\E?\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="138" bodystart="137" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8cpp_1a1">ConsoleImpl</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a3">initialize</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3" virt="normal" prot="private">
+        <type>LPDIRECT3D8</type>
+        <name>mpD3D</name>
+        <briefdescription>
+<para>
+D3D. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="140" bodystart="139" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8cpp_1c2">checkAndSetBackBufferFormat</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c4">checkAndSetDepthFormat</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c1">checkAndSetDeviceType</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c3">checkAndSetTextureFormat</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a4">initialize</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a5">uninitialize</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1o4" virt="normal" prot="private">
+        <type>D3DDEVTYPE</type>
+        <name>mD3DDeviceType</name>
+        <briefdescription>
+<para>
+D3D\C\D\?\1\?\?\\81~. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="141" bodystart="140" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8cpp_1c2">checkAndSetBackBufferFormat</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c4">checkAndSetDepthFormat</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c1">checkAndSetDeviceType</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c3">checkAndSetTextureFormat</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a4">initialize</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5" virt="normal" prot="private">
+        <type>LPDIRECT3DDEVICE8</type>
+        <name>mpD3DDevice</name>
+        <briefdescription>
+<para>
+D3DDevice. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="143" bodystart="142" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8cpp_1a6">clearScreen</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a10">createSprite</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c13">endFrame</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a7">fillScreen</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c6">initConsoleViewStyle</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c5">initDeviceStates</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a4">initialize</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c7">initLight</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c8">initMatrix</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c9">initNotManagedObjects</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c11">loadFont</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c12">startFrame</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c14">textDraw</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a5">uninitialize</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a8">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1o6" virt="normal" prot="private">
+        <type>LPD3DXSPRITE</type>
+        <name>mpD3DXSprite</name>
+        <briefdescription>
+<para>
+D3DXSprite. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="144" bodystart="143" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8cpp_1a4">initialize</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c9">initNotManagedObjects</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c10">releaseNotManagedObjects</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c14">textDraw</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c15">textOut</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1o7" virt="normal" prot="private">
+        <type>D3DFORMAT</type>
+        <name>mD3DFormat</name>
+        <briefdescription>
+<para>
+\\81~\e\?\T\e!|\D\A\\81P\D\A\O\!?I\O\c!?\T\A\E. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="146" bodystart="145" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8cpp_1c2">checkAndSetBackBufferFormat</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c4">checkAndSetDepthFormat</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c3">checkAndSetTextureFormat</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a4">initialize</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1o8" virt="normal" prot="private">
+        <type>D3DFORMAT</type>
+        <name>mTextureFormat</name>
+        <briefdescription>
+<para>
+Ac2a\A\\81P\1\A\aIN\O\c!?\T\A\E. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="147" bodystart="146" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8cpp_1c3">checkAndSetTextureFormat</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a10">createSprite</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c11">loadFont</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1o9" virt="normal" prot="private">
+        <type>D3DFORMAT</type>
+        <name>mDepthFormat</name>
+        <briefdescription>
+<para>
+!!??AU\D\A\O\!IN\O\c!?\T\A\E. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="148" bodystart="147" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8cpp_1c4">checkAndSetDepthFormat</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a4">initialize</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10" virt="normal" prot="private">
+        <type>D3DPRESENT_PARAMETERS</type>
+        <name>mD3Dpp</name>
+        <briefdescription>
+<para>
+D3DPRESENT_PARAMETERS. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="149" bodystart="148" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8cpp_1a4">initialize</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c12">startFrame</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1o11" virt="normal" prot="private">
+        <type>IDirect3DTexture8 *</type>
+        <name>mpFontTexture</name>
+        <briefdescription>
+<para>
+\O\c\o\E\A\\81P\1\A\aCUIo. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="151" bodystart="150" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8cpp_1a4">initialize</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c11">loadFont</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c14">textDraw</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a5">uninitialize</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1o12" virt="normal" prot="private">
+        <type>sprite::AbstractSprite *</type>
+        <name>mpSprite</name>
+        <briefdescription>
+<para>
+\1\\81~\e\?\E\A\\81P\1\A\aCUIo. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="152" bodystart="151" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8cpp_1a4">initialize</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a5">uninitialize</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1o13" virt="normal" prot="private">
+        <type>std::queue&lt; <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData">TextQueueData</ref> *&gt;</type>
+        <name>mTextQueue</name>
+        <briefdescription>
+<para>
+\A\-\1\EE??\81NIN\-\a!?\D\A\O\!. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="206" bodystart="206" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8cpp_1a9">print</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1c15">textOut</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a5">uninitialize</referencedby>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1console_1_1Console">Console</ref>p.\?\o\?!?\O\\81\98!?\1?I?AAo. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="122">
+        <label>sf::system::console::Console</label>
+        <link id="classsf_1_1system_1_1console_1_1Console"/>
+      </node>
+      <node id="121">
+        <label>sf::system::console::ConsoleImpl</label>
+        <link id="classsf_1_1system_1_1console_1_1ConsoleImpl"/>
+        <childnode id="122" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="124">
+        <label>sf::system::console::Console</label>
+        <link id="classsf_1_1system_1_1console_1_1Console"/>
+      </node>
+      <node id="126">
+        <label>sf::system::console::sprite::Sprite</label>
+        <link id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite"/>
+      </node>
+      <node id="123">
+        <label>sf::system::console::ConsoleImpl</label>
+        <link id="classsf_1_1system_1_1console_1_1ConsoleImpl"/>
+        <childnode id="124" relation="public-inheritance">
+        </childnode>
+        <childnode id="125" relation="usage">
+          <edgelabel>mpSprite</edgelabel>
+        </childnode>
+      </node>
+      <node id="125">
+        <label>sf::system::console::sprite::AbstractSprite</label>
+        <childnode id="126" relation="public-inheritance">
+        </childnode>
+      </node>
+    </collaborationgraph>
+    <location file="J:/project/sfglib/ConsoleImpl.h" line="45" bodystart="44" bodyend="208"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData" kind="class">
+    <compoundname>sf::system::console::ConsoleImpl::TextQueueData</compoundname>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>TextQueueData</name>
+        <param>
+          <type>const int</type>
+          <declname>textureNo</declname>
+        </param>
+        <param>
+          <type>const float</type>
+          <declname>x</declname>
+        </param>
+        <param>
+          <type>const float</type>
+          <declname>y</declname>
+        </param>
+        <param>
+          <type>const float</type>
+          <declname>angleRad</declname>
+        </param>
+        <param>
+          <type>const float</type>
+          <declname>scale</declname>
+        </param>
+        <param>
+          <type>const COLOR</type>
+          <declname>color</declname>
+        </param>
+        <param>
+          <type>const char *</type>
+          <declname>pBuffer</declname>
+          <defval>NULL</defval>
+        </param>
+        <briefdescription>
+<para>
+!!\3\o\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>param</parametername><parameterdescription><para>
+x E??\81NxoAE\81C </para>
+</parameterdescription><parametername>y</parametername><parameterdescription><para>
+E??\81NyoAE\81C </para>
+</parameterdescription><parametername>angleRad</parametername><parameterdescription><para>
+E??\81N3NAU(\e\\81C\\81\91\o) </para>
+</parameterdescription><parametername>scale</parametername><parameterdescription><para>
+3EAc?I?RI\81N </para>
+</parameterdescription><parametername>color</parametername><parameterdescription><para>
+E??\81N?\81\98 </para>
+</parameterdescription><parametername>pBuffer</parametername><parameterdescription><para>
+\A\-\1\EE\81C\81âuIo?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="164" bodystart="893" bodyend="904"/>
+        <references id="ConsoleImpl_8h_1a8">color</references>
+        <references id="ConsoleImpl_8h_1o3">mAngleRad</references>
+        <references id="ConsoleImpl_8h_1o5">mColor</references>
+        <references id="ConsoleImpl_8h_1o6">mpBuf</references>
+        <references id="ConsoleImpl_8h_1o4">mScale</references>
+        <references id="ConsoleImpl_8h_1o0">mTextureNo</references>
+        <references id="ConsoleImpl_8h_1o1">mX</references>
+        <references id="ConsoleImpl_8h_1o2">mY</references>
+        <references id="ConsoleImpl_8h_1a7">scale</references>
+        <references id="ConsoleImpl_8h_1a3">textureNo</references>
+        <references id="ConsoleImpl_8h_1a4">x</references>
+        <references id="ConsoleImpl_8h_1a5">y</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a1" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>~TextQueueData</name>
+        <briefdescription>
+<para>
+\C\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="166" bodystart="906" bodyend="909"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a2" virt="normal" prot="public" const="no" volatile="no">
+        <type>char *const</type>
+        <name>buffer</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\A\-\1\EE\81C\81âuIo?I\Y\?\o\??o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+\A\-\1\EE\81C\81âuIo?IAeA\81Ê\\81\91\E\i\1 </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="170" bodystart="170" bodyend="170"/>
+        <references id="ConsoleImpl_8h_1o6">mpBuf</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a3" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const int</type>
+        <name>textureNo</name>
+        <briefdescription>
+<para>
+\O\c\o\E\A\\81P\1\A\aEO1a?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+\O\c\o\E\A\\81P\1\A\aEO1a </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="174" bodystart="174" bodyend="174"/>
+        <references id="ConsoleImpl_8h_1o0">mTextureNo</references>
+        <referencedby id="ConsoleImpl_8cpp_1a0">TextQueueData</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a4" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>x</name>
+        <briefdescription>
+<para>
+E??\81N3\81á\81âIXoAE\81C?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+E??\81N3\81á\81âIXoAE\81C </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="178" bodystart="178" bodyend="178"/>
+        <references id="ConsoleImpl_8h_1o1">mX</references>
+        <referencedby id="ConsoleImpl_8cpp_1a0">TextQueueData</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a5" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>y</name>
+        <briefdescription>
+<para>
+E??\81N3\81á\81âIYoAE\81C?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+E??\81N3\81á\81âIYoAE\81C </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="182" bodystart="182" bodyend="182"/>
+        <references id="ConsoleImpl_8h_1o2">mY</references>
+        <referencedby id="ConsoleImpl_8cpp_1a0">TextQueueData</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a6" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>angeleRad</name>
+        <briefdescription>
+<para>
+E??\81N3NAU?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+E??\81N3\81á\81âIXoAE\81C </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="186" bodystart="186" bodyend="186"/>
+        <references id="ConsoleImpl_8h_1o3">mAngleRad</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a7" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>scale</name>
+        <briefdescription>
+<para>
+3EAc?I?RI\81N?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+3EAc?I?RI\81N </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="190" bodystart="190" bodyend="190"/>
+        <references id="ConsoleImpl_8h_1o4">mScale</references>
+        <referencedby id="ConsoleImpl_8cpp_1a0">TextQueueData</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a8" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const COLOR</type>
+        <name>color</name>
+        <briefdescription>
+<para>
+E??\81N?\81\98?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+E??\81N?\81\98 </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="194" bodystart="194" bodyend="194"/>
+        <references id="ConsoleImpl_8h_1o5">mColor</references>
+        <referencedby id="ConsoleImpl_8cpp_1a0">TextQueueData</referencedby>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o0" virt="normal" prot="private">
+        <type>int</type>
+        <name>mTextureNo</name>
+        <briefdescription>
+<para>
+\O\c\o\E\A\\81P\1\A\aEO1a. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="197" bodystart="196" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8cpp_1a0">TextQueueData</referencedby>
+        <referencedby id="ConsoleImpl_8h_1a3">textureNo</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o1" virt="normal" prot="private">
+        <type>float</type>
+        <name>mX</name>
+        <briefdescription>
+<para>
+E??\81N3\81á\81âIXoAE\81C. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="198" bodystart="197" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8cpp_1a0">TextQueueData</referencedby>
+        <referencedby id="ConsoleImpl_8h_1a4">x</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o2" virt="normal" prot="private">
+        <type>float</type>
+        <name>mY</name>
+        <briefdescription>
+<para>
+E??\81N3\81á\81âIYoAE\81C. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="199" bodystart="198" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8cpp_1a0">TextQueueData</referencedby>
+        <referencedby id="ConsoleImpl_8h_1a5">y</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o3" virt="normal" prot="private">
+        <type>float</type>
+        <name>mAngleRad</name>
+        <briefdescription>
+<para>
+E??\81N3NAU!E\e\\81C\\81\91\o!E. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="200" bodystart="199" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8h_1a6">angeleRad</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a0">TextQueueData</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o4" virt="normal" prot="private">
+        <type>float</type>
+        <name>mScale</name>
+        <briefdescription>
+<para>
+3EAc?I?RI\81N. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="201" bodystart="200" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8h_1a7">scale</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a0">TextQueueData</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o5" virt="normal" prot="private">
+        <type>COLOR</type>
+        <name>mColor</name>
+        <briefdescription>
+<para>
+E??\81N?\81\98. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="202" bodystart="201" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8h_1a8">color</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a0">TextQueueData</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o6" virt="normal" prot="private">
+        <type>char</type>
+        <name>mpBuf</name>
+        <briefdescription>
+<para>
+E??\81NE\81C\81âuIo. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="203" bodystart="202" bodyend="-1"/>
+        <referencedby id="ConsoleImpl_8h_1a2">buffer</referencedby>
+        <referencedby id="ConsoleImpl_8cpp_1a0">TextQueueData</referencedby>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+!!\A\-\1\EE\81C\81âuIoEY\81ây\\81P\e\1. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="J:/project/sfglib/ConsoleImpl.h" line="154" bodystart="154" bodyend="203"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1Exception" kind="class">
+    <compoundname>sf::system::Exception</compoundname>
+    <derivedcompoundref idref="classsf_1_1system_1_1FatalErrorException" prot="public" virt="non-virtual"/>
+    <derivedcompoundref idref="classsf_1_1system_1_1RecoverbleErrorException" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-type">
+      <memberdef kind="enum" id="classsf_1_1system_1_1Exception_1s4" virt="normal" prot="public">
+        <name>ERROR_TYPE</name>
+        <enumvalue>
+          <name>DEFAULT</name>
+        </enumvalue>
+        <enumvalue>
+          <name>DEVICE_NOT_FOUND</name>
+        </enumvalue>
+        <enumvalue>
+          <name>BUFFER_IS_FULL</name>
+        </enumvalue>
+        <enumvalue>
+          <name>SCENE_IS_EMPTY</name>
+        </enumvalue>
+        <briefdescription>
+<para>
+\\81N\e!??I?iIa. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="27" bodystart="27" bodyend="32"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1Exception_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>Exception::Exception</name>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="36" bodystart="35" bodyend="38"/>
+        <references id="classsf_1_1system_1_1Exception_1s4s0">DEFAULT</references>
+        <references id="Exception_8h_1a0">Exception::Exception</references>
+        <references id="Exception_8h_1o4">mErrID</references>
+        <referencedby id="Exception_8h_1a0">Exception::Exception</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1Exception_1a1" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>Exception</name>
+        <param>
+          <type>const char *const</type>
+          <declname>pValue</declname>
+        </param>
+        <param>
+          <type>const char *const</type>
+          <declname>fileName</declname>
+        </param>
+        <param>
+          <type>const int</type>
+          <declname>line</declname>
+        </param>
+        <param>
+          <type>const <ref idref="classsf_1_1system_1_1Exception_1s4">ERROR_TYPE</ref></type>
+          <declname>err</declname>
+          <defval>DEFAULT</defval>
+        </param>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pValue</parametername><parameterdescription><para>
+\\81N\e!?E\81C\81âuIo </para>
+</parameterdescription><parametername>fileName</parametername><parameterdescription><para>
+\O\!\?\e\I!?\a </para>
+</parameterdescription><parametername>line</parametername><parameterdescription><para>
+1OEO1a </para>
+</parameterdescription><parametername>err</parametername><parameterdescription><para>
+ERROR_TYPE </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="46" bodystart="45" bodyend="46"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1Exception_1a2" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>Exception</name>
+        <param>
+          <type>std::string &amp;</type>
+          <declname>value</declname>
+        </param>
+        <param>
+          <type>const char *const</type>
+          <declname>fileName</declname>
+        </param>
+        <param>
+          <type>const int</type>
+          <declname>line</declname>
+        </param>
+        <param>
+          <type>const <ref idref="classsf_1_1system_1_1Exception_1s4">ERROR_TYPE</ref></type>
+          <declname>err</declname>
+          <defval>DEFAULT</defval>
+        </param>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+\\81N\e!?E\81C\81âuIo </para>
+</parameterdescription><parametername>fileName</parametername><parameterdescription><para>
+\O\!\?\e\I!?\a </para>
+</parameterdescription><parametername>line</parametername><parameterdescription><para>
+1OEO1a </para>
+</parameterdescription><parametername>err</parametername><parameterdescription><para>
+ERROR_TYPE </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="53" bodystart="52" bodyend="53"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1Exception_1a3" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~Exception</name>
+        <briefdescription>
+<para>
+\C\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="55" bodystart="55" bodyend="55"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1Exception_1a4" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual std::string &amp;</type>
+        <name>reason</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\\81N\e!?E\81C\81âuIo?o\81â2?E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+\\81N\e!?E\81C\81âuIo?ostd::string?I\81â2?E?CEO?\81E?T?1 </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="60" bodystart="59" bodyend="60"/>
+        <referencedby id="Exception_8h_1a13">Exception::getDefaultMessage</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1Exception_1a5" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>reason</name>
+        <param>
+          <type>const std::string &amp;</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+<para>
+\\81N\e!?E\81C\81âuIo?o\\81â\A\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+\\81N\e!?E\81C\81âuIo(std::string) </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="64" bodystart="64" bodyend="64"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1Exception_1a6" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>reason</name>
+        <param>
+          <type>const char *const</type>
+          <declname>pValue</declname>
+        </param>
+        <briefdescription>
+<para>
+\\81N\e!?E\81C\81âuIo?o\\81â\A\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+\\81N\e!?E\81C\81âuIo(const char *) </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="68" bodystart="68" bodyend="68"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1Exception_1a7" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>sourceFileName</name>
+        <param>
+          <type>const char *const</type>
+          <declname>pValue</declname>
+        </param>
+        <briefdescription>
+<para>
+\\81N\e!??o\83Ê\81P?3?\81E??\O\!\?\e\I!?\a?o\\81â\A\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pValue</parametername><parameterdescription><para>
+\\81N\e!??o\83Ê\81P?3?\81E??\O\!\?\e\I!?\a </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="72" bodystart="72" bodyend="72"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1Exception_1a8" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const std::string</type>
+        <name>sourceFileName</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\\81N\e!??o\83Ê\81P?3?\81E??\O\!\?\e\I!?\a?o\81â2?E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+\\81N\e!??o\83Ê\81P?3?\81E??\O\!\?\e\I!?\a </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="76" bodystart="76" bodyend="76"/>
+        <referencedby id="Exception_8h_1a13">Exception::getDefaultMessage</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1Exception_1a9" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>lineNumber</name>
+        <param>
+          <type>const int</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+<para>
+\\81N\e!??o\83Ê\81P?3?\81E??1OEO1a?o\\81â\A\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+\\81N\e!??o\83Ê\81P?3?\81E??1OEO1a </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="80" bodystart="80" bodyend="80"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1Exception_1a10" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual const int</type>
+        <name>lineNumber</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\\81N\e!??o\83Ê\81P?3?\81E??1OEO1a?o\\81â\A\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+\\81N\e!??o\83Ê\81P?3?\81E??1OEO1a </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="84" bodystart="84" bodyend="84"/>
+        <referencedby id="Exception_8h_1a13">Exception::getDefaultMessage</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1Exception_1a11" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>errorType</name>
+        <param>
+          <type>const <ref idref="classsf_1_1system_1_1Exception_1s4">ERROR_TYPE</ref></type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+<para>
+ERROR_TYPE?o\\81â\A\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+ERROR_TYPE(Ia3\81\8b?I?iIa) </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="88" bodystart="88" bodyend="88"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1Exception_1a12" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const <ref idref="classsf_1_1system_1_1Exception_1s4">ERROR_TYPE</ref></type>
+        <name>errorType</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+ERROR_TYPE?o\81â2?E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+ERROR_TYPE(Ia3\81\8b?I?iIa) </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="92" bodystart="92" bodyend="92"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1Exception_1a13" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual const char *const</type>
+        <name>Exception::getDefaultMessage</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\C\O\c\e\E\\81N\e!?E??\81N\a\A\\81â!?\\81C?o\81â2?E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+\\81N\e!?E\81C\81âuIo </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="96" bodystart="96" bodyend="102"/>
+        <references id="Exception_8h_1a10">lineNumber</references>
+        <references id="Exception_8h_1o2">mDefaultMessage</references>
+        <references id="Exception_8h_1a4">reason</references>
+        <references id="Exception_8h_1a8">sourceFileName</references>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1Exception_1o0" virt="normal" prot="private">
+        <type>std::string</type>
+        <name>mErrString</name>
+        <briefdescription>
+<para>
+\\81N\e!?E\81C\81âuIo. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="106" bodystart="105" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1Exception_1o1" virt="normal" prot="private">
+        <type>std::string</type>
+        <name>mFileName</name>
+        <briefdescription>
+<para>
+\\81N\e!??o\83Ê\81P?3?\81E??\O\!\?\eI?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="107" bodystart="106" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1Exception_1o2" virt="normal" prot="private">
+        <type>std::string</type>
+        <name>mDefaultMessage</name>
+        <briefdescription>
+<para>
+\C\O\c\e\E?I\a\A\\81â!?\\81C. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="108" bodystart="107" bodyend="-1"/>
+        <referencedby id="Exception_8h_1a13">Exception::getDefaultMessage</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1Exception_1o3" virt="normal" prot="private">
+        <type>int</type>
+        <name>mLineNumber</name>
+        <briefdescription>
+<para>
+1OEO1a. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="109" bodystart="108" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1Exception_1o4" virt="normal" prot="private">
+        <type><ref idref="classsf_1_1system_1_1Exception_1s4">ERROR_TYPE</ref></type>
+        <name>mErrID</name>
+        <briefdescription>
+<para>
+\\81N\e!?ID. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="110" bodystart="109" bodyend="-1"/>
+        <referencedby id="Exception_8h_1a0">Exception::Exception</referencedby>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+Ia3\81\8b. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="130">
+        <label>sf::system::FatalErrorException</label>
+        <link id="classsf_1_1system_1_1FatalErrorException"/>
+        <childnode id="129" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="131">
+        <label>sf::system::RecoverbleErrorException</label>
+        <link id="classsf_1_1system_1_1RecoverbleErrorException"/>
+        <childnode id="129" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="129">
+        <label>sf::system::Exception</label>
+        <link id="classsf_1_1system_1_1Exception"/>
+      </node>
+    </inheritancegraph>
+    <location file="J:/project/sfglib/Exception.h" line="24" bodystart="24" bodyend="110"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1FatalErrorException" kind="class">
+    <compoundname>sf::system::FatalErrorException</compoundname>
+    <basecompoundref idref="classsf_1_1system_1_1Exception" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1FatalErrorException_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>FatalErrorException</name>
+        <param>
+          <type>const char *const</type>
+          <declname>pValue</declname>
+        </param>
+        <param>
+          <type>const char *const</type>
+          <declname>fileName</declname>
+        </param>
+        <param>
+          <type>const int</type>
+          <declname>line</declname>
+        </param>
+        <param>
+          <type>const <ref idref="classsf_1_1system_1_1Exception_1s4">ERROR_TYPE</ref></type>
+          <declname>err</declname>
+          <defval>DEFAULT</defval>
+        </param>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pValue</parametername><parameterdescription><para>
+\\81N\e!?E\81C\81âuIo </para>
+</parameterdescription><parametername>fileName</parametername><parameterdescription><para>
+\O\!\?\e\I!?\a </para>
+</parameterdescription><parametername>line</parametername><parameterdescription><para>
+1OEO1a </para>
+</parameterdescription><parametername>err</parametername><parameterdescription><para>
+ERROR_TYPE </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="122" bodystart="120" bodyend="122"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1FatalErrorException_1a1" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>FatalErrorException</name>
+        <param>
+          <type>std::string &amp;</type>
+          <declname>value</declname>
+        </param>
+        <param>
+          <type>const char *const</type>
+          <declname>fileName</declname>
+        </param>
+        <param>
+          <type>const int</type>
+          <declname>line</declname>
+        </param>
+        <param>
+          <type>const <ref idref="classsf_1_1system_1_1Exception_1s4">ERROR_TYPE</ref></type>
+          <declname>err</declname>
+          <defval>DEFAULT</defval>
+        </param>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pValue</parametername><parameterdescription><para>
+\\81N\e!?E\81C\81âuIo </para>
+</parameterdescription><parametername>fileName</parametername><parameterdescription><para>
+\O\!\?\e\I!?\a </para>
+</parameterdescription><parametername>line</parametername><parameterdescription><para>
+1OEO1a </para>
+</parameterdescription><parametername>err</parametername><parameterdescription><para>
+ERROR_TYPE </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="130" bodystart="128" bodyend="130"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+A\81~I?Aa?EIa3\81\8b. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="133">
+        <label>sf::system::FatalErrorException</label>
+        <link id="classsf_1_1system_1_1FatalErrorException"/>
+        <childnode id="134" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="134">
+        <label>sf::system::Exception</label>
+        <link id="classsf_1_1system_1_1Exception"/>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="135">
+        <label>sf::system::FatalErrorException</label>
+        <link id="classsf_1_1system_1_1FatalErrorException"/>
+        <childnode id="136" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="136">
+        <label>sf::system::Exception</label>
+        <link id="classsf_1_1system_1_1Exception"/>
+      </node>
+    </collaborationgraph>
+    <location file="J:/project/sfglib/Exception.h" line="113" bodystart="113" bodyend="131"/>
+  </compounddef>
+  <compounddef id="structsf_1_1system_1_1console_1_1sprite_1_1Info" kind="struct">
+    <compoundname>sf::system::console::sprite::Info</compoundname>
+      <sectiondef kind="public-attrib">
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m0" virt="normal" prot="public">
+        <type>char</type>
+        <name>fileName</name>
+        <briefdescription>
+<para>
+\O\A\E\T\A\\81~\O\!\?\e\I!?\a. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="147" bodystart="146" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m1" virt="normal" prot="public">
+        <type>float</type>
+        <name>centerX</name>
+        <briefdescription>
+<para>
+Aa?\81L?IXoAE\81C. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="148" bodystart="147" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m2" virt="normal" prot="public">
+        <type>float</type>
+        <name>centerY</name>
+        <briefdescription>
+<para>
+Aa?\81L?IYoAE\81C. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="149" bodystart="148" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m3" virt="normal" prot="public">
+        <type>float</type>
+        <name>cellWidth</name>
+        <briefdescription>
+<para>
+Ey. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="150" bodystart="149" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m4" virt="normal" prot="public">
+        <type>float</type>
+        <name>cellHeight</name>
+        <briefdescription>
+<para>
+1a?\83Ê. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="151" bodystart="150" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m5" virt="normal" prot="public">
+        <type>COLOR</type>
+        <name>transparentColor</name>
+        <briefdescription>
+<para>
+Ac2a?\81\98. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="152" bodystart="151" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m6" virt="normal" prot="public">
+        <type><ref idref="namespacesf_1_1system_1_1console_1_1sprite_1a6">TYPE</ref></type>
+        <name>type</name>
+        <briefdescription>
+<para>
+\1\\81~\e\?\E?I\?\?\\81~. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="153" bodystart="152" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+\1\\81~\e\?\EAe\83ÊA?dEo1?A?AI. </para>
+    </briefdescription>
+    <detaileddescription>
+<para>
+\1\\81~\e\?\E?oAe\83ÊA?1?e???a?I1?A?AI?C?1!\81\92 \1\\81~\e\?\E?IA\81CAR?I!\81\91<ref idref="classsf_1_1system_1_1console_1_1Console">Console</ref>p. \?\o\?!?\O\\81\98!?\1?I<ref idref="classsf_1_1system_1_1console_1_1Console_1a6">Console::createSprite</ref>()p.?I\81\8bu?o?E?\81E?A?3?I1?A?AI?oAI?\81E1O???T?1!\81\92 </para>
+    </detaileddescription>
+    <location file="J:/project/sfglib/Console.h" line="145" bodystart="145" bodyend="153"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1input_1_1Input" kind="class">
+    <compoundname>sf::system::input::Input</compoundname>
+    <derivedcompoundref idref="classsf_1_1system_1_1input_1_1InputImpl" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>Input</name>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="185" bodystart="185" bodyend="185"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a1" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~Input</name>
+        <briefdescription>
+<para>
+\C\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="187" bodystart="187" bodyend="187"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a2" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>initialize</name>
+        <reimplementedby id="classsf_1_1system_1_1input_1_1InputImpl_1a35">initialize</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1input_1_1Input">Input</ref>p.\?\o\?!?\O\\81\98!?\1?I?e\81Lu2?. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="classsf_1_1system_1_1input_1_1Input">Input</ref>p.\?\o\?!?\O\\81\98!?\1?I?AAo\\81P\e\1?o?e\81Lu2??1?e???a?EIN\81\8bO?\83Ê?i?A???T?1!\81\92<linebreak/> AI?i\e\?\O\e\e?oIoIN?1?eA|?\81á?e?3?I\a\?\A\E?o\81CA?O?D?1?3?E?I?\81\91?e?T?\81â?o!\81\92  <parameterlist kind="exception"><title>Ia3\81\8b: </title><parametername><ref idref="classsf_1_1system_1_1FatalErrorException">FatalErrorException</ref>p.</parametername><parameterdescription><para>
+ ?e\81Lu2??E?oCO?\81E???i1c?a?\81E?\81P?IAtII\C\D\?\1?\81Ê2??a\81C\81á?A?\81á?e?E?\81á?A???i1c </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="194"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a3" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>update</name>
+        <reimplementedby id="classsf_1_1system_1_1input_1_1InputImpl_1a3">update</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+AtII\C\D\?\1?I?oAO?I11?\81E. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+AtII\C\D\?\1?I?oAO?oAE?s?e?e!\81\91\81LOI\81\91?1?eEN?o?o11?\81E?\81E?T?1!\81\92 </para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="198"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a4" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>addMouseListener</name>
+        <param>
+          <type><ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref> *const</type>
+          <declname>pListener</declname>
+        </param>
+        <briefdescription>
+<para>
+\T\|\1\e\1\E!??IADI?. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p. ?oADI??\81E?T?1!\81\92<linebreak/> \T\|\1\?\U\o\E?o?o?\81}?e?e????\\81P\e\1?I<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p.\?\o\?!?\O\\81\98!?\1?o?AAo?\81E!\81\91 ?3?I\a\?\A\E?CADI??1?e?3?E?E?e?e\T\|\1\?\U\o\E?o?o?\81}?e?e?3?E?\81Ê?C?-?T?1!\81\92  <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pListener</parametername><parameterdescription><para>
+<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p. \?\o\?!?\O\\81\98!?\1?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="205"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a5" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>removeMouseListener</name>
+        <param>
+          <type><ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref> *const</type>
+          <declname>pListener</declname>
+        </param>
+        <briefdescription>
+<para>
+\T\|\1\e\1\E!??Ioi?u. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p. ?ooi?u?\81E?T?1!\81\92<linebreak/> <ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p. ?\81á?E?\81Êoi?u?\83Ê?i?e?E?-!\81\91?3?I\a\?\A\E?o\81CA?O?D?\81E?A!\81\91Talker?E?\81á?E?Ioi?u?oAIAI?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pListener</parametername><parameterdescription><para>
+<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p. \?\o\?!?\O\\81\98!?\1?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="211"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a6" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>addKeyboardListener</name>
+        <param>
+          <type><ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener">keyboard::Listener</ref> *const</type>
+          <declname>pListener</declname>
+        </param>
+        <briefdescription>
+<para>
+\-!?\U!?\E\e\1\E!??IADI?. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener">keyboard::Listener</ref>p. ?oADI??\81E?T?1!\81\92<linebreak/> \-!?\U!?\E\?\U\o\E?o?o?\81}?e?e????\\81P\e\1?I<ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener">keyboard::Listener</ref>p.\?\o\?!?\O\\81\98!?\1?o?AAo?\81E!\81\91 ?3?I\a\?\A\E?CADI??1?e?3?E?E?e?e\-!?\U!?\E\?\U\o\E?o?o?\81}?e?e?3?E?\81Ê?C?-?T?1!\81\92  <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pListener</parametername><parameterdescription><para>
+<ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener">keyboard::Listener</ref>p. \?\o\?!?\O\\81\98!?\1?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="218"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a7" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>removeKeyboardListener</name>
+        <param>
+          <type><ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener">keyboard::Listener</ref> *const</type>
+          <declname>pListener</declname>
+        </param>
+        <briefdescription>
+<para>
+\-!?\U!?\E\e\1\E!??Ioi?u. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener">keyboard::Listener</ref>p. ?ooi?u?\81E?T?1!\81\92<linebreak/> <ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener">keyboard::Listener</ref>p. ?\81á?E?\81Êoi?u?\83Ê?i?e?E?-!\81\91?3?I\a\?\A\E?o\81CA?O?D?\81E?A!\81\91Talker?E?\81á?E?Ioi?u?oAIAI?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pListener</parametername><parameterdescription><para>
+<ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener">keyboard::Listener</ref>p. \?\o\?!?\O\\81\98!?\1?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="224"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a8" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>left</name>
+        <reimplementedby id="classsf_1_1system_1_1input_1_1InputImpl_1a21">left</reimplementedby>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+o\81C\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+o\81C\U\?\o(\\81C\c\?\1\A\\81\92\A\\81P!|\\81á!?\?\e\-!?!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="234"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a9" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>right</name>
+        <reimplementedby id="classsf_1_1system_1_1input_1_1InputImpl_1a22">right</reimplementedby>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+\81}|\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\81}|\U\?\o(\\81C\c\?\1\A\\81\92\A\\81P!|\\81á!?\?\e\-!?!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="242"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a10" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>up</name>
+        <reimplementedby id="classsf_1_1system_1_1input_1_1InputImpl_1a23">up</reimplementedby>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+?a\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+?a\U\?\o(\\81C\c\?\1\A\\81\92\A\\81P!|\\81á!?\?\e\-!?!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="250"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a11" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>down</name>
+        <reimplementedby id="classsf_1_1system_1_1input_1_1InputImpl_1a24">down</reimplementedby>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+2?\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+2?\U\?\o(\\81C\c\?\1\A\\81\92\A\\81P!|\\81á!?\?\e\-!?!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="258"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a12" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>buttonA</name>
+        <reimplementedby id="classsf_1_1system_1_1input_1_1InputImpl_1a25">buttonA</reimplementedby>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+A\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+A\U\?\o(\\81C\c\?\1\A\\81\92\A\\81P?IA\U\?\o!|\-!?\U!?\E?IZ!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="266"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a13" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>buttonB</name>
+        <reimplementedby id="classsf_1_1system_1_1input_1_1InputImpl_1a26">buttonB</reimplementedby>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+B\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+B\U\?\o(\\81C\c\?\1\A\\81\92\A\\81P?IB\U\?\o!|\-!?\U!?\E?IX!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="274"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a14" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>buttonC</name>
+        <reimplementedby id="classsf_1_1system_1_1input_1_1InputImpl_1a27">buttonC</reimplementedby>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+C\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+C\U\?\o(\\81C\c\?\1\A\\81\92\A\\81P?IC\U\?\o!|\-!?\U!?\E?IC!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="282"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a15" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>buttonD</name>
+        <reimplementedby id="classsf_1_1system_1_1input_1_1InputImpl_1a28">buttonD</reimplementedby>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+D\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+D\U\?\o(\\81C\c\?\1\A\\81\92\A\\81P?ID\U\?\o!|\-!?\U!?\E?IV!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="290"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a16" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>start</name>
+        <reimplementedby id="classsf_1_1system_1_1input_1_1InputImpl_1a29">start</reimplementedby>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+start\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+start\U\?\o(\\81C\c\?\1\A\\81\92\A\\81P?IA\U\?\o!|\-!?\U!?\E?Ispace!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="298"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a17" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>exit</name>
+        <reimplementedby id="classsf_1_1system_1_1input_1_1InputImpl_1a30">exit</reimplementedby>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+exit\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+exit\U\?\o(\-!?\U!?\E?IESC!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="306"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a18" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>showMouseCursor</name>
+        <reimplementedby id="classsf_1_1system_1_1input_1_1InputImpl_1a31">showMouseCursor</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\T\|\1\\81á!?\?\e?oE??\81N?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="309"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a19" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>hideMouseCursor</name>
+        <reimplementedby id="classsf_1_1system_1_1input_1_1InputImpl_1a32">hideMouseCursor</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\T\|\1\\81á!?\?\e?o\81}\81\92?1. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="311"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a20" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>mouseCursorVisibility</name>
+        <reimplementedby id="classsf_1_1system_1_1input_1_1InputImpl_1a33">mouseCursorVisibility</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\81C?os?I\T\|\1\\81á!?\?\e?I?oAO?oIa??1c?i?\81â?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\T\|\1\\81á!?\?\e?IE??\81N?\83Ê?i?A???T?1!\81\92 </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\T\|\1\\81á!?\?\e?IEoE??\81N?E?E?A?A???T?1!\81\92 </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="315"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Input_1a21" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>isEnabled</name>
+        <reimplementedby id="classsf_1_1system_1_1input_1_1InputImpl_1a34">isEnabled</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\81C?os?I<ref idref="classsf_1_1system_1_1input_1_1Input">Input</ref>p.\?\o\?!?\O\\81\98!?\1?I?oAO?oIa??1c?i?\81â?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\81C?os!\81\91IoIN2AC??C?1!\81\92 </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\81C?os!\81\91IoINEO2AC??C?1!\81\92 </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="321"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+AtII\83Ê!\81Li\3\o\E\i!?\e. </para>
+    </briefdescription>
+    <detaileddescription>
+<para>
+\?\o\\81~\A\E\C\D\?\1?I\3\o\E\i!?\e?o1O?|\?\o\?!?\O\\81\98!?\1?C?1 </para>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="140">
+        <label>sf::system::input::InputImpl</label>
+        <link id="classsf_1_1system_1_1input_1_1InputImpl"/>
+        <childnode id="139" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="139">
+        <label>sf::system::input::Input</label>
+        <link id="classsf_1_1system_1_1input_1_1Input"/>
+      </node>
+    </inheritancegraph>
+    <location file="J:/project/sfglib/Input.h" line="181" bodystart="180" bodyend="322"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1input_1_1InputImpl" kind="class">
+    <compoundname>sf::system::input::InputImpl</compoundname>
+    <basecompoundref idref="classsf_1_1system_1_1input_1_1Input" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-type">
+      <memberdef kind="typedef" id="classsf_1_1system_1_1input_1_1InputImpl_1s0" virt="normal" prot="public">
+        <type>std::vector&lt; <ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">input::mouse::Listener</ref> * &gt;</type>
+        <name>MouseListenerList</name>
+        <briefdescription>
+<para>
+\T\|\1\e\1\E!?\e\1\ECUIo\81E?Ae\83ÊA. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="33" bodystart="33" bodyend="-1"/>
+        <referencedby id="InputImpl_8cpp_1a11">onMouseWheel</referencedby>
+      </memberdef>
+      <memberdef kind="typedef" id="classsf_1_1system_1_1input_1_1InputImpl_1s1" virt="normal" prot="public">
+        <type>std::vector&lt; <ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener">input::keyboard::Listener</ref> * &gt;</type>
+        <name>KeyboardListenerList</name>
+        <briefdescription>
+<para>
+\-!?\U!?\E\e\1\E!?\e\1\ECUIo\81E?Ae\83ÊA. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="35" bodystart="35" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>InputImpl</name>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="37" bodystart="82" bodyend="85"/>
+        <referencedby id="InputImpl_8h_1d1">enumAxesCallback</referencedby>
+        <referencedby id="InputImpl_8h_1d0">enumJoysticksCallback</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a1" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>InputImpl</name>
+        <param>
+          <type>HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="41" bodystart="88" bodyend="92"/>
+        <references id="InputImpl_8h_1o8">mHWND</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a2" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~InputImpl</name>
+        <briefdescription>
+<para>
+\C\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="44" bodystart="95" bodyend="98"/>
+        <references id="InputImpl_8cpp_1c0">uninitialize</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a3" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>update</name>
+        <reimplements id="classsf_1_1system_1_1input_1_1Input_1a3">update</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+AtII\C\D\?\1?I?oAO?I11?\81E. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+AtII\C\D\?\1?I?oAO?oAE?s?e?e!\81\91\81LOI\81\91?1?eEN?o?o11?\81E?\81E?T?1!\81\92 </para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="47" bodystart="374" bodyend="519"/>
+        <references id="InputImpl_8h_1o27">mbBeforeButtonA</references>
+        <references id="InputImpl_8h_1o28">mbBeforeButtonB</references>
+        <references id="InputImpl_8h_1o29">mbBeforeButtonC</references>
+        <references id="InputImpl_8h_1o30">mbBeforeButtonD</references>
+        <references id="InputImpl_8h_1o24">mbBeforeDown</references>
+        <references id="InputImpl_8h_1o32">mbBeforeExit</references>
+        <references id="InputImpl_8h_1o25">mbBeforeLeft</references>
+        <references id="InputImpl_8h_1o26">mbBeforeRight</references>
+        <references id="InputImpl_8h_1o31">mbBeforeStart</references>
+        <references id="InputImpl_8h_1o23">mbBeforeUp</references>
+        <references id="InputImpl_8h_1o17">mbButtonA</references>
+        <references id="InputImpl_8h_1o18">mbButtonB</references>
+        <references id="InputImpl_8h_1o19">mbButtonC</references>
+        <references id="InputImpl_8h_1o20">mbButtonD</references>
+        <references id="InputImpl_8h_1o14">mbDown</references>
+        <references id="InputImpl_8h_1o22">mbExit</references>
+        <references id="InputImpl_8h_1o15">mbLeft</references>
+        <references id="InputImpl_8h_1o16">mbRight</references>
+        <references id="InputImpl_8h_1o21">mbStart</references>
+        <references id="InputImpl_8h_1o13">mbUp</references>
+        <references id="InputImpl_8h_1o6">mDIJoyState</references>
+        <references id="InputImpl_8h_1o7">mDIKeys</references>
+        <references id="InputImpl_8h_1o11">mKeyboardListenerList</references>
+        <references id="InputImpl_8h_1o12">mKeyboardListenerQ</references>
+        <references id="InputImpl_8h_1o9">mMouseListenerList</references>
+        <references id="InputImpl_8h_1o10">mMouseListenerQ</references>
+        <references id="InputImpl_8h_1o3">mpJoystick</references>
+        <references id="InputImpl_8h_1o4">mpKeyboard</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a4" virt="normal" prot="public" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>onLButtonDown</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+o\81C\T\|\1\U\?\o?\81Ê2!?\83Ê?i??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="classsf_1_1system_1_1SystemImpl_1d0">SystemImpl::wndFunc</ref>()p.?e?eWM_LBUTTONDOWN?o?o?\81}?e?e!\81\91???i?o<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p.???A?EAIAI?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="66" bodystart="532" bodyend="535"/>
+        <references id="classsf_1_1system_1_1input_1_1InputImpl_1a13">callMouseListenerMethod</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a5" virt="normal" prot="public" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>onLButtonDoubleClick</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+o\81C\T\|\1\U\?\o?\81Ê\A\O\e\\81P\e\A\\81P?\83Ê?i??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="classsf_1_1system_1_1SystemImpl_1d0">SystemImpl::wndFunc</ref>()p.?e?eWM_LBUTTONDBLCLK?o?o?\81}?e?e!\81\91<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p.???A?EAIAI?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="73" bodystart="544" bodyend="547"/>
+        <references id="classsf_1_1system_1_1input_1_1InputImpl_1a13">callMouseListenerMethod</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a6" virt="normal" prot="public" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>onLButtonUp</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+o\81C\T\|\1\U\?\o?\81ÊI\?\83Ê?i??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="classsf_1_1system_1_1SystemImpl_1d0">SystemImpl::wndFunc</ref>()p.?e?eWM_LBUTTONUP?o?o?\81}?e?e!\81\91<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p.???A?EAIAI?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="80" bodystart="538" bodyend="541"/>
+        <references id="classsf_1_1system_1_1input_1_1InputImpl_1a13">callMouseListenerMethod</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a7" virt="normal" prot="public" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>onRButtonDoubleClick</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+\81}|\T\|\1\U\?\o?\81Ê\A\O\e\\81P\e\A\\81P?\83Ê?i??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="classsf_1_1system_1_1SystemImpl_1d0">SystemImpl::wndFunc</ref>()p.?e?eWM_RBUTTONDBLCLK?o?o?\81}?e?e!\81\91<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p.???A?EAIAI?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="87" bodystart="562" bodyend="565"/>
+        <references id="classsf_1_1system_1_1input_1_1InputImpl_1a13">callMouseListenerMethod</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a8" virt="normal" prot="public" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>onRButtonDown</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+\81}|\T\|\1\U\?\o?\81Ê2!?\83Ê?i??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="classsf_1_1system_1_1SystemImpl_1d0">SystemImpl::wndFunc</ref>()p.?e?eWM_RBUTTONDOWN?o?o?\81}?e?e!\81\91<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p.???A?EAIAI?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="94" bodystart="550" bodyend="553"/>
+        <references id="classsf_1_1system_1_1input_1_1InputImpl_1a13">callMouseListenerMethod</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a9" virt="normal" prot="public" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>onRButtonUp</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+\81}|\T\|\1\U\?\o?\81ÊI\?\83Ê?i??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="classsf_1_1system_1_1SystemImpl_1d0">SystemImpl::wndFunc</ref>()p.?e?eWM_RBUTTONUP?o?o?\81}?e?e!\81\91<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p.???A?EAIAI?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="101" bodystart="556" bodyend="559"/>
+        <references id="classsf_1_1system_1_1input_1_1InputImpl_1a13">callMouseListenerMethod</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a10" virt="normal" prot="public" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>onMouseMove</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+\T\|\1\\81á!?\?\e?\81ÊA\81\8b????. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="classsf_1_1system_1_1SystemImpl_1d0">SystemImpl::wndFunc</ref>()p.?e?eWM_MOUSEMOVE?o?o?\81}?e?e!\81\91<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p.???A?EAIAI?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="108" bodystart="568" bodyend="571"/>
+        <references id="classsf_1_1system_1_1input_1_1InputImpl_1a13">callMouseListenerMethod</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a11" virt="normal" prot="public" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>onMouseWheel</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+\T\|\1\U\?!?\e?\81ÊEN2??\81E??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="classsf_1_1system_1_1SystemImpl_1d0">SystemImpl::wndFunc</ref>()p.?e?eWM_MOUSEWHEEL?o?o?\81}?e?e!\81\91<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p.???A?EAIAI?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="115" bodystart="574" bodyend="577"/>
+        <references id="classsf_1_1system_1_1input_1_1InputImpl_1a13">callMouseListenerMethod</references>
+        <references id="System_8h_1a0">sf::DWORD</references>
+        <references id="namespacesf_1_1system_1_1input_1_1mouse_1a5a0">sf::system::input::mouse::MKEY_CONTROL</references>
+        <references id="namespacesf_1_1system_1_1input_1_1mouse_1a5a3">sf::system::input::mouse::MKEY_SHIFT</references>
+        <references id="InputImpl_8h_1o9">mMouseListenerList</references>
+        <references id="InputImpl_8h_1s0">MouseListenerList</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a12" virt="normal" prot="public" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>onSetCursor</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+WM_ONSETCURSOR?o?o?\81}?e?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="classsf_1_1system_1_1SystemImpl_1d0">SystemImpl::wndFunc</ref>()p.?e?eWM_ONSETCURSOR?o?o?\81}?e?e?T?1!\81\92 ?3?I\\81E\1\A\a?C?I!\81\91\T\|\1\\81á!?\?\e?o?A\83Êi!|E??\81N?I\3\o\E\i!?\e?I???a!\81\91?3?I\a\A\\81â!?\\81C?o?o?\81}?e?A?A???T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM  </para>
+</parameterdescription></parameterlist></para>
+<simplesect kind="note"><title>3D?\81N?n?-: </title><para>
+WM_SETCURSOR \?\U\o\E?I!\81\91\T\|\1AtII?\81Ê\-\a\\81~\A\a?\83Ê?i?o!\81\91\|\\81\92\o\E\|Aa?C\\81á!?\?\e?o\81\8bUA\81\8b?1?e?E?-?EE\81PA\81C?1?e\a\A\\81â!?\\81C?C?1!\81\92 </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="124" bodystart="521" bodyend="529"/>
+        <references id="InputImpl_8h_1a33">mouseCursorVisibility</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a13" virt="normal" prot="public" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>callMouseListenerMethod</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <param>
+          <type>void(input::mouse::Listener::*)(const int, const int, const <ref idref="namespacesf_1a0">DWORD</ref>)</type>
+          <declname>pMethod</declname>
+        </param>
+        <briefdescription>
+<para>
+\T\|\1\e\1\E!??I\a\?\A\E?o\81CA?O?D?1. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\|\\81\92\o\E\|\a\A\\81â!?\\81C?o?o?\81}?e?A?A<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p.?I3A\a\?\A\E?o\81CA?O?D?1oi\81÷E?o\81LEI\81Ê2??\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM  </para>
+</parameterdescription><parametername>pMethod</parametername><parameterdescription><para>
+<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p.?I\a\?\A\E?I\Y\?\o\?!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="132"/>
+        <referencedby id="InputImpl_8cpp_1a5">onLButtonDoubleClick</referencedby>
+        <referencedby id="InputImpl_8cpp_1a4">onLButtonDown</referencedby>
+        <referencedby id="InputImpl_8cpp_1a6">onLButtonUp</referencedby>
+        <referencedby id="InputImpl_8cpp_1a10">onMouseMove</referencedby>
+        <referencedby id="InputImpl_8cpp_1a11">onMouseWheel</referencedby>
+        <referencedby id="InputImpl_8cpp_1a7">onRButtonDoubleClick</referencedby>
+        <referencedby id="InputImpl_8cpp_1a8">onRButtonDown</referencedby>
+        <referencedby id="InputImpl_8cpp_1a9">onRButtonUp</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a14" virt="normal" prot="public" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>onKeyDown</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+\-!?\U!?\E?\81Ê2!?\83Ê?i??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="classsf_1_1system_1_1SystemImpl_1d0">system::SystemImpl::wndFunc</ref>()p.?e?eWM_KEYDOWN?o?o?\81}?e?e!\81\91<ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener">keyboard::Listener</ref>p.???A?EAIAI?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="140" bodystart="623" bodyend="658"/>
+        <references id="System_8h_1a0">sf::DWORD</references>
+        <references id="InputImpl_8h_1o11">mKeyboardListenerList</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a15" virt="normal" prot="public" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>onKeyUp</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+\-!?\U!?\E?\81ÊI\?\83Ê?i??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="classsf_1_1system_1_1SystemImpl_1d0">system::SystemImpl::wndFunc</ref>()p.?e?eWM_KEYUP?o?o?\81}?e?e!\81\91<ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener">keyboard::Listener</ref>p.???A?EAIAI?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="147" bodystart="661" bodyend="664"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a16" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>addWindowMessageMap</name>
+        <briefdescription>
+<para>
+\|\\81\92\o\E\|\a\A\\81â!?\\81C\T\A\\81~?OADI??o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\e!?\A\\81\92\o\\81\8b?\81E????\|\\81\92\o\E\|\a\A\\81â!?\\81C?oADI??\81E?T?1!\81\92 </para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="151" bodystart="667" bodyend="686"/>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a17" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>addMouseListener</name>
+        <param>
+          <type><ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">input::mouse::Listener</ref> *const</type>
+          <declname>pListener</declname>
+        </param>
+        <briefdescription>
+<para>
+MouseListener?IAE2A?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p.?o<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o10">InputImpl::mMouseListenerQ</ref>p.?EAE2A?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pListener</parametername><parameterdescription><para>
+<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p.?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="156" bodystart="156" bodyend="158"/>
+        <references id="InputImpl_8h_1o10">mMouseListenerQ</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a18" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>removeMouseListener</name>
+        <param>
+          <type><ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">input::mouse::Listener</ref> *const</type>
+          <declname>pListener</declname>
+        </param>
+        <briefdescription>
+<para>
+MouseListener?Ioi?u?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pListener</parametername><parameterdescription><para>
+<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p.?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="163" bodystart="163" bodyend="181"/>
+        <references id="InputImpl_8h_1o9">mMouseListenerList</references>
+        <references id="InputImpl_8h_1o10">mMouseListenerQ</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a19" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>addKeyboardListener</name>
+        <param>
+          <type><ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener">input::keyboard::Listener</ref> *const</type>
+          <declname>pListener</declname>
+        </param>
+        <briefdescription>
+<para>
+KeyboardListener?IAE2A?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pListener</parametername><parameterdescription><para>
+<ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener">keyboard::Listener</ref>p. ?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="185" bodystart="185" bodyend="187"/>
+        <references id="InputImpl_8h_1o12">mKeyboardListenerQ</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a20" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>removeKeyboardListener</name>
+        <param>
+          <type><ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener">input::keyboard::Listener</ref> *const</type>
+          <declname>pListener</declname>
+        </param>
+        <briefdescription>
+<para>
+KeyboardListener?Ioi?u?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pListener</parametername><parameterdescription><para>
+<ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener">keyboard::Listener</ref>p.?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="192" bodystart="192" bodyend="210"/>
+        <references id="InputImpl_8h_1o11">mKeyboardListenerList</references>
+        <references id="InputImpl_8h_1o12">mKeyboardListenerQ</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a21" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const bool</type>
+        <name>left</name>
+        <reimplements id="classsf_1_1system_1_1input_1_1Input_1a8">left</reimplements>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+o\81C\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+o\81C\U\?\o(\\81C\c\?\1\A\\81\92\A\\81P!|\\81á!?\?\e\-!?!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="214" bodystart="213" bodyend="214"/>
+        <references id="InputImpl_8h_1o25">mbBeforeLeft</references>
+        <references id="InputImpl_8h_1o15">mbLeft</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a22" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const bool</type>
+        <name>right</name>
+        <reimplements id="classsf_1_1system_1_1input_1_1Input_1a9">right</reimplements>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+\81}|\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\81}|\U\?\o(\\81C\c\?\1\A\\81\92\A\\81P!|\\81á!?\?\e\-!?!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="216" bodystart="215" bodyend="216"/>
+        <references id="InputImpl_8h_1o26">mbBeforeRight</references>
+        <references id="InputImpl_8h_1o16">mbRight</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a23" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const bool</type>
+        <name>up</name>
+        <reimplements id="classsf_1_1system_1_1input_1_1Input_1a10">up</reimplements>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+?a\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+?a\U\?\o(\\81C\c\?\1\A\\81\92\A\\81P!|\\81á!?\?\e\-!?!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="218" bodystart="217" bodyend="218"/>
+        <references id="InputImpl_8h_1o23">mbBeforeUp</references>
+        <references id="InputImpl_8h_1o13">mbUp</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a24" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const bool</type>
+        <name>down</name>
+        <reimplements id="classsf_1_1system_1_1input_1_1Input_1a11">down</reimplements>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+2?\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+2?\U\?\o(\\81C\c\?\1\A\\81\92\A\\81P!|\\81á!?\?\e\-!?!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="220" bodystart="219" bodyend="220"/>
+        <references id="InputImpl_8h_1o24">mbBeforeDown</references>
+        <references id="InputImpl_8h_1o14">mbDown</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a25" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const bool</type>
+        <name>buttonA</name>
+        <reimplements id="classsf_1_1system_1_1input_1_1Input_1a12">buttonA</reimplements>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+A\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+A\U\?\o(\\81C\c\?\1\A\\81\92\A\\81P?IA\U\?\o!|\-!?\U!?\E?IZ!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="222" bodystart="221" bodyend="222"/>
+        <references id="InputImpl_8h_1o27">mbBeforeButtonA</references>
+        <references id="InputImpl_8h_1o17">mbButtonA</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a26" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const bool</type>
+        <name>buttonB</name>
+        <reimplements id="classsf_1_1system_1_1input_1_1Input_1a13">buttonB</reimplements>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+B\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+B\U\?\o(\\81C\c\?\1\A\\81\92\A\\81P?IB\U\?\o!|\-!?\U!?\E?IX!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="224" bodystart="223" bodyend="224"/>
+        <references id="InputImpl_8h_1o28">mbBeforeButtonB</references>
+        <references id="InputImpl_8h_1o18">mbButtonB</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a27" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const bool</type>
+        <name>buttonC</name>
+        <reimplements id="classsf_1_1system_1_1input_1_1Input_1a14">buttonC</reimplements>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+C\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+C\U\?\o(\\81C\c\?\1\A\\81\92\A\\81P?IC\U\?\o!|\-!?\U!?\E?IC!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="226" bodystart="225" bodyend="226"/>
+        <references id="InputImpl_8h_1o29">mbBeforeButtonC</references>
+        <references id="InputImpl_8h_1o19">mbButtonC</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a28" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const bool</type>
+        <name>buttonD</name>
+        <reimplements id="classsf_1_1system_1_1input_1_1Input_1a15">buttonD</reimplements>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+D\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+D\U\?\o(\\81C\c\?\1\A\\81\92\A\\81P?ID\U\?\o!|\-!?\U!?\E?IV!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="228" bodystart="227" bodyend="228"/>
+        <references id="InputImpl_8h_1o30">mbBeforeButtonD</references>
+        <references id="InputImpl_8h_1o20">mbButtonD</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a29" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const bool</type>
+        <name>start</name>
+        <reimplements id="classsf_1_1system_1_1input_1_1Input_1a16">start</reimplements>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+start\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+start\U\?\o(\\81C\c\?\1\A\\81\92\A\\81P?IA\U\?\o!|\-!?\U!?\E?Ispace!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="230" bodystart="229" bodyend="230"/>
+        <references id="InputImpl_8h_1o31">mbBeforeStart</references>
+        <references id="InputImpl_8h_1o21">mbStart</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a30" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const bool</type>
+        <name>exit</name>
+        <reimplements id="classsf_1_1system_1_1input_1_1Input_1a17">exit</reimplements>        <param>
+          <type>const bool</type>
+          <declname>bTrig</declname>
+          <defval>false</defval>
+        </param>
+        <briefdescription>
+<para>
+exit\U\?\o?\81Ê2!?\83Ê?i???\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+exit\U\?\o(\-!?\U!?\E?IESC!E?\81Ê2!?\83Ê?i???i1c?Etrue?oEO?\81E?T?1!\81\92<linebreak/> <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>bTrig</parametername><parameterdescription><para>
+false ?I\81ât?I!\81\912!?\81E?A?N?E?\81E?I?i1c?C?atrue?oEO\83ÊN?\81E?T?1!\81\92<linebreak/> true?I?i1c?I!\81\91?AoY?E\U\?\o?\81Ê2!?\83Ê?i???E?-?I?s!\81\91true?oEO\83ÊN?\81E?T?1!\81\92 </para>
+</parameterdescription></parameterlist><parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\U\?\o?\81Ê2!?\83Ê?i?A???E??!! </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="232" bodystart="231" bodyend="232"/>
+        <references id="InputImpl_8h_1o32">mbBeforeExit</references>
+        <references id="InputImpl_8h_1o22">mbExit</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a31" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>showMouseCursor</name>
+        <reimplements id="classsf_1_1system_1_1input_1_1Input_1a18">showMouseCursor</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\T\|\1\\81á!?\?\e?oE??\81N?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="234" bodystart="234" bodyend="234"/>
+        <references id="InputImpl_8h_1o1">mbMouseCursor</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a32" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>hideMouseCursor</name>
+        <reimplements id="classsf_1_1system_1_1input_1_1Input_1a19">hideMouseCursor</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\T\|\1\\81á!?\?\e?o\81}\81\92?1. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="235" bodystart="235" bodyend="235"/>
+        <references id="InputImpl_8h_1o1">mbMouseCursor</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a33" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const bool</type>
+        <name>mouseCursorVisibility</name>
+        <reimplements id="classsf_1_1system_1_1input_1_1Input_1a20">mouseCursorVisibility</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\81C?os?I\T\|\1\\81á!?\?\e?I?oAO?oIa??1c?i?\81â?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\T\|\1\\81á!?\?\e?IE??\81N?\83Ê?i?A???T?1!\81\92 </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\T\|\1\\81á!?\?\e?IEoE??\81N?E?E?A?A???T?1!\81\92 </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="237" bodystart="237" bodyend="237"/>
+        <references id="InputImpl_8h_1o1">mbMouseCursor</references>
+        <referencedby id="InputImpl_8cpp_1a12">onSetCursor</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a34" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const bool</type>
+        <name>isEnabled</name>
+        <reimplements id="classsf_1_1system_1_1input_1_1Input_1a21">isEnabled</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\81C?os?I<ref idref="classsf_1_1system_1_1input_1_1Input">Input</ref>p.\?\o\?!?\O\\81\98!?\1?I?oAO?oIa??1c?i?\81â?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\81C?os!\81\91IoIN2AC??C?1!\81\92 </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\81C?os!\81\91IoINEO2AC??C?1!\81\92 </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="240" bodystart="240" bodyend="240"/>
+        <references id="InputImpl_8h_1o0">mbEnabled</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1a35" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>initialize</name>
+        <reimplements id="classsf_1_1system_1_1input_1_1Input_1a2">initialize</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1input_1_1Input">Input</ref>p.\?\o\?!?\O\\81\98!?\1?I?e\81Lu2?. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="classsf_1_1system_1_1input_1_1Input">Input</ref>p.\?\o\?!?\O\\81\98!?\1?I?AAo\\81P\e\1?o?e\81Lu2??1?e???a?EIN\81\8bO?\83Ê?i?A???T?1!\81\92<linebreak/> AI?i\e\?\O\e\e?oIoIN?1?eA|?\81á?e?3?I\a\?\A\E?o\81CA?O?D?1?3?E?I?\81\91?e?T?\81â?o!\81\92  <parameterlist kind="exception"><title>Ia3\81\8b: </title><parametername><ref idref="classsf_1_1system_1_1FatalErrorException">FatalErrorException</ref>p.</parametername><parameterdescription><para>
+ ?e\81Lu2??E?oCO?\81E???i1c?a?\81E?\81P?IAtII\C\D\?\1?\81Ê2??a\81C\81á?A?\81á?e?E?\81á?A???i1c </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="242" bodystart="101" bodyend="189"/>
+        <references id="InputImpl_8cpp_1a16">addWindowMessageMap</references>
+        <references id="InputImpl_8cpp_1c1">initJoystick</references>
+        <references id="InputImpl_8cpp_1c2">initKeyboard</references>
+        <references id="InputImpl_8h_1o27">mbBeforeButtonA</references>
+        <references id="InputImpl_8h_1o28">mbBeforeButtonB</references>
+        <references id="InputImpl_8h_1o29">mbBeforeButtonC</references>
+        <references id="InputImpl_8h_1o30">mbBeforeButtonD</references>
+        <references id="InputImpl_8h_1o24">mbBeforeDown</references>
+        <references id="InputImpl_8h_1o32">mbBeforeExit</references>
+        <references id="InputImpl_8h_1o25">mbBeforeLeft</references>
+        <references id="InputImpl_8h_1o26">mbBeforeRight</references>
+        <references id="InputImpl_8h_1o31">mbBeforeStart</references>
+        <references id="InputImpl_8h_1o23">mbBeforeUp</references>
+        <references id="InputImpl_8h_1o17">mbButtonA</references>
+        <references id="InputImpl_8h_1o18">mbButtonB</references>
+        <references id="InputImpl_8h_1o19">mbButtonC</references>
+        <references id="InputImpl_8h_1o20">mbButtonD</references>
+        <references id="InputImpl_8h_1o14">mbDown</references>
+        <references id="InputImpl_8h_1o0">mbEnabled</references>
+        <references id="InputImpl_8h_1o22">mbExit</references>
+        <references id="InputImpl_8h_1o15">mbLeft</references>
+        <references id="InputImpl_8h_1o1">mbMouseCursor</references>
+        <references id="InputImpl_8h_1o16">mbRight</references>
+        <references id="InputImpl_8h_1o21">mbStart</references>
+        <references id="InputImpl_8h_1o13">mbUp</references>
+        <references id="InputImpl_8h_1o2">mpDI</references>
+        <references id="InputImpl_8h_1o3">mpJoystick</references>
+        <references id="InputImpl_8h_1o4">mpKeyboard</references>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="public-static-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1d0" virt="normal" prot="public" const="no" volatile="no">
+        <type>BOOL CALLBACK</type>
+        <name>enumJoysticksCallback</name>
+        <param>
+          <type>const DIDEVICEINSTANCE *</type>
+          <declname>pdidInstance</declname>
+        </param>
+        <param>
+          <type>VOID *</type>
+          <declname>pContext</declname>
+        </param>
+        <briefdescription>
+<para>
+DirectInput?\81á?e?I\3!?\e\D\A\\81P. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="52" bodystart="51" bodyend="54"/>
+        <references id="InputImpl_8cpp_1a0">InputImpl</references>
+        <referencedby id="InputImpl_8cpp_1c1">initJoystick</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1d1" virt="normal" prot="public" const="no" volatile="no">
+        <type>BOOL CALLBACK</type>
+        <name>enumAxesCallback</name>
+        <param>
+          <type>const DIDEVICEOBJECTINSTANCE *</type>
+          <declname>pdidoi</declname>
+        </param>
+        <param>
+          <type>VOID *</type>
+          <declname>pContext</declname>
+        </param>
+        <briefdescription>
+<para>
+DirectInput?\81á?e?I\3!?\e\D\A\\81P. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="59" bodystart="57" bodyend="59"/>
+        <references id="System_8h_1a0">sf::DWORD</references>
+        <references id="InputImpl_8cpp_1a0">InputImpl</references>
+        <referencedby id="InputImpl_8cpp_1c1">initJoystick</referencedby>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1c0" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>uninitialize</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+?aI\81â\81ât?I?eIy?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+?aI\81â\81ât?E3\81áEu?\81E?E?\81P?A?I???\81}?E???a?I?I?3?3?C3\81áEu?\81E?T?1!\81\92 </para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="246" bodystart="192" bodyend="253"/>
+        <references id="InputImpl_8h_1o11">mKeyboardListenerList</references>
+        <references id="InputImpl_8h_1o12">mKeyboardListenerQ</references>
+        <references id="InputImpl_8h_1o9">mMouseListenerList</references>
+        <references id="InputImpl_8h_1o10">mMouseListenerQ</references>
+        <references id="InputImpl_8h_1o2">mpDI</references>
+        <references id="InputImpl_8h_1o3">mpJoystick</references>
+        <references id="InputImpl_8h_1o4">mpKeyboard</references>
+        <referencedby id="InputImpl_8cpp_1a2">~InputImpl</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1c1" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>initJoystick</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\\81C\c\?\1\A\\81\92\A\\81P?I?e\81Lu2??o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="exception"><title>Ia3\81\8b: </title><parametername><ref idref="classsf_1_1system_1_1RecoverbleErrorException">RecoverbleErrorException</ref>p.</parametername><parameterdescription><para>
+ \\81C\c\?\1\A\\81\92\A\\81P?I?e\81Lu2??E?oCO?\81E???i1c </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="249" bodystart="275" bodyend="323"/>
+        <references id="InputImpl_8h_1d1">enumAxesCallback</references>
+        <references id="InputImpl_8h_1d0">enumJoysticksCallback</references>
+        <references id="InputImpl_8h_1o5">mDIJoystickDevCaps</references>
+        <references id="InputImpl_8h_1o8">mHWND</references>
+        <references id="InputImpl_8h_1o2">mpDI</references>
+        <references id="InputImpl_8h_1o3">mpJoystick</references>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1c2" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>initKeyboard</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\-!?\U!?\E?I?e\81Lu2??o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="exception"><title>Ia3\81\8b: </title><parametername><ref idref="classsf_1_1system_1_1RecoverbleErrorException">RecoverbleErrorException</ref>p.</parametername><parameterdescription><para>
+ \-!?\U!?\E?I?e\81Lu2??E?oCO?\81E???i1c </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="252" bodystart="347" bodyend="371"/>
+        <references id="InputImpl_8h_1o8">mHWND</references>
+        <references id="InputImpl_8h_1o2">mpDI</references>
+        <references id="InputImpl_8h_1o4">mpKeyboard</references>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1c3" virt="normal" prot="private" const="no" volatile="no">
+        <type>BOOL</type>
+        <name>enumJoysticksCallback</name>
+        <param>
+          <type>const DIDEVICEINSTANCE *</type>
+          <declname>pdidInstance</declname>
+        </param>
+        <briefdescription>
+<para>
+DirectInput?\81á?e?I\3!?\e\D\A\\81P?o?eIy?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="255" bodystart="256" bodyend="271"/>
+        <references id="InputImpl_8h_1o2">mpDI</references>
+        <references id="InputImpl_8h_1o3">mpJoystick</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1InputImpl_1c4" virt="normal" prot="private" const="no" volatile="no">
+        <type>BOOL</type>
+        <name>enumAxesCallback</name>
+        <param>
+          <type>const DIDEVICEOBJECTINSTANCE *</type>
+          <declname>pdidoi</declname>
+        </param>
+        <briefdescription>
+<para>
+DirectInput?\81á?e?I\3!?\e\D\A\\81P?o?eIy?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="257" bodystart="326" bodyend="344"/>
+        <references id="InputImpl_8h_1o3">mpJoystick</references>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o0" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbEnabled</name>
+        <briefdescription>
+<para>
+Sound\?\o\?!?\O\\81\98!?\1?\81Ê\81C?os\81âEIN2A?\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="261" bodystart="260" bodyend="-1"/>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8h_1a34">isEnabled</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o1" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbMouseCursor</name>
+        <briefdescription>
+<para>
+\T\|\1\\81á!?\?\e?\81ÊE??\81N?\83Ê?i?A???e?\81á???E???\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="262" bodystart="261" bodyend="-1"/>
+        <referencedby id="InputImpl_8h_1a32">hideMouseCursor</referencedby>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8h_1a33">mouseCursorVisibility</referencedby>
+        <referencedby id="InputImpl_8h_1a31">showMouseCursor</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o2" virt="normal" prot="private">
+        <type>LPDIRECTINPUT8</type>
+        <name>mpDI</name>
+        <briefdescription>
+<para>
+DirectInput8 \?\o\?!?\O\\81\98!?\1. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="264" bodystart="263" bodyend="-1"/>
+        <referencedby id="InputImpl_8cpp_1c3">enumJoysticksCallback</referencedby>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1c1">initJoystick</referencedby>
+        <referencedby id="InputImpl_8cpp_1c2">initKeyboard</referencedby>
+        <referencedby id="InputImpl_8cpp_1c0">uninitialize</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o3" virt="normal" prot="private">
+        <type>LPDIRECTINPUTDEVICE8</type>
+        <name>mpJoystick</name>
+        <briefdescription>
+<para>
+\\81C\c\?\1\A\\81\92\A\\81P\?\o\?!?\O\\81\98!?\1?I\Y\?\o\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="266" bodystart="265" bodyend="-1"/>
+        <referencedby id="InputImpl_8cpp_1c4">enumAxesCallback</referencedby>
+        <referencedby id="InputImpl_8cpp_1c3">enumJoysticksCallback</referencedby>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1c1">initJoystick</referencedby>
+        <referencedby id="InputImpl_8cpp_1c0">uninitialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o4" virt="normal" prot="private">
+        <type>LPDIRECTINPUTDEVICE8</type>
+        <name>mpKeyboard</name>
+        <briefdescription>
+<para>
+\-!?\U!?\E\C\D\?\1?I\Y\?\o\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="267" bodystart="266" bodyend="-1"/>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1c2">initKeyboard</referencedby>
+        <referencedby id="InputImpl_8cpp_1c0">uninitialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o5" virt="normal" prot="private">
+        <type>DIDEVCAPS</type>
+        <name>mDIJoystickDevCaps</name>
+        <briefdescription>
+<para>
+\C\D\?\1C?II. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="269" bodystart="268" bodyend="-1"/>
+        <referencedby id="InputImpl_8cpp_1c1">initJoystick</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o6" virt="normal" prot="private">
+        <type>DIJOYSTATE2</type>
+        <name>mDIJoyState</name>
+        <briefdescription>
+<para>
+\\81C\c\?\1\A\\81\92\A\\81P?I?oAO. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="270" bodystart="269" bodyend="-1"/>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o7" virt="normal" prot="private">
+        <type>BYTE</type>
+        <name>mDIKeys</name>
+        <briefdescription>
+<para>
+DirectInput <ref idref="namespacesf_1_1system_1_1input_1_1keyboard">keyboard</ref>p. state buffer. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="271" bodystart="270" bodyend="-1"/>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o8" virt="normal" prot="private">
+        <type>HWND</type>
+        <name>mHWND</name>
+        <briefdescription>
+<para>
+\|\\81\92\o\E\|\I\o\E\e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="273" bodystart="272" bodyend="-1"/>
+        <referencedby id="InputImpl_8cpp_1c1">initJoystick</referencedby>
+        <referencedby id="InputImpl_8cpp_1c2">initKeyboard</referencedby>
+        <referencedby id="InputImpl_8cpp_1a1">InputImpl</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o9" virt="normal" prot="private">
+        <type><ref idref="classsf_1_1system_1_1input_1_1InputImpl_1s0">MouseListenerList</ref></type>
+        <name>mMouseListenerList</name>
+        <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p.?ICUIo. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="276" bodystart="275" bodyend="-1"/>
+        <referencedby id="InputImpl_8cpp_1a11">onMouseWheel</referencedby>
+        <referencedby id="InputImpl_8h_1a18">removeMouseListener</referencedby>
+        <referencedby id="InputImpl_8cpp_1c0">uninitialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o10" virt="normal" prot="private">
+        <type><ref idref="classsf_1_1system_1_1input_1_1InputImpl_1s0">MouseListenerList</ref></type>
+        <name>mMouseListenerQ</name>
+        <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener">mouse::Listener</ref>p.?ICUIo(\81\8bi\81âtEY\81âyIN). </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="277" bodystart="276" bodyend="-1"/>
+        <referencedby id="InputImpl_8h_1a17">addMouseListener</referencedby>
+        <referencedby id="InputImpl_8h_1a18">removeMouseListener</referencedby>
+        <referencedby id="InputImpl_8cpp_1c0">uninitialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o11" virt="normal" prot="private">
+        <type><ref idref="classsf_1_1system_1_1input_1_1InputImpl_1s1">KeyboardListenerList</ref></type>
+        <name>mKeyboardListenerList</name>
+        <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener">keyboard::Listener</ref>p.?ICUIo. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="279" bodystart="278" bodyend="-1"/>
+        <referencedby id="InputImpl_8cpp_1a14">onKeyDown</referencedby>
+        <referencedby id="InputImpl_8h_1a20">removeKeyboardListener</referencedby>
+        <referencedby id="InputImpl_8cpp_1c0">uninitialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o12" virt="normal" prot="private">
+        <type><ref idref="classsf_1_1system_1_1input_1_1InputImpl_1s1">KeyboardListenerList</ref></type>
+        <name>mKeyboardListenerQ</name>
+        <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener">keyboard::Listener</ref>p.?ICUIo(\81\8bi\81âtEY\81âyIN). </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="280" bodystart="279" bodyend="-1"/>
+        <referencedby id="InputImpl_8h_1a19">addKeyboardListener</referencedby>
+        <referencedby id="InputImpl_8h_1a20">removeKeyboardListener</referencedby>
+        <referencedby id="InputImpl_8cpp_1c0">uninitialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o13" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbUp</name>
+        <briefdescription>
+<para>
+?a\U\?\o. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="282" bodystart="281" bodyend="-1"/>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8h_1a23">up</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o14" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbDown</name>
+        <briefdescription>
+<para>
+2?\U\?\o. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="283" bodystart="282" bodyend="-1"/>
+        <referencedby id="InputImpl_8h_1a24">down</referencedby>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o15" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbLeft</name>
+        <briefdescription>
+<para>
+o\81C\U\?\o. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="284" bodystart="283" bodyend="-1"/>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8h_1a21">left</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o16" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbRight</name>
+        <briefdescription>
+<para>
+\81}|\U\?\o. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="285" bodystart="284" bodyend="-1"/>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8h_1a22">right</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o17" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbButtonA</name>
+        <briefdescription>
+<para>
+\U\?\oA. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="287" bodystart="286" bodyend="-1"/>
+        <referencedby id="InputImpl_8h_1a25">buttonA</referencedby>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o18" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbButtonB</name>
+        <briefdescription>
+<para>
+\U\?\oB. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="288" bodystart="287" bodyend="-1"/>
+        <referencedby id="InputImpl_8h_1a26">buttonB</referencedby>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o19" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbButtonC</name>
+        <briefdescription>
+<para>
+\U\?\oC. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="289" bodystart="288" bodyend="-1"/>
+        <referencedby id="InputImpl_8h_1a27">buttonC</referencedby>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o20" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbButtonD</name>
+        <briefdescription>
+<para>
+\U\?\oD. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="290" bodystart="289" bodyend="-1"/>
+        <referencedby id="InputImpl_8h_1a28">buttonD</referencedby>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o21" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbStart</name>
+        <briefdescription>
+<para>
+START\U\?\o. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="292" bodystart="291" bodyend="-1"/>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8h_1a29">start</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o22" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbExit</name>
+        <briefdescription>
+<para>
+EXIT\U\?\o. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="293" bodystart="292" bodyend="-1"/>
+        <referencedby id="InputImpl_8h_1a30">exit</referencedby>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o23" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbBeforeUp</name>
+        <briefdescription>
+<para>
+?a\U\?\o?I1\O\i!?\aA\81\8b?I?oAO. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="295" bodystart="294" bodyend="-1"/>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8h_1a23">up</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o24" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbBeforeDown</name>
+        <briefdescription>
+<para>
+2?\U\?\o?I1\O\i!?\aA\81\8b?I?oAO. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="296" bodystart="295" bodyend="-1"/>
+        <referencedby id="InputImpl_8h_1a24">down</referencedby>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o25" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbBeforeLeft</name>
+        <briefdescription>
+<para>
+o\81C\U\?\o?I1\O\i!?\aA\81\8b?I?oAO. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="297" bodystart="296" bodyend="-1"/>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8h_1a21">left</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o26" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbBeforeRight</name>
+        <briefdescription>
+<para>
+\81}|\U\?\o?I1\O\i!?\aA\81\8b?I?oAO. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="298" bodystart="297" bodyend="-1"/>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8h_1a22">right</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o27" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbBeforeButtonA</name>
+        <briefdescription>
+<para>
+\U\?\oA?I1\O\i!?\aA\81\8b?I?oAO. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="300" bodystart="299" bodyend="-1"/>
+        <referencedby id="InputImpl_8h_1a25">buttonA</referencedby>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o28" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbBeforeButtonB</name>
+        <briefdescription>
+<para>
+\U\?\oB?I1\O\i!?\aA\81\8b?I?oAO. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="301" bodystart="300" bodyend="-1"/>
+        <referencedby id="InputImpl_8h_1a26">buttonB</referencedby>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o29" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbBeforeButtonC</name>
+        <briefdescription>
+<para>
+\U\?\oC?I1\O\i!?\aA\81\8b?I?oAO. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="302" bodystart="301" bodyend="-1"/>
+        <referencedby id="InputImpl_8h_1a27">buttonC</referencedby>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o30" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbBeforeButtonD</name>
+        <briefdescription>
+<para>
+\U\?\oD?I1\O\i!?\aA\81\8b?I?oAO. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="303" bodystart="302" bodyend="-1"/>
+        <referencedby id="InputImpl_8h_1a28">buttonD</referencedby>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o31" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbBeforeStart</name>
+        <briefdescription>
+<para>
+START\U\?\o?I1\O\i!?\aA\81\8b?I?oAO. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="305" bodystart="304" bodyend="-1"/>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8h_1a29">start</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1InputImpl_1o32" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbBeforeExit</name>
+        <briefdescription>
+<para>
+EXIT\U\?\o?I1\O\i!?\aA\81\8b?I?oAO. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="306" bodystart="305" bodyend="-1"/>
+        <referencedby id="InputImpl_8h_1a30">exit</referencedby>
+        <referencedby id="InputImpl_8cpp_1a35">initialize</referencedby>
+        <referencedby id="InputImpl_8cpp_1a3">update</referencedby>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1input_1_1Input">Input</ref>p.\?\o\?!?\O\\81\98!?\1?I?AAo. </para>
+    </briefdescription>
+    <detaileddescription>
+<para>
+?e\81Lu2?EoE\81Ê?I\81\92O\81\92A\81\92E?I\\83Ê\o\\81~\e?o\81â21I?E?\81E?A???T?1!\81\92 ?E???|?\81á?U?E?o?E???I?T?o?T?C?1?\81Ê!\!\!\!\81\92 </para>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="142">
+        <label>sf::system::input::InputImpl</label>
+        <link id="classsf_1_1system_1_1input_1_1InputImpl"/>
+        <childnode id="143" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="143">
+        <label>sf::system::input::Input</label>
+        <link id="classsf_1_1system_1_1input_1_1Input"/>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="144">
+        <label>sf::system::input::InputImpl</label>
+        <link id="classsf_1_1system_1_1input_1_1InputImpl"/>
+        <childnode id="145" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="145">
+        <label>sf::system::input::Input</label>
+        <link id="classsf_1_1system_1_1input_1_1Input"/>
+      </node>
+    </collaborationgraph>
+    <location file="J:/project/sfglib/InputImpl.h" line="29" bodystart="28" bodyend="306"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1input_1_1mouse_1_1Listener" kind="class">
+    <compoundname>sf::system::input::mouse::Listener</compoundname>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a0" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>leftButtonDown</name>
+        <param>
+          <type>const int</type>
+          <declname>screenX</declname>
+        </param>
+        <param>
+          <type>const int</type>
+          <declname>screenY</declname>
+        </param>
+        <param>
+          <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+          <declname>mkey</declname>
+        </param>
+        <briefdescription>
+<para>
+o\81C\U\?\o?\81Ê2!?\83Ê?i??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\T\|\1?Io\81C\U\?\o?\81Ê2!?\83Ê?i???E?-?E\81CA?O?D?\83Ê?i?e\a\?\A\E?C?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>screenX</parametername><parameterdescription><para>
+\1\\81P\e!?\o?a?I\T\|\1XoAE\81C </para>
+</parameterdescription><parametername>screenY</parametername><parameterdescription><para>
+\1\\81P\e!?\o?a?I\T\|\1YoAE\81C </para>
+</parameterdescription><parametername>mkey</parametername><parameterdescription><para>
+A\81}\81ât?E2!?\83Ê?i??\-!?\3!?\E <ref idref="namespacesf_1_1system_1_1input_1_1mouse_1a5">MKEY_CODE</ref>p. </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="52"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a1" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>leftButtonUp</name>
+        <param>
+          <type>const int</type>
+          <declname>screenX</declname>
+        </param>
+        <param>
+          <type>const int</type>
+          <declname>screenY</declname>
+        </param>
+        <param>
+          <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+          <declname>mkey</declname>
+        </param>
+        <briefdescription>
+<para>
+o\81C\U\?\o?\81ÊI\?\83Ê?i??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\T\|\1?Io\81C\U\?\o?\81ÊI\?\83Ê?i???E?-?E\81CA?O?D?\83Ê?i?e\a\?\A\E?C?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>screenX</parametername><parameterdescription><para>
+\1\\81P\e!?\o?a?I\T\|\1XoAE\81C </para>
+</parameterdescription><parametername>screenY</parametername><parameterdescription><para>
+\1\\81P\e!?\o?a?I\T\|\1YoAE\81C </para>
+</parameterdescription><parametername>mkey</parametername><parameterdescription><para>
+A\81}\81ât?E2!?\83Ê?i??\-!?\3!?\E <ref idref="namespacesf_1_1system_1_1input_1_1mouse_1a5">MKEY_CODE</ref>p. </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="59"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a2" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>leftButtonDoubleClick</name>
+        <param>
+          <type>const int</type>
+          <declname>screenX</declname>
+        </param>
+        <param>
+          <type>const int</type>
+          <declname>screenY</declname>
+        </param>
+        <param>
+          <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+          <declname>mkey</declname>
+        </param>
+        <briefdescription>
+<para>
+o\81C\U\?\o?\81Ê\A\O\e\\81P\e\A\\81P?\83Ê?i??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\T\|\1?Io\81C\U\?\o?\81Ê\A\O\e\\81P\e\A\\81P?\83Ê?i???E?-?E\81CA?O?D?\83Ê?i?e\a\?\A\E?C?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>screenX</parametername><parameterdescription><para>
+\1\\81P\e!?\o?a?I\T\|\1XoAE\81C </para>
+</parameterdescription><parametername>screenY</parametername><parameterdescription><para>
+\1\\81P\e!?\o?a?I\T\|\1YoAE\81C </para>
+</parameterdescription><parametername>mkey</parametername><parameterdescription><para>
+A\81}\81ât?E2!?\83Ê?i??\-!?\3!?\E <ref idref="namespacesf_1_1system_1_1input_1_1mouse_1a5">MKEY_CODE</ref>p. </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="66"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a3" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>rightButtonDown</name>
+        <param>
+          <type>const int</type>
+          <declname>screenX</declname>
+        </param>
+        <param>
+          <type>const int</type>
+          <declname>screenY</declname>
+        </param>
+        <param>
+          <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+          <declname>mkey</declname>
+        </param>
+        <briefdescription>
+<para>
+\81}|\U\?\o?\81Ê2!?\83Ê?i??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\T\|\1?I\81}|\U\?\o?\81Ê2!?\83Ê?i???E?-?E\81CA?O?D?\83Ê?i?e\a\?\A\E?C?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>screenX</parametername><parameterdescription><para>
+\1\\81P\e!?\o?a?I\T\|\1XoAE\81C </para>
+</parameterdescription><parametername>screenY</parametername><parameterdescription><para>
+\1\\81P\e!?\o?a?I\T\|\1YoAE\81C </para>
+</parameterdescription><parametername>mkey</parametername><parameterdescription><para>
+A\81}\81ât?E2!?\83Ê?i??\-!?\3!?\E <ref idref="namespacesf_1_1system_1_1input_1_1mouse_1a5">MKEY_CODE</ref>p. </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="73"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a4" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>rightButtonUp</name>
+        <param>
+          <type>const int</type>
+          <declname>screenX</declname>
+        </param>
+        <param>
+          <type>const int</type>
+          <declname>screenY</declname>
+        </param>
+        <param>
+          <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+          <declname>mkey</declname>
+        </param>
+        <briefdescription>
+<para>
+\81}|\U\?\o?\81ÊI\?\83Ê?i??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\T\|\1?I\81}|\U\?\o?\81ÊI\?\83Ê?i???E?-?E\81CA?O?D?\83Ê?i?e\a\?\A\E?C?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>screenX</parametername><parameterdescription><para>
+\1\\81P\e!?\o?a?I\T\|\1XoAE\81C </para>
+</parameterdescription><parametername>screenY</parametername><parameterdescription><para>
+\1\\81P\e!?\o?a?I\T\|\1YoAE\81C </para>
+</parameterdescription><parametername>mkey</parametername><parameterdescription><para>
+A\81}\81ât?E2!?\83Ê?i??\-!?\3!?\E <ref idref="namespacesf_1_1system_1_1input_1_1mouse_1a5">MKEY_CODE</ref>p. </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="80"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a5" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>rightButtonDoubleClick</name>
+        <param>
+          <type>const int</type>
+          <declname>screenX</declname>
+        </param>
+        <param>
+          <type>const int</type>
+          <declname>screenY</declname>
+        </param>
+        <param>
+          <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+          <declname>mkey</declname>
+        </param>
+        <briefdescription>
+<para>
+\81}|\U\?\o?\81Ê\A\O\e\\81P\e\A\\81P?\83Ê?i??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\T\|\1?I\81}|\U\?\o?\81Ê\A\O\e\\81P\e\A\\81P?\83Ê?i???E?-?E\81CA?O?D?\83Ê?i?e\a\?\A\E?C?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>screenX</parametername><parameterdescription><para>
+\1\\81P\e!?\o?a?I\T\|\1XoAE\81C </para>
+</parameterdescription><parametername>screenY</parametername><parameterdescription><para>
+\1\\81P\e!?\o?a?I\T\|\1YoAE\81C </para>
+</parameterdescription><parametername>mkey</parametername><parameterdescription><para>
+A\81}\81ât?E2!?\83Ê?i??\-!?\3!?\E <ref idref="namespacesf_1_1system_1_1input_1_1mouse_1a5">MKEY_CODE</ref>p. </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="87"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a6" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>mouseMove</name>
+        <param>
+          <type>const int</type>
+          <declname>screenX</declname>
+        </param>
+        <param>
+          <type>const int</type>
+          <declname>screenY</declname>
+        </param>
+        <param>
+          <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+          <declname>mkey</declname>
+        </param>
+        <briefdescription>
+<para>
+\T\|\1\\81á!?\?\eoAE\81C?\81ÊEN2??\81E??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\T\|\1\\81á!?\?\eoAE\81C?\81ÊEN2??\81E???E?-?E\81CA?O?D?\83Ê?i?e\a\?\A\E?C?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>screenX</parametername><parameterdescription><para>
+\1\\81P\e!?\o?a?I\T\|\1XoAE\81C </para>
+</parameterdescription><parametername>screenY</parametername><parameterdescription><para>
+\1\\81P\e!?\o?a?I\T\|\1YoAE\81C </para>
+</parameterdescription><parametername>mkey</parametername><parameterdescription><para>
+A\81}\81ât?E2!?\83Ê?i??\-!?\3!?\E <ref idref="namespacesf_1_1system_1_1input_1_1mouse_1a5">MKEY_CODE</ref>p. </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="94"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a7" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>mouseWheel</name>
+        <param>
+          <type>const int</type>
+          <declname>screenX</declname>
+        </param>
+        <param>
+          <type>const int</type>
+          <declname>screenY</declname>
+        </param>
+        <param>
+          <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+          <declname>mkey</declname>
+        </param>
+        <briefdescription>
+<para>
+\T\|\1\U\?!?\e?I\81\8bIAO?\81ÊEN2??\81E??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\T\|\1\U\?!?\e?I\81\8bIAO?\81ÊEN2??\81E???E?-?E\81CA?O?D?\83Ê?i?e\a\?\A\E?C?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>screenX</parametername><parameterdescription><para>
+\1\\81P\e!?\o?a?I\T\|\1XoAE\81C </para>
+</parameterdescription><parametername>screenY</parametername><parameterdescription><para>
+\1\\81P\e!?\o?a?I\T\|\1YoAE\81C </para>
+</parameterdescription><parametername>mkey</parametername><parameterdescription><para>
+A\81}\81ât?E2!?\83Ê?i??\-!?\3!?\E <ref idref="namespacesf_1_1system_1_1input_1_1mouse_1a5">MKEY_CODE</ref>p. </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="101"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a8" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>isListeningMouse</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\T\|\1\?\U\o\E?o?o?\81}?e?e?oAO?\81á?E?|?\81á?oIa??1c?i?\81â?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\81C?os\T\|\1\?\U\o\E?o?o?\81}?e?A?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\81C?os\T\|\1\?\U\o\E?o\83ÊnEY?\81E?A???e </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="106"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a9" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>mouseTalkerIsDeleted</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\T\|\1\?\U\o\E?oE\81P1O?1?eTalker?\81Êoi?u?\83Ê?i??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\T\|\1\?\U\o\E?oE\81P1O?1?eTalker?\81Êoi?u?\83Ê?i?e\81ât?E\81CA?D?i?T?1!\81\92 ?3?I\a\?\A\E?\81Ê\81CA?D?i??\81\8bE1s?I!\81\91\e\1\E!?A|?I<ref idref="classsf_1_1system_1_1input_1_1Input_1a5">Input::removeMouseListener</ref>()p.?o\81CA?O?D?\81E?A?I???\81}?T?\81â?o!\81\92 </para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="111"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+\T\|\1\?\U\o\E\e\1\E!Y. </para>
+    </briefdescription>
+    <detaileddescription>
+<para>
+\T\|\1\?\U\o\E?I\e\1\E!??C?1!\81\92\T\|\1?I\?\U\o\E?I?1?U?A?3?I\e\1\E!?\?\o\?!?\O\\81\98!?\1?oAI?\81C?A1O?i?i?T?1!\81\92<linebreak/> \T\|\1\?\U\o\E?o?eIy?\81E?????i1c!\81\91?3?I\?\o\?!?\O\\81\98!?\1?o\81EN?\83Ê?\81E?A?AAo?\81E!\81\91\?\U\o\E?oE\81P1O?1?e<ref idref="classsf_1_1system_1_1input_1_1Input">Input</ref>p.\?\o\?!?\O\\81\98!?\1?I <ref idref="classsf_1_1system_1_1input_1_1Input_1a4">Input::addMouseListener</ref>()p.\a\?\A\E?CADI??\81E?T?1!\81\92 </para>
+    </detaileddescription>
+    <location file="J:/project/sfglib/Input.h" line="44" bodystart="43" bodyend="112"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1input_1_1keyboard_1_1Listener" kind="class">
+    <compoundname>sf::system::input::keyboard::Listener</compoundname>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1keyboard_1_1Listener_1a0" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>keyDown</name>
+        <param>
+          <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+          <declname>keyCode</declname>
+        </param>
+        <param>
+          <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+          <declname>extKeyCode</declname>
+        </param>
+        <briefdescription>
+<para>
+\-!??\81Ê2!?\83Ê?i??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\-!??\81Ê2!?\83Ê?i???i1c?E\81CA?O?D?\83Ê?i?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>keyCode</parametername><parameterdescription><para>
+\-!?\3!?\E </para>
+</parameterdescription><parametername>extKeyCode</parametername><parameterdescription><para>
+3EA\\-!?\3!?\E EXTEND_KEYCODE ?o\81â2?E </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="154"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1keyboard_1_1Listener_1a1" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>keyUp</name>
+        <param>
+          <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+          <declname>keyCode</declname>
+        </param>
+        <param>
+          <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+          <declname>extKeyCode</declname>
+        </param>
+        <briefdescription>
+<para>
+\-!??\81ÊI\?\83Ê?i??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\-!??\81ÊI\?\83Ê?i???i1c?E\81CA?O?D?\83Ê?i?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>keyCode</parametername><parameterdescription><para>
+\-!?\3!?\E </para>
+</parameterdescription><parametername>extKeyCode</parametername><parameterdescription><para>
+3EA\\-!?\3!?\E <ref idref="namespacesf_1_1system_1_1input_1_1keyboard_1a6">EXTEND_KEYCODE</ref>p. ?o\81â2?E </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="160"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1keyboard_1_1Listener_1a2" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>isListeningKeyboard</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\-!?\U!?\E\?\U\o\E?o?o?\81}?e?e?oAO?\81á?E?|?\81á?oIa??1c?i?\81â?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+Talker?\81Ê<ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener">Listener</ref>p.?\81Ê\81C?os\-!?\U!?\E\?\U\o\E?o?o?\81}?e?e?oAO?E?\81\91?e?\81á?E?|?\81á3IC\81\98?1?e???a?I\a\?\A\E?C?1!\81\92<linebreak/> \81\8bi\81âtAa?E\-!?\U!?\E\?\U\o\E?o?o?\81}?e?e???\81P?E???i1c?I?3?I\a\?\A\E?\81Ê\81CA?D?i???E?-?Efalse?oEO?\81E?T?1!\81\92 <parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\81C?os\-!?\U!?\E\?\U\o\E?o?o?\81}?e?A?A???e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\81C?os\-!?\U!?\E\?\U\o\E?o\83ÊnEY?\81E?A???e </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="167"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1keyboard_1_1Listener_1a3" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>keyboardTalkerIsDeleted</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\-!?\U!?\E\?\U\o\E?oE\81P1O?1?eTalker?\81Êoi?u?\83Ê?i??. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\-!?\U!?\E\?\U\o\E?oE\81P1O?1?eTalker?\81Êoi?u?\83Ê?i?e\81ât?E\81CA?D?i?T?1!\81\92<linebreak/> ?3?i?\81Ê\81CA?D?i???e!\81\91Talker?\81á?E?I\a\a\e?a?EA\81Cos?\81E?E???3?E?E?E?e?I?C!\81\91 ?3?I\a\?\A\E?\81Ê\81CA?D?i??\81\8bE1s?I!\81\91\e\1\E!?A|?IAaAD?E<ref idref="classsf_1_1system_1_1input_1_1Input_1a7">Input::removeKeyboardListener</ref>()p.?o\81CA?O?D?\81E?A?I???\81}?T?\81â?o!\81\92 \81Ci?A?A\81CA?O?D?\81E??\81Ca?I?oAO?IEOAe?E?E?e?T?1!\81\92 </para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="174"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+\-!?\U!?\E\?\U\o\E\e\1\E!Y. </para>
+    </briefdescription>
+    <detaileddescription>
+<para>
+\-!?\U!?\E\?\U\o\E?I\e\1\E!??C?1!\81\92\-!?\U!?\E?I\?\U\o\E?I?1?U?A?3?I\e\1\E!?\?\o\?!?\O\\81\98!?\1?oAI?\81C?A1O?i?i?T?1!\81\92<linebreak/> \-!?\U!?\E\?\U\o\E?o?eIy?\81E?????i1c!\81\91?3?I\?\o\?!?\O\\81\98!?\1?o\81EN?\83Ê?\81E?A?AAo?\81E!\81\91\?\U\o\E?oE\81P1O?1?e<ref idref="classsf_1_1system_1_1input_1_1Input">Input</ref>p.\?\o\?!?\O\\81\98!?\1?I <ref idref="classsf_1_1system_1_1input_1_1Input_1a6">Input::addKeyboardListener</ref>()p.\a\?\A\E?CADI??\81E?T?1!\81\92 </para>
+    </detaileddescription>
+    <location file="J:/project/sfglib/Input.h" line="148" bodystart="147" bodyend="175"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1input_1_1Listener" kind="class">
+    <compoundname>sf::system::input::Listener</compoundname>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Listener_1a0" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>deviceStateChanged</name>
+        <param>
+          <type><ref idref="classsf_1_1system_1_1input_1_1Input">Input</ref> *const</type>
+          <declname>pInput</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="329"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1input_1_1Listener_1a1" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>eventTalkerIsDeleted</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="330"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+\?\U\o\E\e\1\E!?\\81P\e\1. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="J:/project/sfglib/Input.h" line="327" bodystart="326" bodyend="331"/>
+  </compounddef>
+  <compounddef id="classsf_1_1application_1_1Main" kind="class">
+    <compoundname>sf::application::Main</compoundname>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1application_1_1Main_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>Main</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Main.h" line="38" bodystart="38" bodyend="38"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1application_1_1Main_1a1" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~Main</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Main.h" line="39" bodystart="39" bodyend="39"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1application_1_1Main_1a2" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>initialize</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Main.h" line="40"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1application_1_1Main_1a3" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>run</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Main.h" line="43"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1application_1_1Main_1a4" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite">sf::system::console::sprite::Sprite</ref> *const</type>
+        <name>getBlankSprite</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Main.h" line="44"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="public-static-func">
+      <memberdef kind="function" id="classsf_1_1application_1_1Main_1d0" virt="normal" prot="public" const="no" volatile="no">
+        <type>Main *</type>
+        <name>instance</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Main.h" line="47"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="J:/project/sfglib/Main.h" line="35" bodystart="34" bodyend="48"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1console_1_1Obj" kind="class">
+    <compoundname>sf::system::console::Obj</compoundname>
+    <derivedcompoundref idref="classsf_1_1system_1_1console_1_1Obj2D" prot="public" virt="non-virtual"/>
+    <derivedcompoundref idref="classsf_1_1system_1_1console_1_1Obj3D" prot="public" virt="non-virtual"/>
+    <innerclass refid="classsf_1_1system_1_1console_1_1Obj_1_1List">sf::system::console::Obj::List</innerclass>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>Obj</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="42" bodystart="55" bodyend="58"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1a1" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~Obj</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="43" bodystart="61" bodyend="64"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1a2" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>draw</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="44"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1a3" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite">sprite::Sprite</ref> *const</type>
+        <name>sprite</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="49"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1a4" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>sprite</name>
+        <param>
+          <type><ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite">sprite::Sprite</ref> *const</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="50"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1a5" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const int</type>
+        <name>index</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="53"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1a6" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>index</name>
+        <param>
+          <type>const int</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="54"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1a7" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>visibility</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="56"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1a8" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>visibility</name>
+        <param>
+          <type>const bool</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="57"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1a9" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual Obj *const</type>
+        <name>previous</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="59"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1a10" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>previous</name>
+        <param>
+          <type>Obj *const</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="60"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1a11" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual Obj *const</type>
+        <name>next</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="62"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1a12" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>next</name>
+        <param>
+          <type>Obj *const</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="63"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1a13" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const float</type>
+        <name>z</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="65"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1a14" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>z</name>
+        <param>
+          <type>const float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="66"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1a15" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>drawMode</name>
+        <param>
+          <type>const <ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref></type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="68"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1a16" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const <ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref></type>
+        <name>drawMode</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="69"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="154">
+        <label>sf::system::console::Obj</label>
+      </node>
+      <node id="156">
+        <label>sf::system::console::ObjQuadrangle</label>
+        <childnode id="155" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="158">
+        <label>sf::system::console::Background</label>
+        <childnode id="157" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="160">
+        <label>sf::system::console::Obj3DL</label>
+        <childnode id="159" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="157">
+        <label>sf::system::console::ObjRectangle</label>
+        <childnode id="155" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="159">
+        <label>sf::system::console::Obj3D</label>
+        <childnode id="154" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="155">
+        <label>sf::system::console::Obj2D</label>
+        <childnode id="154" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <location file="J:/project/sfglib/Obj.h" line="40" bodystart="39" bodyend="93"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1console_1_1Obj2D" kind="class">
+    <compoundname>sf::system::console::Obj2D</compoundname>
+    <basecompoundref idref="classsf_1_1system_1_1console_1_1Obj" prot="public" virt="non-virtual"/>
+    <derivedcompoundref idref="classsf_1_1system_1_1console_1_1ObjQuadrangle" prot="public" virt="non-virtual"/>
+    <derivedcompoundref idref="classsf_1_1system_1_1console_1_1ObjRectangle" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>Obj2D</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="58" bodystart="49" bodyend="61"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a1" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~Obj2D</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="59" bodystart="64" bodyend="66"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a2" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const float</type>
+        <name>x</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="61" bodystart="61" bodyend="61"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a3" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>x</name>
+        <param>
+          <type>const float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="62" bodystart="62" bodyend="62"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a4" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const float</type>
+        <name>y</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="64" bodystart="64" bodyend="64"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a5" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>y</name>
+        <param>
+          <type>const float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="65" bodystart="65" bodyend="65"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a6" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const float</type>
+        <name>z</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="67" bodystart="67" bodyend="67"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a7" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>z</name>
+        <param>
+          <type>const float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="68" bodystart="68" bodyend="68"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a8" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const float</type>
+        <name>angle</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="70" bodystart="70" bodyend="70"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a9" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>angle</name>
+        <param>
+          <type>const float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="71" bodystart="71" bodyend="71"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a10" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const float</type>
+        <name>scalingX</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="73" bodystart="73" bodyend="73"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a11" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>scalingX</name>
+        <param>
+          <type>const float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="74" bodystart="74" bodyend="74"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a12" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const float</type>
+        <name>scalingY</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="76" bodystart="76" bodyend="76"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a13" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>scalingY</name>
+        <param>
+          <type>const float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="77" bodystart="77" bodyend="77"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a14" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>reverseX</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="79" bodystart="79" bodyend="79"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a15" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>reverseX</name>
+        <param>
+          <type>const bool</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="80" bodystart="80" bodyend="80"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a16" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>reverseY</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="82" bodystart="82" bodyend="82"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a17" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>reverseY</name>
+        <param>
+          <type>const bool</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="83" bodystart="83" bodyend="83"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a18" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>drawMode</name>
+        <param>
+          <type>const <ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref></type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="85" bodystart="85" bodyend="85"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a19" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const <ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref></type>
+        <name>drawMode</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="86" bodystart="86" bodyend="86"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a20" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite">sprite::Sprite</ref> *const</type>
+        <name>sprite</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="89" bodystart="89" bodyend="89"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a21" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>sprite</name>
+        <param>
+          <type><ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite">sprite::Sprite</ref> *const</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="90" bodystart="90" bodyend="90"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a22" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const int</type>
+        <name>index</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="92" bodystart="92" bodyend="92"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a23" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>index</name>
+        <param>
+          <type>const int</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="93" bodystart="93" bodyend="93"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a24" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>visibility</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="96" bodystart="96" bodyend="96"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a25" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>visibility</name>
+        <param>
+          <type>const bool</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="97" bodystart="97" bodyend="97"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a26" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual Obj *const</type>
+        <name>previous</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="99" bodystart="99" bodyend="99"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a27" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>previous</name>
+        <param>
+          <type>Obj *const</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="100" bodystart="100" bodyend="100"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a28" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual Obj *const</type>
+        <name>next</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="102" bodystart="102" bodyend="102"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj2D_1a29" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>next</name>
+        <param>
+          <type>Obj *const</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="103" bodystart="103" bodyend="103"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj2D_1o0" virt="normal" prot="private">
+        <type>float</type>
+        <name>mX</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="107" bodystart="107" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj2D_1o1" virt="normal" prot="private">
+        <type>float</type>
+        <name>mY</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="107" bodystart="107" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj2D_1o2" virt="normal" prot="private">
+        <type>float</type>
+        <name>mZ</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="107" bodystart="107" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj2D_1o3" virt="normal" prot="private">
+        <type>float</type>
+        <name>mRad</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="107" bodystart="107" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj2D_1o4" virt="normal" prot="private">
+        <type>float</type>
+        <name>mAngle</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="107" bodystart="107" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj2D_1o5" virt="normal" prot="private">
+        <type>float</type>
+        <name>mScalingX</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="108" bodystart="108" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj2D_1o6" virt="normal" prot="private">
+        <type>float</type>
+        <name>mScalingY</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="108" bodystart="108" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj2D_1o7" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbVisibility</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="109" bodystart="109" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj2D_1o8" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbReverseX</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="110" bodystart="110" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj2D_1o9" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbReverseY</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="111" bodystart="111" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj2D_1o10" virt="normal" prot="private">
+        <type><ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite">sprite::Sprite</ref> *</type>
+        <name>mpSprite</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="113" bodystart="113" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj2D_1o11" virt="normal" prot="private">
+        <type>int</type>
+        <name>mIndex</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="114" bodystart="114" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj2D_1o12" virt="normal" prot="private">
+        <type><ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref></type>
+        <name>mDrawMode</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="116" bodystart="116" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj2D_1o13" virt="normal" prot="private">
+        <type>Obj *</type>
+        <name>mpPrevious</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="117" bodystart="117" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj2D_1o14" virt="normal" prot="private">
+        <type>Obj *</type>
+        <name>mpNext</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="118" bodystart="118" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="163">
+        <label>sf::system::console::Obj</label>
+      </node>
+      <node id="164">
+        <label>sf::system::console::ObjQuadrangle</label>
+        <childnode id="162" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="166">
+        <label>sf::system::console::Background</label>
+        <childnode id="165" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="165">
+        <label>sf::system::console::ObjRectangle</label>
+        <childnode id="162" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="162">
+        <label>sf::system::console::Obj2D</label>
+        <childnode id="163" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="168">
+        <label>sf::system::console::Obj</label>
+      </node>
+      <node id="169">
+        <label>sf::system::console::sprite::Sprite</label>
+        <link id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite"/>
+      </node>
+      <node id="167">
+        <label>sf::system::console::Obj2D</label>
+        <childnode id="168" relation="public-inheritance">
+        </childnode>
+        <childnode id="168" relation="usage">
+          <edgelabel>mpNext</edgelabel>
+          <edgelabel>mpPrevious</edgelabel>
+        </childnode>
+        <childnode id="169" relation="usage">
+          <edgelabel>mpSprite</edgelabel>
+        </childnode>
+      </node>
+    </collaborationgraph>
+    <location file="J:/project/sfglib/Obj2D.h" line="56" bodystart="55" bodyend="120"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1console_1_1Obj3D" kind="class">
+    <compoundname>sf::system::console::Obj3D</compoundname>
+    <basecompoundref idref="classsf_1_1system_1_1console_1_1Obj" prot="public" virt="non-virtual"/>
+    <derivedcompoundref idref="classsf_1_1system_1_1console_1_1Obj3DL" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>Obj3D</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="41" bodystart="42" bodyend="57"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a1" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~Obj3D</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="42" bodystart="59" bodyend="61"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a2" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>x</name>
+        <param>
+          <type>float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="48" bodystart="64" bodyend="68"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a3" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>x</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="49" bodystart="49" bodyend="49"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a4" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>spaceX</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="50" bodystart="50" bodyend="50"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a5" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>y</name>
+        <param>
+          <type>const float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="53" bodystart="71" bodyend="75"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a6" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>y</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="54" bodystart="54" bodyend="54"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a7" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>spaceY</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="55" bodystart="55" bodyend="55"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a8" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>z</name>
+        <param>
+          <type>const float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="58" bodystart="78" bodyend="85"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a9" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>z</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="59" bodystart="59" bodyend="59"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a10" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>spaceZ</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="60" bodystart="60" bodyend="60"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a11" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>angleX</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="63" bodystart="63" bodyend="63"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a12" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>angleX</name>
+        <param>
+          <type>const float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="64" bodystart="88" bodyend="93"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a13" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>angleY</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="67" bodystart="67" bodyend="67"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a14" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>angleY</name>
+        <param>
+          <type>const float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="68" bodystart="96" bodyend="101"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a15" virt="normal" prot="public" const="no" volatile="no">
+        <type>const float</type>
+        <name>angleZ</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="71" bodystart="71" bodyend="71"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a16" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>angleZ</name>
+        <param>
+          <type>const float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="72" bodystart="104" bodyend="109"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a17" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>rotXCos</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="76" bodystart="76" bodyend="76"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a18" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>rotXSin</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="77" bodystart="77" bodyend="77"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a19" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>rotYCos</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="79" bodystart="79" bodyend="79"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a20" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>rotYSin</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="80" bodystart="80" bodyend="80"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a21" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>rotZCos</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="82" bodystart="82" bodyend="82"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a22" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>rotZSin</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="83" bodystart="83" bodyend="83"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a23" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>scalingX</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="88" bodystart="88" bodyend="88"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a24" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>scalingX</name>
+        <param>
+          <type>const float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="89" bodystart="89" bodyend="89"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a25" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>scalingY</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="92" bodystart="92" bodyend="92"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a26" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>scalingY</name>
+        <param>
+          <type>const float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="93" bodystart="93" bodyend="93"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a27" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>scalingZ</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="96" bodystart="96" bodyend="96"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a28" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>scalingZ</name>
+        <param>
+          <type>const float</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="97" bodystart="97" bodyend="97"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a29" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>drawMode</name>
+        <param>
+          <type>const <ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref></type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="99" bodystart="99" bodyend="99"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a30" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const <ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref></type>
+        <name>drawMode</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="100" bodystart="100" bodyend="100"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a31" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite">sprite::Sprite</ref> *const</type>
+        <name>sprite</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="103" bodystart="103" bodyend="103"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a32" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>sprite</name>
+        <param>
+          <type><ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite">sprite::Sprite</ref> *const</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="104" bodystart="104" bodyend="104"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a33" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const int</type>
+        <name>index</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="106" bodystart="106" bodyend="106"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a34" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>index</name>
+        <param>
+          <type>const int</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="107" bodystart="107" bodyend="107"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a35" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const bool</type>
+        <name>visibility</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="109" bodystart="109" bodyend="109"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a36" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>visibility</name>
+        <param>
+          <type>const bool</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="110" bodystart="110" bodyend="110"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a37" virt="normal" prot="public" const="yes" volatile="no">
+        <type>Obj *const</type>
+        <name>previous</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="112" bodystart="112" bodyend="112"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a38" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>previous</name>
+        <param>
+          <type>Obj *const</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="113" bodystart="113" bodyend="113"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a39" virt="normal" prot="public" const="yes" volatile="no">
+        <type>Obj *const</type>
+        <name>next</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="115" bodystart="115" bodyend="115"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3D_1a40" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>next</name>
+        <param>
+          <type>Obj *const</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="116" bodystart="116" bodyend="116"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o0" virt="normal" prot="private">
+        <type>float</type>
+        <name>mX</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="120" bodystart="120" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o1" virt="normal" prot="private">
+        <type>float</type>
+        <name>mY</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="121" bodystart="121" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o2" virt="normal" prot="private">
+        <type>float</type>
+        <name>mZ</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="122" bodystart="122" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o3" virt="normal" prot="private">
+        <type>float</type>
+        <name>mSpaceX</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="125" bodystart="125" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o4" virt="normal" prot="private">
+        <type>float</type>
+        <name>mSpaceY</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="126" bodystart="126" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o5" virt="normal" prot="private">
+        <type>float</type>
+        <name>mSpaceZ</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="127" bodystart="127" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o6" virt="normal" prot="private">
+        <type>float</type>
+        <name>mAngleX</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="129" bodystart="129" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o7" virt="normal" prot="private">
+        <type>float</type>
+        <name>mAngleY</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="130" bodystart="130" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o8" virt="normal" prot="private">
+        <type>float</type>
+        <name>mAngleZ</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="131" bodystart="131" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o9" virt="normal" prot="private">
+        <type>float</type>
+        <name>mRotXSin</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="133" bodystart="133" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o10" virt="normal" prot="private">
+        <type>float</type>
+        <name>mRotYSin</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="134" bodystart="134" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o11" virt="normal" prot="private">
+        <type>float</type>
+        <name>mRotZSin</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="135" bodystart="135" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o12" virt="normal" prot="private">
+        <type>float</type>
+        <name>mRotXCos</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="136" bodystart="136" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o13" virt="normal" prot="private">
+        <type>float</type>
+        <name>mRotYCos</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="137" bodystart="137" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o14" virt="normal" prot="private">
+        <type>float</type>
+        <name>mRotZCos</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="138" bodystart="138" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o15" virt="normal" prot="private">
+        <type>float</type>
+        <name>mScalingX</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="140" bodystart="140" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o16" virt="normal" prot="private">
+        <type>float</type>
+        <name>mScalingY</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="141" bodystart="141" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o17" virt="normal" prot="private">
+        <type>float</type>
+        <name>mScalingZ</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="142" bodystart="142" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o18" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbVisibility</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="144" bodystart="144" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o19" virt="normal" prot="private">
+        <type><ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite">sprite::Sprite</ref> *</type>
+        <name>mpSprite</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="145" bodystart="145" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o20" virt="normal" prot="private">
+        <type>int</type>
+        <name>mIndex</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="146" bodystart="146" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o21" virt="normal" prot="private">
+        <type><ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref></type>
+        <name>mDrawMode</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="147" bodystart="147" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o22" virt="normal" prot="private">
+        <type>Obj *</type>
+        <name>mpPrevious</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="148" bodystart="148" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3D_1o23" virt="normal" prot="private">
+        <type>Obj *</type>
+        <name>mpNext</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="149" bodystart="149" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="171">
+        <label>sf::system::console::Obj</label>
+      </node>
+      <node id="172">
+        <label>sf::system::console::Obj3DL</label>
+        <childnode id="170" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="170">
+        <label>sf::system::console::Obj3D</label>
+        <childnode id="171" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="174">
+        <label>sf::system::console::Obj</label>
+      </node>
+      <node id="175">
+        <label>sf::system::console::sprite::Sprite</label>
+        <link id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite"/>
+      </node>
+      <node id="173">
+        <label>sf::system::console::Obj3D</label>
+        <childnode id="174" relation="public-inheritance">
+        </childnode>
+        <childnode id="174" relation="usage">
+          <edgelabel>mpNext</edgelabel>
+          <edgelabel>mpPrevious</edgelabel>
+        </childnode>
+        <childnode id="175" relation="usage">
+          <edgelabel>mpSprite</edgelabel>
+        </childnode>
+      </node>
+    </collaborationgraph>
+    <location file="J:/project/sfglib/Obj3D.h" line="38" bodystart="37" bodyend="151"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1console_1_1Obj3DL" kind="class">
+    <compoundname>sf::system::console::Obj3DL</compoundname>
+    <basecompoundref idref="classsf_1_1system_1_1console_1_1Obj3D" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3DL_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>Obj3DL</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3DL.h" line="36" bodystart="40" bodyend="46"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3DL_1a1" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~Obj3DL</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3DL.h" line="37" bodystart="48" bodyend="51"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3DL_1a2" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>draw</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3DL.h" line="39" bodystart="39" bodyend="39"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3DL_1a3" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const COLOR</type>
+        <name>color</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3DL.h" line="41" bodystart="41" bodyend="41"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3DL_1a4" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>color</name>
+        <param>
+          <type>const COLOR</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3DL.h" line="42" bodystart="42" bodyend="42"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3DL_1a5" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const COLOR</type>
+        <name>specular</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3DL.h" line="44" bodystart="44" bodyend="44"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj3DL_1a6" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>specular</name>
+        <param>
+          <type>const COLOR</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3DL.h" line="45" bodystart="45" bodyend="45"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3DL_1o0" virt="normal" prot="private">
+        <type>COLOR</type>
+        <name>mColor</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3DL.h" line="48" bodystart="48" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj3DL_1o1" virt="normal" prot="private">
+        <type>COLOR</type>
+        <name>mSpecular</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3DL.h" line="49" bodystart="49" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="178">
+        <label>sf::system::console::Obj</label>
+      </node>
+      <node id="176">
+        <label>sf::system::console::Obj3DL</label>
+        <childnode id="177" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="177">
+        <label>sf::system::console::Obj3D</label>
+        <childnode id="178" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="181">
+        <label>sf::system::console::Obj</label>
+      </node>
+      <node id="182">
+        <label>sf::system::console::sprite::Sprite</label>
+        <link id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite"/>
+      </node>
+      <node id="179">
+        <label>sf::system::console::Obj3DL</label>
+        <childnode id="180" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="180">
+        <label>sf::system::console::Obj3D</label>
+        <childnode id="181" relation="public-inheritance">
+        </childnode>
+        <childnode id="181" relation="usage">
+          <edgelabel>mpNext</edgelabel>
+          <edgelabel>mpPrevious</edgelabel>
+        </childnode>
+        <childnode id="182" relation="usage">
+          <edgelabel>mpSprite</edgelabel>
+        </childnode>
+      </node>
+    </collaborationgraph>
+    <location file="J:/project/sfglib/Obj3DL.h" line="34" bodystart="33" bodyend="50"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1console_1_1Obj_1_1List" kind="class">
+    <compoundname>sf::system::console::Obj::List</compoundname>
+      <sectiondef kind="public-static-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1_1List_1d0" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>insertObj</name>
+        <param>
+          <type>Obj *</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="75" bodystart="71" bodyend="114"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1_1List_1d1" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>deleteObj</name>
+        <param>
+          <type>Obj *</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="76" bodystart="117" bodyend="145"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1_1List_1d2" virt="normal" prot="public" const="no" volatile="no">
+        <type>Obj *</type>
+        <name>moveTop</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="78" bodystart="160" bodyend="160"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1_1List_1d3" virt="normal" prot="public" const="no" volatile="no">
+        <type>Obj *</type>
+        <name>moveBottom</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="79" bodystart="161" bodyend="161"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1_1List_1d4" virt="normal" prot="public" const="no" volatile="no">
+        <type>Obj *</type>
+        <name>moveNext</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="81" bodystart="147" bodyend="152"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1Obj_1_1List_1d5" virt="normal" prot="public" const="no" volatile="no">
+        <type>Obj *</type>
+        <name>movePrevious</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="82" bodystart="154" bodyend="158"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-static-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj_1_1List_1r0" virt="normal" prot="private">
+        <type>Obj *</type>
+        <name>mspCurrent</name>
+        <initializer> NULL</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="86" bodystart="48" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj_1_1List_1r1" virt="normal" prot="private">
+        <type>Obj *</type>
+        <name>mspTop</name>
+        <initializer> NULL</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="87" bodystart="47" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj_1_1List_1r2" virt="normal" prot="private">
+        <type>Obj *</type>
+        <name>mspBottom</name>
+        <initializer> NULL</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="88" bodystart="46" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1Obj_1_1List_1r3" virt="normal" prot="private">
+        <type>int</type>
+        <name>mCount</name>
+        <initializer> 0</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="89" bodystart="45" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <collaborationgraph>
+      <node id="185">
+        <label>sf::system::console::Obj</label>
+      </node>
+      <node id="184">
+        <label>sf::system::console::Obj::List</label>
+        <childnode id="185" relation="usage">
+          <edgelabel>mspBottom</edgelabel>
+          <edgelabel>mspCurrent</edgelabel>
+          <edgelabel>mspTop</edgelabel>
+        </childnode>
+      </node>
+    </collaborationgraph>
+    <location file="J:/project/sfglib/Obj.h" line="73" bodystart="72" bodyend="91"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1console_1_1ObjQuadrangle" kind="class">
+    <compoundname>sf::system::console::ObjQuadrangle</compoundname>
+    <basecompoundref idref="classsf_1_1system_1_1console_1_1Obj2D" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ObjQuadrangle_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>ObjQuadrangle</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ObjQuadrangle.h" line="40" bodystart="42" bodyend="47"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ObjQuadrangle_1a1" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~ObjQuadrangle</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ObjQuadrangle.h" line="41" bodystart="49" bodyend="53"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ObjQuadrangle_1a2" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>draw</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ObjQuadrangle.h" line="45" bodystart="45" bodyend="45"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ObjQuadrangle_1a3" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const <ref idref="structsf_1_1system_1_1console_1_1Vertex">Vertex</ref> *const</type>
+        <name>vertex</name>
+        <param>
+          <type>const int</type>
+          <declname>i</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ObjQuadrangle.h" line="48" bodystart="48" bodyend="48"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ObjQuadrangle_1a4" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual <ref idref="structsf_1_1system_1_1console_1_1Vertex">Vertex</ref> *const</type>
+        <name>vertex</name>
+        <param>
+          <type>const int</type>
+          <declname>i</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ObjQuadrangle.h" line="49" bodystart="49" bodyend="49"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ObjQuadrangle_1o0" virt="normal" prot="private">
+        <type><ref idref="structsf_1_1system_1_1console_1_1Vertex">Vertex</ref></type>
+        <name>mVertex</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ObjQuadrangle.h" line="51" bodystart="51" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="188">
+        <label>sf::system::console::Obj</label>
+      </node>
+      <node id="186">
+        <label>sf::system::console::ObjQuadrangle</label>
+        <childnode id="187" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="187">
+        <label>sf::system::console::Obj2D</label>
+        <childnode id="188" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="191">
+        <label>sf::system::console::Obj</label>
+      </node>
+      <node id="192">
+        <label>sf::system::console::sprite::Sprite</label>
+        <link id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite"/>
+      </node>
+      <node id="193">
+        <label>sf::system::console::Vertex</label>
+        <link id="structsf_1_1system_1_1console_1_1Vertex"/>
+      </node>
+      <node id="189">
+        <label>sf::system::console::ObjQuadrangle</label>
+        <childnode id="190" relation="public-inheritance">
+        </childnode>
+        <childnode id="193" relation="usage">
+          <edgelabel>mVertex</edgelabel>
+        </childnode>
+      </node>
+      <node id="190">
+        <label>sf::system::console::Obj2D</label>
+        <childnode id="191" relation="public-inheritance">
+        </childnode>
+        <childnode id="191" relation="usage">
+          <edgelabel>mpNext</edgelabel>
+          <edgelabel>mpPrevious</edgelabel>
+        </childnode>
+        <childnode id="192" relation="usage">
+          <edgelabel>mpSprite</edgelabel>
+        </childnode>
+      </node>
+    </collaborationgraph>
+    <location file="J:/project/sfglib/ObjQuadrangle.h" line="37" bodystart="36" bodyend="52"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1console_1_1ObjRectangle" kind="class">
+    <compoundname>sf::system::console::ObjRectangle</compoundname>
+    <basecompoundref idref="classsf_1_1system_1_1console_1_1Obj2D" prot="public" virt="non-virtual"/>
+    <derivedcompoundref idref="classsf_1_1system_1_1console_1_1Background" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ObjRectangle_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>ObjRectangle</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ObjRectangle.h" line="37" bodystart="48" bodyend="54"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ObjRectangle_1a1" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~ObjRectangle</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ObjRectangle.h" line="38" bodystart="56" bodyend="60"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ObjRectangle_1a2" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>draw</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ObjRectangle.h" line="41" bodystart="41" bodyend="41"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ObjRectangle_1a3" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const COLOR</type>
+        <name>color</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ObjRectangle.h" line="44" bodystart="44" bodyend="44"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ObjRectangle_1a4" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>color</name>
+        <param>
+          <type>const COLOR</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ObjRectangle.h" line="45" bodystart="45" bodyend="45"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ObjRectangle_1a5" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const COLOR</type>
+        <name>specular</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ObjRectangle.h" line="47" bodystart="47" bodyend="47"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1ObjRectangle_1a6" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>specular</name>
+        <param>
+          <type>const COLOR</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ObjRectangle.h" line="48" bodystart="48" bodyend="48"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ObjRectangle_1o0" virt="normal" prot="private">
+        <type>COLOR</type>
+        <name>mColor</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ObjRectangle.h" line="51" bodystart="51" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1ObjRectangle_1o1" virt="normal" prot="private">
+        <type>COLOR</type>
+        <name>mSpecular</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ObjRectangle.h" line="52" bodystart="52" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="196">
+        <label>sf::system::console::Obj</label>
+      </node>
+      <node id="197">
+        <label>sf::system::console::Background</label>
+        <childnode id="194" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="194">
+        <label>sf::system::console::ObjRectangle</label>
+        <childnode id="195" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="195">
+        <label>sf::system::console::Obj2D</label>
+        <childnode id="196" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="200">
+        <label>sf::system::console::Obj</label>
+      </node>
+      <node id="201">
+        <label>sf::system::console::sprite::Sprite</label>
+        <link id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite"/>
+      </node>
+      <node id="198">
+        <label>sf::system::console::ObjRectangle</label>
+        <childnode id="199" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="199">
+        <label>sf::system::console::Obj2D</label>
+        <childnode id="200" relation="public-inheritance">
+        </childnode>
+        <childnode id="200" relation="usage">
+          <edgelabel>mpNext</edgelabel>
+          <edgelabel>mpPrevious</edgelabel>
+        </childnode>
+        <childnode id="201" relation="usage">
+          <edgelabel>mpSprite</edgelabel>
+        </childnode>
+      </node>
+    </collaborationgraph>
+    <location file="J:/project/sfglib/ObjRectangle.h" line="34" bodystart="33" bodyend="54"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1RecoverbleErrorException" kind="class">
+    <compoundname>sf::system::RecoverbleErrorException</compoundname>
+    <basecompoundref idref="classsf_1_1system_1_1Exception" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1RecoverbleErrorException_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>RecoverbleErrorException</name>
+        <param>
+          <type>const char *const</type>
+          <declname>pValue</declname>
+        </param>
+        <param>
+          <type>const char *const</type>
+          <declname>fileName</declname>
+        </param>
+        <param>
+          <type>const int</type>
+          <declname>line</declname>
+        </param>
+        <param>
+          <type>const <ref idref="classsf_1_1system_1_1Exception_1s4">ERROR_TYPE</ref></type>
+          <declname>err</declname>
+          <defval>DEFAULT</defval>
+        </param>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pValue</parametername><parameterdescription><para>
+\\81N\e!?E\81C\81âuIo </para>
+</parameterdescription><parametername>fileName</parametername><parameterdescription><para>
+\O\!\?\e\I!?\a </para>
+</parameterdescription><parametername>line</parametername><parameterdescription><para>
+1OEO1a </para>
+</parameterdescription><parametername>err</parametername><parameterdescription><para>
+ERROR_TYPE </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="143" bodystart="141" bodyend="143"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1RecoverbleErrorException_1a1" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>RecoverbleErrorException</name>
+        <param>
+          <type>std::string &amp;</type>
+          <declname>value</declname>
+        </param>
+        <param>
+          <type>const char *const</type>
+          <declname>fileName</declname>
+        </param>
+        <param>
+          <type>const int</type>
+          <declname>line</declname>
+        </param>
+        <param>
+          <type>const <ref idref="classsf_1_1system_1_1Exception_1s4">ERROR_TYPE</ref></type>
+          <declname>err</declname>
+          <defval>DEFAULT</defval>
+        </param>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pValue</parametername><parameterdescription><para>
+\\81N\e!?E\81C\81âuIo </para>
+</parameterdescription><parametername>fileName</parametername><parameterdescription><para>
+\O\!\?\e\I!?\a </para>
+</parameterdescription><parametername>line</parametername><parameterdescription><para>
+1OEO1a </para>
+</parameterdescription><parametername>err</parametername><parameterdescription><para>
+ERROR_TYPE </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="151" bodystart="149" bodyend="151"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+??Eu2AC??EIa3\81\8b. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="202">
+        <label>sf::system::RecoverbleErrorException</label>
+        <link id="classsf_1_1system_1_1RecoverbleErrorException"/>
+        <childnode id="203" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="203">
+        <label>sf::system::Exception</label>
+        <link id="classsf_1_1system_1_1Exception"/>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="204">
+        <label>sf::system::RecoverbleErrorException</label>
+        <link id="classsf_1_1system_1_1RecoverbleErrorException"/>
+        <childnode id="205" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="205">
+        <label>sf::system::Exception</label>
+        <link id="classsf_1_1system_1_1Exception"/>
+      </node>
+    </collaborationgraph>
+    <location file="J:/project/sfglib/Exception.h" line="134" bodystart="134" bodyend="153"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1sound_1_1Sound" kind="class">
+    <compoundname>sf::system::sound::Sound</compoundname>
+    <derivedcompoundref idref="classsf_1_1system_1_1sound_1_1SoundImpl" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1Sound_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>Sound</name>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="46" bodystart="46" bodyend="46"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1Sound_1a1" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~Sound</name>
+        <briefdescription>
+<para>
+\C\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="48" bodystart="48" bodyend="48"/>
+        <references id="System_8h_1a0">sf::DWORD</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1Sound_1a2" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>initialize</name>
+        <reimplementedby id="classsf_1_1system_1_1sound_1_1SoundImpl_1a13">initialize</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\\83Ê\|\o\E\?\o\?!?\O\\81\98!?\1?I?e\81Lu2??o1O?| !!<parameterlist kind="exception"><title>Ia3\81\8b: </title><parametername><ref idref="classsf_1_1system_1_1FatalErrorException">FatalErrorException</ref>p.</parametername><parameterdescription><para>
+ ?e\81Lu2??E?oCO?\81E???i1c. </para>
+</parameterdescription></parameterlist></para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="53"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1Sound_1a3" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>load</name>
+        <reimplementedby id="classsf_1_1system_1_1sound_1_1SoundImpl_1a2">load</reimplementedby>        <param>
+          <type>const int</type>
+          <declname>ObjNo</declname>
+          <defname>objNo</defname>
+        </param>
+        <param>
+          <type>const char *const</type>
+          <declname>pFileName</declname>
+        </param>
+        <briefdescription>
+<para>
+\81âOAe?\81E??\\83Ê\|\o\EEO1a?E\\83Ê\|\o\E\O\!\?\e?I\i!?\E?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>ObjNo</parametername><parameterdescription><para>
+\i!?\E?\81E????\\83Ê\|\o\E\a\O\\81C\\81\98\\81P\E?IEO1a </para>
+</parameterdescription><parametername>pFileName</parametername><parameterdescription><para>
+\O\!\?\e\I!?\aE\81C\81âuIo?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="58"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1Sound_1a4" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual const int</type>
+        <name>load</name>
+        <reimplementedby id="classsf_1_1system_1_1sound_1_1SoundImpl_1a3">load</reimplementedby>        <param>
+          <type>const char *const</type>
+          <declname>pFileName</declname>
+        </param>
+        <briefdescription>
+<para>
+\\83Ê\|\o\E\O\!\?\e?I\i!?\E?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+?\81\91???A???e\\83Ê\|\o\EEO1a?\81Ê?\81\91?i?D!\81\91???3?E\i!?\E?\81E!\81\91\i!?\E?\81E??EO1a?oEO?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pFileName</parametername><parameterdescription><para>
+\\83Ê\|\o\E\O\!\?\e?IPATH </para>
+</parameterdescription></parameterlist></para>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+\\83Ê\|\o\EEO1a(0 - OBJECT_MAX) </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="64"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1Sound_1a5" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>unload</name>
+        <reimplementedby id="classsf_1_1system_1_1sound_1_1SoundImpl_1a4">unload</reimplementedby>        <briefdescription>
+<para>
+\\83Ê\|\o\E\e\?!?\1?I\\81\91\o\i!?\E?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\\83Ê\|\o\E\e\?!?\1?o3\81áEu?\81E?T?1 </para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="68"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1Sound_1a6" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>play</name>
+        <reimplementedby id="classsf_1_1system_1_1sound_1_1SoundImpl_1a5">play</reimplementedby>        <param>
+          <type>const int</type>
+          <declname>ObjNo</declname>
+        </param>
+        <param>
+          <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+          <declname>Repeat</declname>
+        </param>
+        <param>
+          <type>const bool</type>
+          <declname>bPrimary</declname>
+        </param>
+        <param>
+          <type>const bool</type>
+          <declname>bSync</declname>
+        </param>
+        <briefdescription>
+<para>
+\\83Ê\|\o\E?IoAA\81C?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>ObjNo</parametername><parameterdescription><para>
+\\83Ê\|\o\EEO1a </para>
+</parameterdescription><parametername>Repeat</parametername><parameterdescription><para>
+\e\O!?\E2o?o(0?I!c2o) </para>
+</parameterdescription><parametername>bPrimary</parametername><parameterdescription><para>
+\\81~\e\?\T\e\D\A\O\!?CoAA\81C?1?e?\81á?E?|?\81á </para>
+</parameterdescription><parametername>bSync</parametername><parameterdescription><para>
+BGM?EA\81}\81Lu?\81E?AoAA\81C?1?e?\81á?E?|?\81á </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="75"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1Sound_1a7" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>stop</name>
+        <reimplementedby id="classsf_1_1system_1_1sound_1_1SoundImpl_1a6">stop</reimplementedby>        <param>
+          <type>const int</type>
+          <declname>ObjNo</declname>
+          <defval>0</defval>
+        </param>
+        <briefdescription>
+<para>
+\\83Ê\|\o\EoAA\81C?o\81âs?a?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>ObjNo</parametername><parameterdescription><para>
+\81âs?a????\\83Ê\|\o\E?IEO1a </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="79"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1Sound_1a8" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>update</name>
+        <reimplementedby id="classsf_1_1system_1_1sound_1_1SoundImpl_1a7">update</reimplementedby>        <briefdescription>
+<para>
+\\83Ê\|\o\E\a\O\\81C\\81\98\\81P\E?I11?\81E?o?a?3?E?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+oAA\81C?I11?\81Eoi\81÷E?o1O???T?1!\81\92 </para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="83"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1Sound_1a9" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>masterVolume</name>
+        <reimplementedby id="classsf_1_1system_1_1sound_1_1SoundImpl_1a8">masterVolume</reimplementedby>        <param>
+          <type>const int</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+<para>
+\T\1\?!?\U\e\a!?\a(A\81LAI?I2\81âII)?o\\81â\A\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+2\81âII <ref idref="namespacesf_1_1system_1_1sound_1_1volume_1a1">volume::MIN</ref>p. !A <ref idref="namespacesf_1_1system_1_1sound_1_1volume_1a0">volume::MAX</ref>p. \81LO?C?IAI </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="88"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1Sound_1a10" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const int</type>
+        <name>masterVolume</name>
+        <reimplementedby id="classsf_1_1system_1_1sound_1_1SoundImpl_1a9">masterVolume</reimplementedby>        <briefdescription>
+<para>
+\T\1\?!?\U\e\a!?\a(A\81LAI?I2\81âII)?oAE?s?D?1. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+2\81âII <ref idref="namespacesf_1_1system_1_1sound_1_1volume_1a1">volume::MIN</ref>p. !A <ref idref="namespacesf_1_1system_1_1sound_1_1volume_1a0">volume::MAX</ref>p. \81LO?C?IAI </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="92"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1Sound_1a11" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>volumeMax</name>
+        <reimplementedby id="classsf_1_1system_1_1sound_1_1SoundImpl_1a10">volumeMax</reimplementedby>        <param>
+          <type>const int</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+<para>
+!!oCAc2\81âII?o\\81â\A\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+2\81âII <ref idref="namespacesf_1_1system_1_1sound_1_1volume_1a1">volume::MIN</ref>p. !A <ref idref="namespacesf_1_1system_1_1sound_1_1volume_1a0">volume::MAX</ref>p. \81LO?C?IAI </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="96"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1Sound_1a12" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const int</type>
+        <name>volumeMax</name>
+        <reimplementedby id="classsf_1_1system_1_1sound_1_1SoundImpl_1a11">volumeMax</reimplementedby>        <briefdescription>
+<para>
+oCAc2\81âII?oAE?s?D?1. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+2\81âII <ref idref="namespacesf_1_1system_1_1sound_1_1volume_1a1">volume::MIN</ref>p. !A <ref idref="namespacesf_1_1system_1_1sound_1_1volume_1a0">volume::MAX</ref>p. \81LO?C?IAI </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="100"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1Sound_1a13" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const bool</type>
+        <name>isEnabled</name>
+        <reimplementedby id="classsf_1_1system_1_1sound_1_1SoundImpl_1a12">isEnabled</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\\83Ê\|\o\E\a\O\\81C\\81\98\\81P\E?I?oAO?oIa??1c?i?\81â?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\81C?os\81âEIN2AC? </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\81C?os\81âEINEO2A </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="107"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+\\83Ê\|\o\E?oAc\81Ca?1?e. </para>
+    </briefdescription>
+    <detaileddescription>
+<para>
+BGM!|\81Cu2I2\81â?oAc\81Ca?1?e\?\o\?!?\O\\81\98!?\1?C?1!\81\92 </para>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="207">
+        <label>sf::system::sound::SoundImpl</label>
+        <link id="classsf_1_1system_1_1sound_1_1SoundImpl"/>
+        <childnode id="206" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="206">
+        <label>sf::system::sound::Sound</label>
+        <link id="classsf_1_1system_1_1sound_1_1Sound"/>
+      </node>
+    </inheritancegraph>
+    <location file="J:/project/sfglib/Sound.h" line="42" bodystart="41" bodyend="109"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1sound_1_1SoundImpl" kind="class">
+    <compoundname>sf::system::sound::SoundImpl</compoundname>
+    <basecompoundref idref="classsf_1_1system_1_1sound_1_1Sound" prot="public" virt="non-virtual"/>
+    <innerclass refid="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue">sf::system::sound::SoundImpl::Queue</innerclass>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>SoundImpl</name>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="35" bodystart="65" bodyend="85"/>
+        <references id="Sound_8h_1a0">sf::system::sound::OBJECT_MAX</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1a1" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~SoundImpl</name>
+        <briefdescription>
+<para>
+\C\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="37" bodystart="88" bodyend="108"/>
+        <references id="SoundImpl_8h_1o4">mpDefaultAudioPath</references>
+        <references id="SoundImpl_8h_1o0">mpLoader</references>
+        <references id="SoundImpl_8h_1o1">mpPerformance</references>
+        <references id="SoundImpl_8cpp_1a4">unload</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1a2" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>load</name>
+        <reimplements id="classsf_1_1system_1_1sound_1_1Sound_1a3">load</reimplements>        <param>
+          <type>const int</type>
+          <declname>objNo</declname>
+        </param>
+        <param>
+          <type>const char *const</type>
+          <declname>pFileName</declname>
+        </param>
+        <briefdescription>
+<para>
+\81âOAe?\81E??\\83Ê\|\o\EEO1a?E\\83Ê\|\o\E\O\!\?\e?I\i!?\E?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>ObjNo</parametername><parameterdescription><para>
+\i!?\E?\81E????\\83Ê\|\o\E\a\O\\81C\\81\98\\81P\E?IEO1a </para>
+</parameterdescription><parametername>pFileName</parametername><parameterdescription><para>
+\O\!\?\e\I!?\aE\81C\81âuIo?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="40" bodystart="231" bodyend="274"/>
+        <references id="classsf_1_1system_1_1Exception_1s4s2">sf::system::Exception::BUFFER_IS_FULL</references>
+        <references id="SoundImpl_8h_1a12">isEnabled</references>
+        <references id="SoundImpl_8h_1o5">mFileName</references>
+        <references id="SoundImpl_8h_1o3">mpAudioPath</references>
+        <references id="SoundImpl_8h_1o0">mpLoader</references>
+        <references id="SoundImpl_8h_1o1">mpPerformance</references>
+        <references id="SoundImpl_8h_1o2">mpSegment</references>
+        <references id="Sound_8h_1a0">sf::system::sound::OBJECT_MAX</references>
+        <referencedby id="SoundImpl_8cpp_1a3">load</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1a3" virt="normal" prot="public" const="no" volatile="no">
+        <type>const int</type>
+        <name>load</name>
+        <reimplements id="classsf_1_1system_1_1sound_1_1Sound_1a4">load</reimplements>        <param>
+          <type>const char *const</type>
+          <declname>pFileName</declname>
+        </param>
+        <briefdescription>
+<para>
+\\83Ê\|\o\E\O\!\?\e?I\i!?\E?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+?\81\91???A???e\\83Ê\|\o\EEO1a?\81Ê?\81\91?i?D!\81\91???3?E\i!?\E?\81E!\81\91\i!?\E?\81E??EO1a?oEO?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pFileName</parametername><parameterdescription><para>
+\\83Ê\|\o\E\O\!\?\e?IPATH </para>
+</parameterdescription></parameterlist></para>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+\\83Ê\|\o\EEO1a(0 - OBJECT_MAX) </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="41" bodystart="277" bodyend="303"/>
+        <references id="SoundImpl_8cpp_1a2">load</references>
+        <references id="Sound_8h_1a1">sf::system::sound::LOAD_ERROR</references>
+        <references id="SoundImpl_8h_1o5">mFileName</references>
+        <references id="SoundImpl_8h_1o2">mpSegment</references>
+        <references id="Sound_8h_1a0">sf::system::sound::OBJECT_MAX</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1a4" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>unload</name>
+        <reimplements id="classsf_1_1system_1_1sound_1_1Sound_1a5">unload</reimplements>        <briefdescription>
+<para>
+\\83Ê\|\o\E\e\?!?\1?I\\81\91\o\i!?\E?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\\83Ê\|\o\E\e\?!?\1?o3\81áEu?\81E?T?1 </para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="42" bodystart="306" bodyend="330"/>
+        <references id="SoundImpl_8h_1o6">mbSegInUse</references>
+        <references id="SoundImpl_8h_1o3">mpAudioPath</references>
+        <references id="SoundImpl_8h_1o1">mpPerformance</references>
+        <references id="SoundImpl_8h_1o2">mpSegment</references>
+        <references id="Sound_8h_1a0">sf::system::sound::OBJECT_MAX</references>
+        <referencedby id="SoundImpl_8cpp_1a1">~SoundImpl</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1a5" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>play</name>
+        <reimplements id="classsf_1_1system_1_1sound_1_1Sound_1a6">play</reimplements>        <param>
+          <type>const int</type>
+          <declname>ObjNo</declname>
+        </param>
+        <param>
+          <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+          <declname>Repeat</declname>
+        </param>
+        <param>
+          <type>const bool</type>
+          <declname>bPrimary</declname>
+        </param>
+        <param>
+          <type>const bool</type>
+          <declname>bSync</declname>
+        </param>
+        <briefdescription>
+<para>
+\\83Ê\|\o\E?IoAA\81C?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>ObjNo</parametername><parameterdescription><para>
+\\83Ê\|\o\EEO1a </para>
+</parameterdescription><parametername>Repeat</parametername><parameterdescription><para>
+\e\O!?\E2o?o(0?I!c2o) </para>
+</parameterdescription><parametername>bPrimary</parametername><parameterdescription><para>
+\\81~\e\?\T\e\D\A\O\!?CoAA\81C?1?e?\81á?E?|?\81á </para>
+</parameterdescription><parametername>bSync</parametername><parameterdescription><para>
+BGM?EA\81}\81Lu?\81E?AoAA\81C?1?e?\81á?E?|?\81á </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="44" bodystart="169" bodyend="177"/>
+        <references id="System_8h_1a0">sf::DWORD</references>
+        <references id="SoundImpl_8h_1a12">isEnabled</references>
+        <references id="SoundImpl_8h_1o6">mbSegInUse</references>
+        <references id="SoundImpl_8h_1o2">mpSegment</references>
+        <references id="SoundImpl_8h_1o9">mQueue</references>
+        <references id="SoundImpl_8cpp_1a3">sf::system::sound::SoundImpl::Queue::set</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1a6" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>stop</name>
+        <reimplements id="classsf_1_1system_1_1sound_1_1Sound_1a7">stop</reimplements>        <param>
+          <type>const int</type>
+          <declname>ObjNo</declname>
+          <defval>0</defval>
+        </param>
+        <briefdescription>
+<para>
+\\83Ê\|\o\EoAA\81C?o\81âs?a?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>ObjNo</parametername><parameterdescription><para>
+\81âs?a????\\83Ê\|\o\E?IEO1a </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="45" bodystart="400" bodyend="411"/>
+        <references id="SoundImpl_8cpp_1a4">sf::system::sound::SoundImpl::Queue::clear</references>
+        <references id="SoundImpl_8h_1a12">isEnabled</references>
+        <references id="SoundImpl_8h_1o1">mpPerformance</references>
+        <references id="SoundImpl_8h_1o2">mpSegment</references>
+        <references id="SoundImpl_8h_1o9">mQueue</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1a7" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>update</name>
+        <reimplements id="classsf_1_1system_1_1sound_1_1Sound_1a8">update</reimplements>        <briefdescription>
+<para>
+\\83Ê\|\o\E\a\O\\81C\\81\98\\81P\E?I11?\81E?o?a?3?E?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+oAA\81C?I11?\81Eoi\81÷E?o1O???T?1!\81\92 </para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="46" bodystart="180" bodyend="228"/>
+        <references id="System_8h_1a0">sf::DWORD</references>
+        <references id="SoundImpl_8cpp_1a2">sf::system::sound::SoundImpl::Queue::get</references>
+        <references id="SoundImpl_8h_1a5">sf::system::sound::SoundImpl::Queue::isEmpty</references>
+        <references id="SoundImpl_8h_1a12">isEnabled</references>
+        <references id="SoundImpl_8h_1o6">mbSegInUse</references>
+        <references id="SoundImpl_8h_1o3">mpAudioPath</references>
+        <references id="SoundImpl_8h_1o4">mpDefaultAudioPath</references>
+        <references id="SoundImpl_8h_1o1">mpPerformance</references>
+        <references id="SoundImpl_8h_1o2">mpSegment</references>
+        <references id="SoundImpl_8h_1o9">mQueue</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1a8" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>masterVolume</name>
+        <reimplements id="classsf_1_1system_1_1sound_1_1Sound_1a9">masterVolume</reimplements>        <param>
+          <type>const int</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+<para>
+\T\1\?!?\U\e\a!?\a(A\81LAI?I2\81âII)?o\\81â\A\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+2\81âII <ref idref="namespacesf_1_1system_1_1sound_1_1volume_1a1">volume::MIN</ref>p. !A <ref idref="namespacesf_1_1system_1_1sound_1_1volume_1a0">volume::MAX</ref>p. \81LO?C?IAI </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="48" bodystart="332" bodyend="344"/>
+        <references id="SoundImpl_8h_1a12">isEnabled</references>
+        <references id="SoundImpl_8h_1o7">mMasterVolume</references>
+        <references id="SoundImpl_8h_1o4">mpDefaultAudioPath</references>
+        <references id="SoundImpl_8h_1o8">mVolumeMax</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1a9" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const int</type>
+        <name>masterVolume</name>
+        <reimplements id="classsf_1_1system_1_1sound_1_1Sound_1a10">masterVolume</reimplements>        <briefdescription>
+<para>
+\T\1\?!?\U\e\a!?\a(A\81LAI?I2\81âII)?oAE?s?D?1. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+2\81âII <ref idref="namespacesf_1_1system_1_1sound_1_1volume_1a1">volume::MIN</ref>p. !A <ref idref="namespacesf_1_1system_1_1sound_1_1volume_1a0">volume::MAX</ref>p. \81LO?C?IAI </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="49" bodystart="49" bodyend="49"/>
+        <references id="SoundImpl_8h_1o7">mMasterVolume</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1a10" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>volumeMax</name>
+        <reimplements id="classsf_1_1system_1_1sound_1_1Sound_1a11">volumeMax</reimplements>        <param>
+          <type>const int</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+<para>
+!!oCAc2\81âII?o\\81â\A\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+2\81âII <ref idref="namespacesf_1_1system_1_1sound_1_1volume_1a1">volume::MIN</ref>p. !A <ref idref="namespacesf_1_1system_1_1sound_1_1volume_1a0">volume::MAX</ref>p. \81LO?C?IAI </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="50" bodystart="50" bodyend="50"/>
+        <references id="SoundImpl_8h_1o8">mVolumeMax</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1a11" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const int</type>
+        <name>volumeMax</name>
+        <reimplements id="classsf_1_1system_1_1sound_1_1Sound_1a12">volumeMax</reimplements>        <briefdescription>
+<para>
+oCAc2\81âII?oAE?s?D?1. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+2\81âII <ref idref="namespacesf_1_1system_1_1sound_1_1volume_1a1">volume::MIN</ref>p. !A <ref idref="namespacesf_1_1system_1_1sound_1_1volume_1a0">volume::MAX</ref>p. \81LO?C?IAI </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="51" bodystart="51" bodyend="51"/>
+        <references id="SoundImpl_8h_1o8">mVolumeMax</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1a12" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const bool</type>
+        <name>isEnabled</name>
+        <reimplements id="classsf_1_1system_1_1sound_1_1Sound_1a13">isEnabled</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\\83Ê\|\o\E\a\O\\81C\\81\98\\81P\E?I?oAO?oIa??1c?i?\81â?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\81C?os\81âEIN2AC? </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\81C?os\81âEINEO2A </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="53" bodystart="53" bodyend="53"/>
+        <references id="SoundImpl_8h_1o10">mbEnabled</references>
+        <referencedby id="SoundImpl_8cpp_1a2">load</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a8">masterVolume</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a5">play</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a6">stop</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a7">update</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1a13" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>initialize</name>
+        <reimplements id="classsf_1_1system_1_1sound_1_1Sound_1a2">initialize</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\\83Ê\|\o\E\?\o\?!?\O\\81\98!?\1?I?e\81Lu2??o1O?| !!<parameterlist kind="exception"><title>Ia3\81\8b: </title><parametername><ref idref="classsf_1_1system_1_1FatalErrorException">FatalErrorException</ref>p.</parametername><parameterdescription><para>
+ ?e\81Lu2??E?oCO?\81E???i1c. </para>
+</parameterdescription></parameterlist></para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="55" bodystart="111" bodyend="166"/>
+        <references id="SoundImpl_8h_1o10">mbEnabled</references>
+        <references id="SoundImpl_8h_1o7">mMasterVolume</references>
+        <references id="SoundImpl_8h_1o4">mpDefaultAudioPath</references>
+        <references id="SoundImpl_8h_1o0">mpLoader</references>
+        <references id="SoundImpl_8h_1o1">mpPerformance</references>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1sound_1_1SoundImpl_1o0" virt="normal" prot="private">
+        <type>IDirectMusicLoader8 *</type>
+        <name>mpLoader</name>
+        <briefdescription>
+<para>
+\i!?\A!?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="59" bodystart="58" bodyend="-1"/>
+        <referencedby id="SoundImpl_8cpp_1a13">initialize</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a2">load</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a1">~SoundImpl</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1sound_1_1SoundImpl_1o1" virt="normal" prot="private">
+        <type>IDirectMusicPerformance8 *</type>
+        <name>mpPerformance</name>
+        <briefdescription>
+<para>
+\N\O\c!?\T\o\1. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="60" bodystart="59" bodyend="-1"/>
+        <referencedby id="SoundImpl_8cpp_1a13">initialize</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a2">load</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a6">stop</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a4">unload</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a7">update</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a1">~SoundImpl</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1sound_1_1SoundImpl_1o2" virt="normal" prot="private">
+        <type>IDirectMusicSegment8 *</type>
+        <name>mpSegment</name>
+        <briefdescription>
+<para>
+\\81â\\81\8b\a\o\ECUIo. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="61" bodystart="60" bodyend="-1"/>
+        <referencedby id="SoundImpl_8cpp_1a2">load</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a5">play</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a6">stop</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a4">unload</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a7">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1sound_1_1SoundImpl_1o3" virt="normal" prot="private">
+        <type>IDirectMusicAudioPath8 *</type>
+        <name>mpAudioPath</name>
+        <briefdescription>
+<para>
+\a!?\C\\81\92\a\N\1. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="62" bodystart="61" bodyend="-1"/>
+        <referencedby id="SoundImpl_8cpp_1a2">load</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a4">unload</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a7">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1sound_1_1SoundImpl_1o4" virt="normal" prot="private">
+        <type>IDirectMusicAudioPath8 *</type>
+        <name>mpDefaultAudioPath</name>
+        <briefdescription>
+<para>
+\81LuAe?I\a!?\C\\81\92\a\N\1. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="63" bodystart="62" bodyend="-1"/>
+        <referencedby id="SoundImpl_8cpp_1a13">initialize</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a8">masterVolume</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a7">update</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a1">~SoundImpl</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1sound_1_1SoundImpl_1o5" virt="normal" prot="private">
+        <type>std::string</type>
+        <name>mFileName</name>
+        <briefdescription>
+<para>
+\\83Ê\|\o\E?IPATHCUIo. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="64" bodystart="63" bodyend="-1"/>
+        <referencedby id="SoundImpl_8cpp_1a2">load</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1sound_1_1SoundImpl_1o6" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbSegInUse</name>
+        <briefdescription>
+<para>
+\81C?os\\81â\\81\8b\a\o\E?o\81âEIN?\81E?A???e?\81á?oEY\81ây?\81E?A???eCUIo. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="66" bodystart="65" bodyend="-1"/>
+        <referencedby id="SoundImpl_8cpp_1a5">play</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a4">unload</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a7">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1sound_1_1SoundImpl_1o7" virt="normal" prot="private">
+        <type>int</type>
+        <name>mMasterVolume</name>
+        <briefdescription>
+<para>
+\T\1\?!?\U\e\a!?\a. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="67" bodystart="66" bodyend="-1"/>
+        <referencedby id="SoundImpl_8cpp_1a13">initialize</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a8">masterVolume</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1sound_1_1SoundImpl_1o8" virt="normal" prot="private">
+        <type>int</type>
+        <name>mVolumeMax</name>
+        <briefdescription>
+<para>
+oAA\81C\81ât?E\81âEIN?1?e2\81âII?IAI. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="68" bodystart="67" bodyend="-1"/>
+        <referencedby id="SoundImpl_8cpp_1a8">masterVolume</referencedby>
+        <referencedby id="SoundImpl_8h_1a10">volumeMax</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1sound_1_1SoundImpl_1o9" virt="normal" prot="private">
+        <type><ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue">Queue</ref></type>
+        <name>mQueue</name>
+        <briefdescription>
+<para>
+\\83Ê\|\o\EIN\-\a!?\a\O\\81C\\81\98\\81P\E. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="114" bodystart="113" bodyend="-1"/>
+        <referencedby id="SoundImpl_8cpp_1a5">play</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a6">stop</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a7">update</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1sound_1_1SoundImpl_1o10" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbEnabled</name>
+        <briefdescription>
+<para>
+\\83Ê\|\o\E?I\81âEIN2AC??\81á?E?|?\81á?oEY\81ây?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="115" bodystart="114" bodyend="-1"/>
+        <referencedby id="SoundImpl_8cpp_1a13">initialize</referencedby>
+        <referencedby id="SoundImpl_8h_1a12">isEnabled</referencedby>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1sound_1_1Sound">Sound</ref>p.\?\o\?!?\O\\81\98!?\1?I?AAo\\81P\e\1. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="209">
+        <label>sf::system::sound::SoundImpl</label>
+        <link id="classsf_1_1system_1_1sound_1_1SoundImpl"/>
+        <childnode id="210" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="210">
+        <label>sf::system::sound::Sound</label>
+        <link id="classsf_1_1system_1_1sound_1_1Sound"/>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="211">
+        <label>sf::system::sound::SoundImpl</label>
+        <link id="classsf_1_1system_1_1sound_1_1SoundImpl"/>
+        <childnode id="212" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="212">
+        <label>sf::system::sound::Sound</label>
+        <link id="classsf_1_1system_1_1sound_1_1Sound"/>
+      </node>
+    </collaborationgraph>
+    <location file="J:/project/sfglib/SoundImpl.h" line="31" bodystart="30" bodyend="117"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue" kind="class">
+    <compoundname>sf::system::sound::SoundImpl::Queue</compoundname>
+    <innerclass refid="structsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1_1Data">sf::system::sound::SoundImpl::Queue::Data</innerclass>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>Queue</name>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="74" bodystart="354" bodyend="357"/>
+        <references id="SoundImpl_8cpp_1a4">clear</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1a1" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>~Queue</name>
+        <briefdescription>
+<para>
+\C\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="76" bodystart="360" bodyend="360"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1a2" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>get</name>
+        <param>
+          <type><ref idref="structsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1_1Data">Data</ref> &amp;</type>
+          <declname>rData</declname>
+        </param>
+        <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue">Queue</ref>p.?\81á?e?dEo?o?eAA?\81E!\81\91\D\A\O\!?\81á?e?A?1. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>rData</parametername><parameterdescription><para>
+<ref idref="structsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1_1Data">Data</ref>p.1?A?AI?I\81â2?E </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="89" bodystart="378" bodyend="391"/>
+        <references id="SoundImpl_8h_1o0">mBuffer</references>
+        <references id="SoundImpl_8h_1o2">mEnd</references>
+        <references id="SoundImpl_8h_1o1">mStart</references>
+        <references id="SoundImpl_8h_1a4">sf::system::sound::Q_MAX</references>
+        <referencedby id="SoundImpl_8cpp_1a7">sf::system::sound::SoundImpl::update</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1a3" virt="normal" prot="public" const="no" volatile="no">
+        <type>const bool</type>
+        <name>set</name>
+        <param>
+          <type>const int</type>
+          <declname>ObjNo</declname>
+        </param>
+        <param>
+          <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+          <declname>Repeat</declname>
+        </param>
+        <param>
+          <type>const bool</type>
+          <declname>bPrimary</declname>
+        </param>
+        <param>
+          <type>const bool</type>
+          <declname>bSync</declname>
+        </param>
+        <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue">Queue</ref>p.?E\C!?\??o\\81â\A\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>ObjNo</parametername><parameterdescription><para>
+\\83Ê\|\o\EEO1a  </para>
+</parameterdescription><parametername>Repeat</parametername><parameterdescription><para>
+\e\O!?\E2o?o(0?I!c2o)  </para>
+</parameterdescription><parametername>bPrimary</parametername><parameterdescription><para>
+\\81~\e\?\T\e\D\A\O\!?CoAA\81C?1?e?\81á?E?|?\81á  </para>
+</parameterdescription><parametername>bSync</parametername><parameterdescription><para>
+\\81~\e\?\T\e\\83Ê\|\o\E?EA\81}\81Lu?1?e?\81á?E?|?\81á </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="96" bodystart="363" bodyend="375"/>
+        <references id="System_8h_1a0">sf::DWORD</references>
+        <references id="SoundImpl_8h_1o0">mBuffer</references>
+        <references id="SoundImpl_8h_1o2">mEnd</references>
+        <references id="SoundImpl_8h_1a4">sf::system::sound::Q_MAX</references>
+        <referencedby id="SoundImpl_8cpp_1a5">sf::system::sound::SoundImpl::play</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1a4" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>clear</name>
+        <briefdescription>
+<para>
+\-\a!??o\\81P\e\\81\91?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="99" bodystart="394" bodyend="398"/>
+        <references id="SoundImpl_8h_1o0">mBuffer</references>
+        <references id="SoundImpl_8h_1o2">mEnd</references>
+        <references id="SoundImpl_8h_1o1">mStart</references>
+        <referencedby id="SoundImpl_8cpp_1a0">Queue</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a6">sf::system::sound::SoundImpl::stop</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1a5" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const bool</type>
+        <name>isEmpty</name>
+        <briefdescription>
+<para>
+queue(<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o0">mBuffer</ref>p.)?\81Ê\81÷o?\81á?E?|?\81áIa??1c?i?\81â?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+\81÷o?C?\81\91?e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\81÷o?C?E?? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="105" bodystart="105" bodyend="105"/>
+        <referencedby id="SoundImpl_8cpp_1a7">sf::system::sound::SoundImpl::update</referencedby>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o0" virt="normal" prot="private">
+        <type><ref idref="structsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1_1Data">Data</ref></type>
+        <name>mBuffer</name>
+        <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue">Queue</ref>p.\D\A\O\!CUIo. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="108" bodystart="107" bodyend="-1"/>
+        <referencedby id="SoundImpl_8cpp_1a4">clear</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a2">get</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a3">set</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o1" virt="normal" prot="private">
+        <type>int</type>
+        <name>mStart</name>
+        <briefdescription>
+<para>
+\e\o\\81\8b\D\A\O\!3\81á\81âI\81\8bIAO. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="109" bodystart="108" bodyend="-1"/>
+        <referencedby id="SoundImpl_8cpp_1a4">clear</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a2">get</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o2" virt="normal" prot="private">
+        <type>int</type>
+        <name>mEnd</name>
+        <briefdescription>
+<para>
+\e\o\\81\8b\D\A\O\!?aI\81â\81\8bIAO. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="110" bodystart="109" bodyend="-1"/>
+        <referencedby id="SoundImpl_8cpp_1a4">clear</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a2">get</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a3">set</referencedby>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue">Queue</ref>p.\\81P\e\1 \\83Ê\|\o\E?IoAA\81C\81âOAe\81ât?E?3?I\-\a!??E\81\8biA\81÷As?\81N?e?i!\81\91\O\i!?\aEe?E\81\92\81}?A?o?A?3?Iqueue?\81á?e?e?e?D?\81E!\81\91<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a7">update</ref>()p.Aa?CoAA\81C?\83Ê?i?T?1. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="J:/project/sfglib/SoundImpl.h" line="71" bodystart="71" bodyend="111"/>
+  </compounddef>
+  <compounddef id="structsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1_1Data" kind="struct">
+    <compoundname>sf::system::sound::SoundImpl::Queue::Data</compoundname>
+      <sectiondef kind="public-attrib">
+      <memberdef kind="variable" id="structsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1_1Data_1m0" virt="normal" prot="public">
+        <type>int</type>
+        <name>mObjNo</name>
+        <briefdescription>
+<para>
+\\81â\\81\8b\a\o\EEO1a. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="81" bodystart="80" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1_1Data_1m1" virt="normal" prot="public">
+        <type>long</type>
+        <name>mRepeat</name>
+        <briefdescription>
+<para>
+\e\O!?\E2o?o 0 ?II\83Ê\81CA2o. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="82" bodystart="81" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1_1Data_1m2" virt="normal" prot="public">
+        <type>bool</type>
+        <name>mbPrimary</name>
+        <briefdescription>
+<para>
+\\81~\e\?\T\e?\81á?E?|?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="83" bodystart="82" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1_1Data_1m3" virt="normal" prot="public">
+        <type>bool</type>
+        <name>mbSync</name>
+        <briefdescription>
+<para>
+\\81~\e\?\T\e?ECi?CA\81}\81Lu?1?e?\81á. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="84" bodystart="83" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue">Queue</ref>p.\N\e\a!?\?1?A?AI. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="J:/project/sfglib/SoundImpl.h" line="79" bodystart="78" bodyend="84"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite" kind="class">
+    <compoundname>sf::system::console::sprite::Sprite</compoundname>
+    <derivedcompoundref idref="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a0" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~Sprite</name>
+        <briefdescription>
+<para>
+\C\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="164" bodystart="164" bodyend="164"/>
+        <references id="Console_8h_1a2">sf::system::console::sprite::PSprite</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a1" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>draw</name>
+        <param>
+          <type>const sf::system::console::ObjRectangle *const</type>
+          <declname>pObj</declname>
+        </param>
+        <briefdescription>
+<para>
+ObjRectangle ?o\81\8bu?o?E\1\\81~\e\?\E?oEA2e?\81E?T?1. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pObj</parametername><parameterdescription><para>
+ObjRectangle\\81P\e\1?O?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="167"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a2" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>draw</name>
+        <param>
+          <type>const sf::system::console::ObjQuadrangle *const</type>
+          <declname>pObj</declname>
+        </param>
+        <briefdescription>
+<para>
+ObjQuadrangle ?o\81\8bu?o?E\1\\81~\e\?\E?oEA2e?\81E?T?1. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pObj</parametername><parameterdescription><para>
+ObjQuadrangle\\81P\e\1?O?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="170"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a3" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>draw</name>
+        <param>
+          <type>const sf::system::console::Obj3DL *const</type>
+          <declname>pObj</declname>
+        </param>
+        <briefdescription>
+<para>
+Obj3DL ?o\81\8bu?o?E\1\\81~\e\?\E?oEA2e?\81E?T?1. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pObj</parametername><parameterdescription><para>
+Obj3DL \\81P\e\1?O?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="173"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a4" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const float</type>
+        <name>centerX</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\1\\81~\e\?\E?IAa?\81LXoAE\81C?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+\1\\81~\e\?\E?IAa?\81LXoAE\81C </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="176"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a5" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const float</type>
+        <name>centerY</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\1\\81~\e\?\E?IAa?\81LYoAE\81C?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+\1\\81~\e\?\E?IAa?\81LYoAE\81C </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="179"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a6" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const float</type>
+        <name>width</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\1\\81~\e\?\E?IEy?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+\1\\81~\e\?\E?IEy </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="182"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a7" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const float</type>
+        <name>height</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\1\\81~\e\?\E?IAa?\81L1a?\83Ê?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+\1\\81~\e\?\E?I1a?\83Ê </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="185"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+\1\\81~\e\?\E?IEA2eAc\81Ca?o1O?|. </para>
+    </briefdescription>
+    <detaileddescription>
+<para>
+?AoY?I\1\\81~\e\?\EEA2e?o1O?|\?\o\?!?\O\\81\98!?\1?C?1!\81\92 ObjRectangle?E?E?IoAE\81C?oEY\81ây?1?e\\81P\e\1?o\81\8bu?o?E2eII?E?\81á?E?\81ÊEY\81ây?\81E?A???e\O\A\E\T\A\\81~?o2eII?EEA2e?\81E?T?1!\81\92 </para>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="219">
+        <label>sf::system::console::sprite::Sprite2D</label>
+        <childnode id="218" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="220">
+        <label>sf::system::console::sprite::Sprite3D</label>
+        <childnode id="218" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="217">
+        <label>sf::system::console::sprite::Sprite</label>
+        <link id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite"/>
+      </node>
+      <node id="221">
+        <label>sf::system::console::sprite::SpriteMesh</label>
+        <childnode id="218" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="218">
+        <label>sf::system::console::sprite::AbstractSprite</label>
+        <childnode id="217" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <location file="J:/project/sfglib/Console.h" line="161" bodystart="160" bodyend="186"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D" kind="class">
+    <compoundname>sf::system::console::sprite::Sprite2D</compoundname>
+    <basecompoundref idref="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>Sprite2D</name>
+        <param>
+          <type>LPDIRECT3DDEVICE8</type>
+          <declname>pD3DDevice</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite2D.h" line="49" bodystart="67" bodyend="75"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D_1a1" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~Sprite2D</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite2D.h" line="50" bodystart="77" bodyend="80"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D_1a2" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>initialize</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite2D.h" line="52" bodystart="83" bodyend="88"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D_1a3" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>initialize</name>
+        <param>
+          <type>LPDIRECT3DDEVICE8</type>
+          <declname>pD3DDevice</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite2D.h" line="53" bodystart="91" bodyend="96"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D_1a4" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>uninitialize</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite2D.h" line="54" bodystart="99" bodyend="135"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D_1a5" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>load</name>
+        <param>
+          <type>const <ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info">sprite::Info</ref> *</type>
+          <declname>pInfo</declname>
+        </param>
+        <param>
+          <type>const D3DFORMAT</type>
+          <declname>textureFormat</declname>
+        </param>
+        <param>
+          <type>const COLOR</type>
+          <declname>color</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite2D.h" line="55"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D_1a6" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>draw</name>
+        <param>
+          <type>const ObjRectangle *const</type>
+          <declname>pObj</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite2D.h" line="56" bodystart="202" bodyend="350"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D_1a7" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>draw</name>
+        <param>
+          <type>const ObjQuadrangle *const</type>
+          <declname>pObj</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite2D.h" line="57" bodystart="354" bodyend="442"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D_1a8" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>draw</name>
+        <param>
+          <type>const Obj3DL *const</type>
+          <declname>pObj</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite2D.h" line="58" bodystart="58" bodyend="58"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D_1a9" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>width</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite2D.h" line="60" bodystart="59" bodyend="64"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D_1a10" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>height</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite2D.h" line="66" bodystart="66" bodyend="70"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D_1c0" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>calcUVPos</name>
+        <param>
+          <type>const Obj2D *const</type>
+          <declname>pObj</declname>
+        </param>
+        <param>
+          <type>float &amp;</type>
+          <declname>u1</declname>
+        </param>
+        <param>
+          <type>float &amp;</type>
+          <declname>u2</declname>
+        </param>
+        <param>
+          <type>float &amp;</type>
+          <declname>v1</declname>
+        </param>
+        <param>
+          <type>float &amp;</type>
+          <declname>v2</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite2D.h" line="73" bodystart="445" bodyend="485"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D_1o0" virt="normal" prot="private">
+        <type>IDirect3DTexture8 *</type>
+        <name>mpSpriteTexture</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite2D.h" line="74" bodystart="74" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D_1o1" virt="normal" prot="private">
+        <type>IDirect3DVertexBuffer8 *</type>
+        <name>mpSpriteVtBuf</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite2D.h" line="75" bodystart="75" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D_1o2" virt="normal" prot="private">
+        <type>float</type>
+        <name>mCellWidth</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite2D.h" line="77" bodystart="77" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D_1o3" virt="normal" prot="private">
+        <type>float</type>
+        <name>mCellHeight</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite2D.h" line="78" bodystart="78" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D_1o4" virt="normal" prot="private">
+        <type>float</type>
+        <name>mCellCount</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite2D.h" line="79" bodystart="79" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="223">
+        <label>sf::system::console::sprite::Sprite2D</label>
+        <childnode id="224" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="225">
+        <label>sf::system::console::sprite::Sprite</label>
+        <link id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite"/>
+      </node>
+      <node id="224">
+        <label>sf::system::console::sprite::AbstractSprite</label>
+        <childnode id="225" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="226">
+        <label>sf::system::console::sprite::Sprite2D</label>
+        <childnode id="227" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="228">
+        <label>sf::system::console::sprite::Sprite</label>
+        <link id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite"/>
+      </node>
+      <node id="227">
+        <label>sf::system::console::sprite::AbstractSprite</label>
+        <childnode id="228" relation="public-inheritance">
+        </childnode>
+      </node>
+    </collaborationgraph>
+    <location file="J:/project/sfglib/Sprite2D.h" line="46" bodystart="45" bodyend="81"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite3D" kind="class">
+    <compoundname>sf::system::console::sprite::Sprite3D</compoundname>
+    <basecompoundref idref="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite3D_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>Sprite3D</name>
+        <param>
+          <type>LPDIRECT3DDEVICE8</type>
+          <declname>pD3DDevice</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite3D.h" line="49" bodystart="65" bodyend="73"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite3D_1a1" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~Sprite3D</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite3D.h" line="50" bodystart="76" bodyend="79"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite3D_1a2" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>initialize</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite3D.h" line="52" bodystart="82" bodyend="87"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite3D_1a3" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>initialize</name>
+        <param>
+          <type>LPDIRECT3DDEVICE8</type>
+          <declname>pD3DDevice</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite3D.h" line="53" bodystart="89" bodyend="94"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite3D_1a4" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>uninitialize</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite3D.h" line="54" bodystart="97" bodyend="128"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite3D_1a5" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>load</name>
+        <param>
+          <type>const <ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info">sprite::Info</ref> *</type>
+          <declname>pInfo</declname>
+        </param>
+        <param>
+          <type>const D3DFORMAT</type>
+          <declname>textureFormat</declname>
+        </param>
+        <param>
+          <type>const COLOR</type>
+          <declname>color</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite3D.h" line="55" bodystart="132" bodyend="249"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite3D_1a6" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>draw</name>
+        <param>
+          <type>const ObjRectangle *const</type>
+          <declname>pObj</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite3D.h" line="57" bodystart="57" bodyend="57"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite3D_1a7" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>draw</name>
+        <param>
+          <type>const ObjQuadrangle *const</type>
+          <declname>pObj</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite3D.h" line="58" bodystart="58" bodyend="58"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite3D_1a8" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>draw</name>
+        <param>
+          <type>const Obj3DL *const</type>
+          <declname>pObj</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite3D.h" line="59" bodystart="252" bodyend="338"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite3D_1a9" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>width</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite3D.h" line="61" bodystart="60" bodyend="65"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite3D_1a10" virt="normal" prot="public" const="yes" volatile="no">
+        <type>const float</type>
+        <name>height</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite3D.h" line="67" bodystart="67" bodyend="71"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite3D_1o0" virt="normal" prot="private">
+        <type>IDirect3DTexture8 *</type>
+        <name>mpSpriteTexture</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite3D.h" line="74" bodystart="74" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite3D_1o1" virt="normal" prot="private">
+        <type>IDirect3DVertexBuffer8 *</type>
+        <name>mpSprite3DVtBuf</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite3D.h" line="75" bodystart="75" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite3D_1o2" virt="normal" prot="private">
+        <type>float</type>
+        <name>mCellWidth</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite3D.h" line="77" bodystart="77" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite3D_1o3" virt="normal" prot="private">
+        <type>float</type>
+        <name>mCellHeight</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite3D.h" line="78" bodystart="78" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite3D_1o4" virt="normal" prot="private">
+        <type>float</type>
+        <name>mCellCount</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite3D.h" line="79" bodystart="79" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="229">
+        <label>sf::system::console::sprite::Sprite3D</label>
+        <childnode id="230" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="231">
+        <label>sf::system::console::sprite::Sprite</label>
+        <link id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite"/>
+      </node>
+      <node id="230">
+        <label>sf::system::console::sprite::AbstractSprite</label>
+        <childnode id="231" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="232">
+        <label>sf::system::console::sprite::Sprite3D</label>
+        <childnode id="233" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="234">
+        <label>sf::system::console::sprite::Sprite</label>
+        <link id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite"/>
+      </node>
+      <node id="233">
+        <label>sf::system::console::sprite::AbstractSprite</label>
+        <childnode id="234" relation="public-inheritance">
+        </childnode>
+      </node>
+    </collaborationgraph>
+    <location file="J:/project/sfglib/Sprite3D.h" line="46" bodystart="45" bodyend="81"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1console_1_1sprite_1_1SpriteMesh" kind="class">
+    <compoundname>sf::system::console::sprite::SpriteMesh</compoundname>
+    <basecompoundref idref="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1SpriteMesh_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>SpriteMesh</name>
+        <param>
+          <type>LPDIRECT3DDEVICE8</type>
+          <declname>pD3DDevice</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SpriteMesh.h" line="43" bodystart="67" bodyend="76"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1SpriteMesh_1a1" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~SpriteMesh</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SpriteMesh.h" line="44" bodystart="78" bodyend="81"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1SpriteMesh_1a2" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>initialize</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SpriteMesh.h" line="46" bodystart="84" bodyend="89"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1SpriteMesh_1a3" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>initialize</name>
+        <param>
+          <type>LPDIRECT3DDEVICE8</type>
+          <declname>pD3DDevice</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SpriteMesh.h" line="47" bodystart="92" bodyend="97"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1SpriteMesh_1a4" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>uninitialize</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SpriteMesh.h" line="48" bodystart="100" bodyend="121"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1SpriteMesh_1a5" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>load</name>
+        <param>
+          <type>const <ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info">sprite::Info</ref> *</type>
+          <declname>pInfo</declname>
+        </param>
+        <param>
+          <type>const D3DFORMAT</type>
+          <declname>textureFormat</declname>
+        </param>
+        <param>
+          <type>const COLOR</type>
+          <declname>color</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SpriteMesh.h" line="50"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1SpriteMesh_1a6" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>draw</name>
+        <param>
+          <type>const ObjRectangle *const</type>
+          <declname>pObj</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SpriteMesh.h" line="52" bodystart="52" bodyend="52"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1SpriteMesh_1a7" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>draw</name>
+        <param>
+          <type>const ObjQuadrangle *const</type>
+          <declname>pObj</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SpriteMesh.h" line="53" bodystart="53" bodyend="53"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1console_1_1sprite_1_1SpriteMesh_1a8" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>draw</name>
+        <param>
+          <type>const Obj3DL *const</type>
+          <declname>pObj</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SpriteMesh.h" line="54" bodystart="187" bodyend="259"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1SpriteMesh_1o0" virt="normal" prot="private">
+        <type>LPD3DXMESH</type>
+        <name>mpMesh</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SpriteMesh.h" line="58" bodystart="58" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1SpriteMesh_1o1" virt="normal" prot="private">
+        <type>D3DMATERIAL8 *</type>
+        <name>mpMeshMaterials</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SpriteMesh.h" line="59" bodystart="59" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1SpriteMesh_1o2" virt="normal" prot="private">
+        <type>LPDIRECT3DTEXTURE8 *</type>
+        <name>mpMeshTextures</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SpriteMesh.h" line="60" bodystart="60" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1console_1_1sprite_1_1SpriteMesh_1o3" virt="normal" prot="private">
+        <type><ref idref="namespacesf_1a0">DWORD</ref></type>
+        <name>mNumMaterials</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SpriteMesh.h" line="61" bodystart="61" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="237">
+        <label>sf::system::console::sprite::Sprite</label>
+        <link id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite"/>
+      </node>
+      <node id="235">
+        <label>sf::system::console::sprite::SpriteMesh</label>
+        <childnode id="236" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="236">
+        <label>sf::system::console::sprite::AbstractSprite</label>
+        <childnode id="237" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="240">
+        <label>sf::system::console::sprite::Sprite</label>
+        <link id="classsf_1_1system_1_1console_1_1sprite_1_1Sprite"/>
+      </node>
+      <node id="238">
+        <label>sf::system::console::sprite::SpriteMesh</label>
+        <childnode id="239" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="239">
+        <label>sf::system::console::sprite::AbstractSprite</label>
+        <childnode id="240" relation="public-inheritance">
+        </childnode>
+      </node>
+    </collaborationgraph>
+    <location file="J:/project/sfglib/SpriteMesh.h" line="40" bodystart="39" bodyend="63"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1System" kind="class">
+    <compoundname>sf::system::System</compoundname>
+    <derivedcompoundref idref="classsf_1_1system_1_1SystemImpl" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1System_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>System</name>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\?(\A\s!?). </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="72" bodystart="72" bodyend="72"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1System_1a1" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~System</name>
+        <briefdescription>
+<para>
+\C\1\E\e\\81P\?!E\A\s!?!E. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="74" bodystart="74" bodyend="74"/>
+        <references id="System_8h_1a0">sf::DWORD</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1System_1a2" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>wait</name>
+        <reimplementedby id="classsf_1_1system_1_1SystemImpl_1a3">wait</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+?!?I\O\i!?\a?I\?\?\s\o\\81\8b?T?CAO?A. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="80"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1System_1a3" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>errorTerminate</name>
+        <reimplementedby id="classsf_1_1system_1_1SystemImpl_1a4">errorTerminate</reimplementedby>        <param>
+          <type>const char *</type>
+          <declname>errString</declname>
+        </param>
+        <briefdescription>
+<para>
+\\81N\e!?\a\A\\81â!?\\81C?oE??\81N?\81E?A\\81\91\\81~\e\\81}!?\\81E\c\o?o?aI\81â?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\\81N\e!?\a\A\\81â!?\\81C\A\?\\81\91\i\\81\8b?oE??\81N(Windows\81EI?I?i1c)?\81E?A!\81\91\\81\91\\81~\e\\81}!?\\81E\c\o?o?aI\81â?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>errString</parametername><parameterdescription><para>
+?DIIE\81C\81âuIo?O?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="84"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1System_1a4" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>outputError</name>
+        <reimplementedby id="classsf_1_1system_1_1SystemImpl_1a5">outputError</reimplementedby>        <param>
+          <type>const char *</type>
+          <declname>errString</declname>
+        </param>
+        <briefdescription>
+<para>
+\\81N\e!?\a\A\\81â!?\\81C?oE??\81N?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>errString</parametername><parameterdescription><para>
+?DIIE\81C\81âuIo?O?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="87"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1System_1a5" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>timerInterval</name>
+        <reimplementedby id="classsf_1_1system_1_1SystemImpl_1a6">timerInterval</reimplementedby>        <param>
+          <type>const unsigned long</type>
+          <declname>msValue</declname>
+        </param>
+        <briefdescription>
+<para>
+\O\i!?\a\81LO3O?oAsAe?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>msValue</parametername><parameterdescription><para>
+1\O\i!?\a?I\81LO3O?omsA\81}\81\8bI?C\81âOAe?1?e </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="93"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1System_1a6" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const unsigned long</type>
+        <name>timerInterval</name>
+        <reimplementedby id="classsf_1_1system_1_1SystemImpl_1a7">timerInterval</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\O\i!?\a\81LO3O?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+1\O\i!?\a?I\81LO3O(ms) </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="97"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1System_1a7" virt="pure-virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const <ref idref="namespacesf_1a0">DWORD</ref></type>
+        <name>time</name>
+        <reimplementedby id="classsf_1_1system_1_1SystemImpl_1a8">time</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+msA\81}\81\8bI?I\\81E\1\A\a\81ât\81LO?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+msA\81}\81\8bI?I\\81E\1\A\a\81ât\81LO </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="101"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1System_1a8" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual <ref idref="classsf_1_1system_1_1console_1_1Console">console::Console</ref> *const</type>
+        <name>console</name>
+        <reimplementedby id="classsf_1_1system_1_1SystemImpl_1a9">console</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\3\o\?!?\e\?\o\?!?\O\\81\98!?\1?I\Y\?\o\??o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+EA2e(\1\\81~\e\?\E!|CO\81EE2eAu) IN?I\?\o\?!?\O\\81\98!?\1?I\Y\?\o\??o?eAA?\81E?T?1!\81\92 2eII?O?IEA2eoi\81÷E?I?3?I\Y\?\o\??oAI?\81C?A1O?i?i?T?1!\81\92 </para>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+Console \?\o\?!?\O\\81\98!?\1?O?I\Y\?\o\? </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="107"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1System_1a9" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual <ref idref="classsf_1_1system_1_1sound_1_1Sound">sound::Sound</ref> *const</type>
+        <name>sound</name>
+        <reimplementedby id="classsf_1_1system_1_1SystemImpl_1a10">sound</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\\83Ê\|\o\E\?\o\?!?\O\\81\98!?\1?I\Y\?\o\??o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\\83Ê\|\o\E?DII!EBGM!|\81Cu2I2\81â!EIN?I\?\o\?!?\O\\81\98!?\1?I\Y\?\o\??o?eAA?\81E?T?1!\81\92 \\83Ê\|\o\E?DII?I?3?I\Y\?\o\??oAI?\81C?A1O?i?i?T?1!\81\92 </para>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+Sound \?\o\?!?\O\\81\98!?\1?I\Y\?\o\? </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="113"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1System_1a10" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual <ref idref="classsf_1_1system_1_1input_1_1Input">input::Input</ref> *const</type>
+        <name>input</name>
+        <reimplementedby id="classsf_1_1system_1_1SystemImpl_1a11">input</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+AtII\?\o\?!?\O\\81\98!?\1?I\Y\?\o\??o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+AtII!E\-!?\U!?\E!|\T\|\1!|\\81C\c\?\1\A\\81\92\A\\81P!EIN?I\?\o\?!?\O\\81\98!?\1?I\Y\?\o\??o?eAA?\81E?T?1. </para>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+Input \?\o\?!?\O\\81\98!?\1?I\Y\?\o\? </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="118"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1System_1a11" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual application::Main *const</type>
+        <name>main</name>
+        <reimplementedby id="classsf_1_1system_1_1SystemImpl_1a12">main</reimplementedby>        <briefdescription>
+<para>
+\a\?\o\?\o\?!?\O\\81\98!?\1?I\Y\?\o\??o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\2!?\a\\81\91\\81~\e\\81}!?\\81E\c\o\a\?\o\?\o\?!?\O\\81\98!?\1?I\Y\?\o\??o?eAA?\81E?T?1!\81\92 ?3?I\?\o\?!?\O\\81\98!?\1?I!\81\91Scene?o\3\o\E\i!?\e?1?e???a?E?\81\91?e?T?1!\81\92 </para>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+Main \?\o\?!?\O\\81\98!?\1?O?I\Y\?\o\? </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="124"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1System_1a12" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>main</name>
+        <reimplementedby id="classsf_1_1system_1_1SystemImpl_1a13">main</reimplementedby>        <param>
+          <type>application::Main *const</type>
+          <declname>pMain</declname>
+        </param>
+        <briefdescription>
+<para>
+\a\?\o\?\o\?!?\O\\81\98!?\1?O?I\Y\?\o\??o\\81â\A\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+pMain \a\?\o\?\o\?!?\O\\81\98!?\1?O?I\Y\?\o\? </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="129"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1System_1a13" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual const float</type>
+        <name>deltaTime</name>
+        <reimplementedby id="classsf_1_1system_1_1SystemImpl_1a15">deltaTime</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+30FPS?E?IEaI\81N?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+?3?IAI?I1\O\i!?\a?C?I\81\8bUA\81\8bEaAI?I\81\8bUA\81\8b\81Ld?aAI?E?E?e!\81\9130FPS?I?i1c1.0f!\81\9160FPS?I?i1cIo0.5f?E?E?e?T?1!\81\92 \\81E\1\A\a?I\C\O\c\e\E?I30FPS?C?\81\91?e?I?C!\81\9160FPS?E?E?E?\81E???i1c!\81\91A\81N?I\81\8bUA\81\8bARAU?\81ÊCU?E?E?e?I?C\2!?\a?E?E?e?T?\81â?o!\81\92 ???I?e?|?E?i1c?3?IdeltaTime?IAI?oIoIN?\81E?AA\81N?I\81\8bUA\81\8bARAU?oA\81LA\81\8b?\81E?T?1!\81\92 </para>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+EaI\81N(TIMER_INTERVAL / 32.0f) </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="136"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1System_1a14" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual const float</type>
+        <name>framePerSec</name>
+        <reimplementedby id="classsf_1_1system_1_1SystemImpl_1a16">framePerSec</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\81C?os?IFPS?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\81C?osAsAe?\83Ê?i?A???eFPSAI?o?eAA?\81E?T?1 </para>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+FPSAI </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="141"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1System_1a15" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual bool</type>
+        <name>isActive</name>
+        <reimplementedby id="classsf_1_1system_1_1SystemImpl_1a14">isActive</reimplementedby>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\\81E\1\A\a?\81Ê\\81\91\\81P\A\\81\92\O?C?\81\91?e?\81á?E?|?\81áIa??1c?i?\81â?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+3eA\81\8bAa </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+3eA\81\8bAa?C?E???I?C<ref idref="classsf_1_1system_1_1System">System</ref>p.\?\o\?!?\O\\81\98!?\1?I\81âEIN?C?-?T?\81â?o </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="147"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+\\81E\1\A\a\\81P\e\1. </para>
+    </briefdescription>
+    <detaileddescription>
+<para>
+At?DII?E?E!\81\91\\81E\1\A\a\e\?!?\1?O?I\\81\91\\81P\\81â\1?oAe?Y2??1?e???a?E Ae\83ÊA?\83Ê?i?A???e\?\o\?!?\O\\81\98!?\1?C?1!\81\92 <ref idref="namespacesf_1_1system_1a4">sf::system::instance</ref>()p.?C\?\o\?!?\O\\81\98!?\1?I\Y\?\o\?!E?AoY?I?AAo\\81P\e\1?I\?\o\1\?\o\1?I\Y\?\o\??o\-\a\1\E?\81E???a?I!E?o?eAA?\81E!\81\91\\81\91\\81P\\81â\1?\81E?T?1!\81\92 </para>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="242">
+        <label>sf::system::SystemImpl</label>
+        <link id="classsf_1_1system_1_1SystemImpl"/>
+        <childnode id="241" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="241">
+        <label>sf::system::System</label>
+        <link id="classsf_1_1system_1_1System"/>
+      </node>
+    </inheritancegraph>
+    <location file="J:/project/sfglib/System.h" line="68" bodystart="67" bodyend="148"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1SystemImpl" kind="class">
+    <compoundname>sf::system::SystemImpl</compoundname>
+    <basecompoundref idref="classsf_1_1system_1_1System" prot="public" virt="non-virtual"/>
+    <basecompoundref idref="classsf_1_1system_1_1Win32" prot="private" virt="non-virtual"/>
+      <sectiondef kind="public-type">
+      <memberdef kind="typedef" id="classsf_1_1system_1_1SystemImpl_1s0" virt="normal" prot="public">
+        <type>std::map&lt; <ref idref="namespacesf_1a0">DWORD</ref>, <ref idref="classsf_1_1system_1_1WindowMessage">WindowMessage</ref> * &gt;</type>
+        <name>WindowMessageMap</name>
+        <briefdescription>
+<para>
+?eIy?1?e\|\\81\92\o\E\|\a\A\\81â!?\\81C?o3EC??1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="38" bodystart="38" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1a0" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~SystemImpl</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="40" bodystart="108" bodyend="113"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1a1" virt="normal" prot="public" const="no" volatile="no">
+        <type>int</type>
+        <name>winMain</name>
+        <reimplements id="classsf_1_1system_1_1Win32_1a2">winMain</reimplements>        <param>
+          <type>const HINSTANCE</type>
+          <declname>hThisInstance</declname>
+        </param>
+        <param>
+          <type>const HINSTANCE</type>
+          <declname>hPrevInstance</declname>
+        </param>
+        <param>
+          <type>const LPSTR</type>
+          <declname>lpszCmdParam</declname>
+        </param>
+        <param>
+          <type>const int</type>
+          <declname>nCmdShow</declname>
+        </param>
+        <briefdescription>
+<para>
+WinMain ?\81á?e\81CA?D?i?e\a\?\A\E. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+WinMain()Aa?\81á?e<ref idref="classsf_1_1system_1_1SystemImpl">SystemImpl</ref>p.?o\?\o\1\?\o\1?oA\81CAR?\81E!\81\91?3?I\a\?\A\E?o\81CA?O?D?\81E?T?1!\81\92 </para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="46" bodystart="160" bodyend="307"/>
+        <references id="SystemImpl_8cpp_1a4">errorTerminate</references>
+        <references id="SystemImpl_8cpp_1c4">initTimer</references>
+        <references id="SystemImpl_8h_1c2">isWindowActive</references>
+        <references id="SystemImpl_8h_1o6">mbWindowed</references>
+        <references id="SystemImpl_8h_1o0">mHWNDMain</references>
+        <references id="SystemImpl_8h_1o1">mpConsole</references>
+        <references id="SystemImpl_8h_1o3">mpInput</references>
+        <references id="SystemImpl_8h_1o4">mpMain</references>
+        <references id="SystemImpl_8h_1o2">mpSound</references>
+        <references id="SystemImpl_8h_1o10">mTimerElapsed</references>
+        <references id="SystemImpl_8h_1o8">mTimerValue</references>
+        <references id="SystemImpl_8cpp_1c5">setupMessageMap</references>
+        <references id="SystemImpl_8cpp_1r1">smAppName</references>
+        <references id="SystemImpl_8cpp_1a3">wait</references>
+        <references id="SystemImpl_8h_1c3">windowActivate</references>
+        <references id="SystemImpl_8cpp_1d0">wndFunc</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1a2" virt="normal" prot="public" const="no" volatile="no">
+        <type>const bool</type>
+        <name>addWindowMessage</name>
+        <reimplements id="classsf_1_1system_1_1Win32_1a3">addWindowMessage</reimplements>        <param>
+          <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+          <declname>value</declname>
+        </param>
+        <param>
+          <type><ref idref="classsf_1_1system_1_1WindowMessage">WindowMessage</ref> *</type>
+          <declname>pWindowMessage</declname>
+        </param>
+        <briefdescription>
+<para>
+?eIy?1?e\|\\81\92\o\E\|\a\A\\81â!?\\81C?oAE2A?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+?eIy?\81E????\|\\81\92\o\E\|\a\A\\81â!?\\81C?o?3?3?CAE2A?\81E?T?1!\81\92 ?3?3?CAE2A?\83Ê?i?E??\a\A\\81â!?\\81C?I!\81\91\C\O\c\e\E?I?eIy?\81Ê\81CA?D?i?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\a\A\\81â!?\\81C </para>
+</parameterdescription><parametername>pWindowMessage</parametername><parameterdescription><para>
+<ref idref="classsf_1_1system_1_1WindowMessage">WindowMessage</ref>p.?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="57" bodystart="56" bodyend="64"/>
+        <references id="System_8h_1a0">sf::DWORD</references>
+        <references id="SystemImpl_8h_1o11">mWindowMessageMap</references>
+        <referencedby id="SystemImpl_8cpp_1c5">setupMessageMap</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1a3" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>wait</name>
+        <reimplements id="classsf_1_1system_1_1System_1a2">wait</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+?!?I\O\i!?\a?I\?\?\s\o\\81\8b?T?CAO?A. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="66" bodystart="426" bodyend="444"/>
+        <references id="System_8h_1a0">sf::DWORD</references>
+        <references id="SystemImpl_8h_1o9">mTimerBefore</references>
+        <references id="SystemImpl_8h_1o7">mTimerInterval</references>
+        <references id="SystemImpl_8h_1o8">mTimerValue</references>
+        <referencedby id="SystemImpl_8cpp_1a1">winMain</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1a4" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>errorTerminate</name>
+        <reimplements id="classsf_1_1system_1_1System_1a3">errorTerminate</reimplements>        <param>
+          <type>const char *</type>
+          <declname>errString</declname>
+        </param>
+        <briefdescription>
+<para>
+\\81N\e!?\a\A\\81â!?\\81C?oE??\81N?\81E?A\\81\91\\81~\e\\81}!?\\81E\c\o?o?aI\81â?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\\81N\e!?\a\A\\81â!?\\81C\A\?\\81\91\i\\81\8b?oE??\81N(Windows\81EI?I?i1c)?\81E?A!\81\91\\81\91\\81~\e\\81}!?\\81E\c\o?o?aI\81â?\81E?T?1!\81\92 <parameterlist kind="param"><title>\81\8bu?o: </title><parametername>errString</parametername><parameterdescription><para>
+?DIIE\81C\81âuIo?O?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="68" bodystart="447" bodyend="451"/>
+        <references id="SystemImpl_8h_1o0">mHWNDMain</references>
+        <references id="SystemImpl_8cpp_1a5">outputError</references>
+        <referencedby id="SystemImpl_8cpp_1a1">winMain</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1a5" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>outputError</name>
+        <reimplements id="classsf_1_1system_1_1System_1a4">outputError</reimplements>        <param>
+          <type>const char *</type>
+          <declname>errString</declname>
+        </param>
+        <briefdescription>
+<para>
+\\81N\e!?\a\A\\81â!?\\81C?oE??\81N?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>errString</parametername><parameterdescription><para>
+?DIIE\81C\81âuIo?O?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="70" bodystart="454" bodyend="460"/>
+        <references id="SystemImpl_8cpp_1r1">smAppName</references>
+        <referencedby id="SystemImpl_8cpp_1a4">errorTerminate</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1a6" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>timerInterval</name>
+        <reimplements id="classsf_1_1system_1_1System_1a5">timerInterval</reimplements>        <param>
+          <type>const unsigned long</type>
+          <declname>msValue</declname>
+        </param>
+        <briefdescription>
+<para>
+\O\i!?\a\81LO3O?oAsAe?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>msValue</parametername><parameterdescription><para>
+1\O\i!?\a?I\81LO3O?omsA\81}\81\8bI?C\81âOAe?1?e </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="73" bodystart="73" bodyend="73"/>
+        <references id="SystemImpl_8h_1o7">mTimerInterval</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1a7" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const unsigned long</type>
+        <name>timerInterval</name>
+        <reimplements id="classsf_1_1system_1_1System_1a6">timerInterval</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\O\i!?\a\81LO3O?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+1\O\i!?\a?I\81LO3O(ms) </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="74" bodystart="74" bodyend="74"/>
+        <references id="SystemImpl_8h_1o7">mTimerInterval</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1a8" virt="virtual" prot="public" const="yes" volatile="no">
+        <type>virtual const <ref idref="namespacesf_1a0">DWORD</ref></type>
+        <name>time</name>
+        <reimplements id="classsf_1_1system_1_1System_1a7">time</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+msA\81}\81\8bI?I\\81E\1\A\a\81ât\81LO?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+msA\81}\81\8bI?I\\81E\1\A\a\81ât\81LO </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="75" bodystart="75" bodyend="75"/>
+        <references id="System_8h_1a0">sf::DWORD</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1a9" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual <ref idref="classsf_1_1system_1_1console_1_1Console">console::Console</ref> *const</type>
+        <name>console</name>
+        <reimplements id="classsf_1_1system_1_1System_1a8">console</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\3\o\?!?\e\?\o\?!?\O\\81\98!?\1?I\Y\?\o\??o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+EA2e(\1\\81~\e\?\E!|CO\81EE2eAu) IN?I\?\o\?!?\O\\81\98!?\1?I\Y\?\o\??o?eAA?\81E?T?1!\81\92 2eII?O?IEA2eoi\81÷E?I?3?I\Y\?\o\??oAI?\81C?A1O?i?i?T?1!\81\92 </para>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+Console \?\o\?!?\O\\81\98!?\1?O?I\Y\?\o\? </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="77" bodystart="77" bodyend="77"/>
+        <references id="SystemImpl_8h_1o1">mpConsole</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1a10" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual <ref idref="classsf_1_1system_1_1sound_1_1Sound">sound::Sound</ref> *const</type>
+        <name>sound</name>
+        <reimplements id="classsf_1_1system_1_1System_1a9">sound</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\\83Ê\|\o\E\?\o\?!?\O\\81\98!?\1?I\Y\?\o\??o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\\83Ê\|\o\E?DII!EBGM!|\81Cu2I2\81â!EIN?I\?\o\?!?\O\\81\98!?\1?I\Y\?\o\??o?eAA?\81E?T?1!\81\92 \\83Ê\|\o\E?DII?I?3?I\Y\?\o\??oAI?\81C?A1O?i?i?T?1!\81\92 </para>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+Sound \?\o\?!?\O\\81\98!?\1?I\Y\?\o\? </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="78" bodystart="78" bodyend="78"/>
+        <references id="SystemImpl_8h_1o2">mpSound</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1a11" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual <ref idref="classsf_1_1system_1_1input_1_1Input">input::Input</ref> *const</type>
+        <name>input</name>
+        <reimplements id="classsf_1_1system_1_1System_1a10">input</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+AtII\?\o\?!?\O\\81\98!?\1?I\Y\?\o\??o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+AtII!E\-!?\U!?\E!|\T\|\1!|\\81C\c\?\1\A\\81\92\A\\81P!EIN?I\?\o\?!?\O\\81\98!?\1?I\Y\?\o\??o?eAA?\81E?T?1. </para>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+Input \?\o\?!?\O\\81\98!?\1?I\Y\?\o\? </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="79" bodystart="79" bodyend="79"/>
+        <references id="SystemImpl_8h_1o3">mpInput</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1a12" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual application::Main *const</type>
+        <name>main</name>
+        <reimplements id="classsf_1_1system_1_1System_1a11">main</reimplements>        <briefdescription>
+<para>
+\a\?\o\?\o\?!?\O\\81\98!?\1?I\Y\?\o\??o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\2!?\a\\81\91\\81~\e\\81}!?\\81E\c\o\a\?\o\?\o\?!?\O\\81\98!?\1?I\Y\?\o\??o?eAA?\81E?T?1!\81\92 ?3?I\?\o\?!?\O\\81\98!?\1?I!\81\91Scene?o\3\o\E\i!?\e?1?e???a?E?\81\91?e?T?1!\81\92 </para>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+Main \?\o\?!?\O\\81\98!?\1?O?I\Y\?\o\? </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="81" bodystart="81" bodyend="81"/>
+        <references id="SystemImpl_8h_1o4">mpMain</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1a13" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual void</type>
+        <name>main</name>
+        <reimplements id="classsf_1_1system_1_1System_1a12">main</reimplements>        <param>
+          <type>application::Main *const</type>
+          <declname>pMain</declname>
+        </param>
+        <briefdescription>
+<para>
+\a\?\o\?\o\?!?\O\\81\98!?\1?O?I\Y\?\o\??o\\81â\A\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+pMain \a\?\o\?\o\?!?\O\\81\98!?\1?O?I\Y\?\o\? </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="82" bodystart="82" bodyend="82"/>
+        <references id="SystemImpl_8h_1o4">mpMain</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1a14" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual bool</type>
+        <name>isActive</name>
+        <reimplements id="classsf_1_1system_1_1System_1a15">isActive</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\\81E\1\A\a?\81Ê\\81\91\\81P\A\\81\92\O?C?\81\91?e?\81á?E?|?\81áIa??1c?i?\81â?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="retval"><title>Ia?eAI: </title><parametername>true</parametername><parameterdescription><para>
+3eA\81\8bAa </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+3eA\81\8bAa?C?E???I?C<ref idref="classsf_1_1system_1_1System">System</ref>p.\?\o\?!?\O\\81\98!?\1?I\81âEIN?C?-?T?\81â?o </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="85" bodystart="85" bodyend="85"/>
+        <references id="SystemImpl_8h_1o5">mIsWindowActive</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1a15" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual const float</type>
+        <name>deltaTime</name>
+        <reimplements id="classsf_1_1system_1_1System_1a13">deltaTime</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+30FPS?E?IEaI\81N?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+?3?IAI?I1\O\i!?\a?C?I\81\8bUA\81\8bEaAI?I\81\8bUA\81\8b\81Ld?aAI?E?E?e!\81\9130FPS?I?i1c1.0f!\81\9160FPS?I?i1cIo0.5f?E?E?e?T?1!\81\92 \\81E\1\A\a?I\C\O\c\e\E?I30FPS?C?\81\91?e?I?C!\81\9160FPS?E?E?E?\81E???i1c!\81\91A\81N?I\81\8bUA\81\8bARAU?\81ÊCU?E?E?e?I?C\2!?\a?E?E?e?T?\81â?o!\81\92 ???I?e?|?E?i1c?3?IdeltaTime?IAI?oIoIN?\81E?AA\81N?I\81\8bUA\81\8bARAU?oA\81LA\81\8b?\81E?T?1!\81\92 </para>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+EaI\81N(TIMER_INTERVAL / 32.0f) </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="86" bodystart="86" bodyend="86"/>
+        <references id="SystemImpl_8h_1o12">mFrameStep</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1a16" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual const float</type>
+        <name>framePerSec</name>
+        <reimplements id="classsf_1_1system_1_1System_1a14">framePerSec</reimplements>        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\81C?os?IFPS?o?eAA?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\81C?osAsAe?\83Ê?i?A???eFPSAI?o?eAA?\81E?T?1 </para>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+FPSAI </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="87" bodystart="87" bodyend="87"/>
+        <references id="SystemImpl_8h_1o13">mFramePerSec</references>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="public-static-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1d0" virt="normal" prot="public" const="no" volatile="no">
+        <type>LRESULT CALLBACK</type>
+        <name>wndFunc</name>
+        <param>
+          <type>HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>UINT</type>
+          <declname>message</declname>
+        </param>
+        <param>
+          <type>WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+Windows\?\U\o\E ?eIyIN. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="49" bodystart="311" bodyend="345"/>
+        <references id="SystemImpl_8cpp_1a4">sf::system::instance</references>
+        <referencedby id="SystemImpl_8cpp_1a1">winMain</referencedby>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1c0" virt="normal" prot="private" const="no" volatile="no">
+        <type></type>
+        <name>SystemImpl</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="35" bodystart="84" bodyend="104"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1c1" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>uninitialize</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+?aI\81â?eIy. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+3\81áEu?\81E?E?\81P???\81}?E??\a\a\e!\81\91Release()?\81E?E?\81P?A?I???\81}?E??COM\?\o\?!?\O\\81\98!?\1?E?E?I?3?3?C3\81áEu?\81E?T?1!\81\92 </para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="91" bodystart="117" bodyend="156"/>
+        <references id="SystemImpl_8h_1o1">mpConsole</references>
+        <references id="SystemImpl_8h_1o3">mpInput</references>
+        <references id="SystemImpl_8h_1o4">mpMain</references>
+        <references id="SystemImpl_8h_1o2">mpSound</references>
+        <references id="SystemImpl_8h_1o11">mWindowMessageMap</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1c2" virt="normal" prot="private" const="yes" volatile="no">
+        <type>const bool</type>
+        <name>isWindowActive</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+\81C?os\|\\81\92\o\E\|?\81Ê\\81\91\\81P\A\\81\92\O?C?\81\91?e?\81á?E?|?\81áIa??1c?i?\81â?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>true</parametername><parameterdescription><para>
+\\81\91\\81P\A\\81\92\O?C?\81\91?e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\\81\91\\81P\A\\81\92\O?C?E?? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="96" bodystart="96" bodyend="96"/>
+        <references id="SystemImpl_8h_1o5">mIsWindowActive</references>
+        <referencedby id="SystemImpl_8cpp_1a1">winMain</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1c3" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>windowActivate</name>
+        <param>
+          <type>const bool</type>
+          <declname>value</declname>
+        </param>
+        <briefdescription>
+<para>
+\81C?os\|\\81\92\o\E\|?\81Ê\\81\91\\81P\A\\81\92\O?C?\81\91?e?\81á?E?|?\81áAsAe?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>true</parametername><parameterdescription><para>
+\\81\91\\81P\A\\81\92\O?C?\81\91?e </para>
+</parameterdescription><parametername>false</parametername><parameterdescription><para>
+\\81\91\\81P\A\\81\92\O?C?E?? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="101" bodystart="101" bodyend="101"/>
+        <references id="SystemImpl_8h_1o5">mIsWindowActive</references>
+        <referencedby id="SystemImpl_8cpp_1c8">onActivate</referencedby>
+        <referencedby id="SystemImpl_8cpp_1a1">winMain</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1c4" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>initTimer</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+AaEo\?\?\T!?EN?o?o?e\81Lu2??1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="103" bodystart="411" bodyend="423"/>
+        <referencedby id="SystemImpl_8cpp_1a1">winMain</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1c5" virt="normal" prot="private" const="no" volatile="no">
+        <type>void</type>
+        <name>setupMessageMap</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+mWindowMessageMap ?o\\81â\A\E\\81\91\A\\81~?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="105" bodystart="463" bodyend="478"/>
+        <references id="SystemImpl_8h_1a2">addWindowMessage</references>
+        <references id="SystemImpl_8h_1o11">mWindowMessageMap</references>
+        <referencedby id="SystemImpl_8cpp_1a1">winMain</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1c6" virt="normal" prot="private" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>onAbout</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <briefdescription>
+<para>
+WM_ABOUT\a\A\\81â!?\\81C?I?eIy. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="111"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1c7" virt="normal" prot="private" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>onCommand</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+WM_COMMAND\a\A\\81â!?\\81C?I?eIy. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="117" bodystart="376" bodyend="381"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1c8" virt="normal" prot="private" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>onActivate</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+WM_ACTIVATE\a\A\\81â!?\\81C?I?eIy. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="123" bodystart="364" bodyend="372"/>
+        <references id="SystemImpl_8h_1c3">windowActivate</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1c9" virt="normal" prot="private" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>onMove</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+WM_MOVE\a\A\\81â!?\\81C?I?eIy. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="129"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1c10" virt="normal" prot="private" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>onSize</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+WM_SIZE\a\A\\81â!?\\81C?I?eIy. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="135" bodystart="386" bodyend="389"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1c11" virt="normal" prot="private" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>onPaint</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+WM_PAINT\a\A\\81â!?\\81C?I?eIy. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="141" bodystart="348" bodyend="361"/>
+        <references id="SystemImpl_8h_1o1">mpConsole</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1SystemImpl_1c12" virt="normal" prot="private" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>onSysCommand</name>
+        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+WM_SYSCOMMAND\a\A\\81â!?\\81C?I?eIy. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+\|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="147" bodystart="392" bodyend="407"/>
+        <references id="SystemImpl_8h_1o6">mbWindowed</references>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1SystemImpl_1o0" virt="normal" prot="private">
+        <type>HWND</type>
+        <name>mHWNDMain</name>
+        <briefdescription>
+<para>
+\a\?\o\|\\81\92\o\E\|\I\o\E\e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="150" bodystart="149" bodyend="-1"/>
+        <referencedby id="SystemImpl_8cpp_1a4">errorTerminate</referencedby>
+        <referencedby id="SystemImpl_8cpp_1a1">winMain</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1SystemImpl_1o1" virt="normal" prot="private">
+        <type><ref idref="classsf_1_1system_1_1console_1_1Console">console::Console</ref> *</type>
+        <name>mpConsole</name>
+        <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1console_1_1Console">console::Console</ref>p.\?\o\?!?\O\\81\98!?\1?I\Y\?\o\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="152" bodystart="151" bodyend="-1"/>
+        <referencedby id="SystemImpl_8h_1a9">console</referencedby>
+        <referencedby id="SystemImpl_8cpp_1c11">onPaint</referencedby>
+        <referencedby id="SystemImpl_8cpp_1c1">uninitialize</referencedby>
+        <referencedby id="SystemImpl_8cpp_1a1">winMain</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1SystemImpl_1o2" virt="normal" prot="private">
+        <type><ref idref="classsf_1_1system_1_1sound_1_1Sound">sound::Sound</ref> *</type>
+        <name>mpSound</name>
+        <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1sound_1_1Sound">sound::Sound</ref>p.\?\o\?!?\O\\81\98!?\1?I\Y\?\o\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="153" bodystart="152" bodyend="-1"/>
+        <referencedby id="SystemImpl_8h_1a10">sound</referencedby>
+        <referencedby id="SystemImpl_8cpp_1c1">uninitialize</referencedby>
+        <referencedby id="SystemImpl_8cpp_1a1">winMain</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1SystemImpl_1o3" virt="normal" prot="private">
+        <type><ref idref="classsf_1_1system_1_1input_1_1Input">input::Input</ref> *</type>
+        <name>mpInput</name>
+        <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1input_1_1Input">input::Input</ref>p.\?\o\?!?\O\\81\98!?\1?I\Y\?\o\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="154" bodystart="153" bodyend="-1"/>
+        <referencedby id="SystemImpl_8h_1a11">input</referencedby>
+        <referencedby id="SystemImpl_8cpp_1c1">uninitialize</referencedby>
+        <referencedby id="SystemImpl_8cpp_1a1">winMain</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1SystemImpl_1o4" virt="normal" prot="private">
+        <type>::sf::application::Main *</type>
+        <name>mpMain</name>
+        <briefdescription>
+<para>
+sf::application::Main\?\o\?!?\O\\81\98!?\1?I\Y\?\o\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="156" bodystart="155" bodyend="-1"/>
+        <referencedby id="SystemImpl_8h_1a12">main</referencedby>
+        <referencedby id="SystemImpl_8cpp_1c1">uninitialize</referencedby>
+        <referencedby id="SystemImpl_8cpp_1a1">winMain</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1SystemImpl_1o5" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mIsWindowActive</name>
+        <briefdescription>
+<para>
+\81C?os\|\\81\92\o\E\|?\81Ê\\81\91\\81P\A\\81\92\O?\81á?E?|?\81á!c. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="159" bodystart="158" bodyend="-1"/>
+        <referencedby id="SystemImpl_8h_1a14">isActive</referencedby>
+        <referencedby id="SystemImpl_8h_1c2">isWindowActive</referencedby>
+        <referencedby id="SystemImpl_8h_1c3">windowActivate</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1SystemImpl_1o6" virt="normal" prot="private">
+        <type>bool</type>
+        <name>mbWindowed</name>
+        <briefdescription>
+<para>
+\|\\81\92\o\E\|\a!?\E?\81á\O\e\1\\81P\e!?\o\a!?\E?\81á!c. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="160" bodystart="159" bodyend="-1"/>
+        <referencedby id="SystemImpl_8cpp_1c12">onSysCommand</referencedby>
+        <referencedby id="SystemImpl_8cpp_1a1">winMain</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1SystemImpl_1o7" virt="normal" prot="private">
+        <type><ref idref="namespacesf_1a0">DWORD</ref></type>
+        <name>mTimerInterval</name>
+        <briefdescription>
+<para>
+\O\i!?\a\81\8bY\81ây\?\?\T!??I\81LO3O(ms). </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="162" bodystart="161" bodyend="-1"/>
+        <referencedby id="SystemImpl_8h_1a6">timerInterval</referencedby>
+        <referencedby id="SystemImpl_8cpp_1a3">wait</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1SystemImpl_1o8" virt="normal" prot="private">
+        <type><ref idref="namespacesf_1a0">DWORD</ref></type>
+        <name>mTimerValue</name>
+        <briefdescription>
+<para>
+\81C?os?I\?\?\T!??IAI(ms). </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="163" bodystart="162" bodyend="-1"/>
+        <referencedby id="SystemImpl_8cpp_1a3">wait</referencedby>
+        <referencedby id="SystemImpl_8cpp_1a1">winMain</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1SystemImpl_1o9" virt="normal" prot="private">
+        <type><ref idref="namespacesf_1a0">DWORD</ref></type>
+        <name>mTimerBefore</name>
+        <briefdescription>
+<para>
+1\O\i!?\aA\81\8b?I\?\?\T!??IAI(ms). </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="164" bodystart="163" bodyend="-1"/>
+        <referencedby id="SystemImpl_8cpp_1a3">wait</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1SystemImpl_1o10" virt="normal" prot="private">
+        <type><ref idref="namespacesf_1a0">DWORD</ref></type>
+        <name>mTimerElapsed</name>
+        <briefdescription>
+<para>
+1\O\i!?\aAa?I?o!1?I?eIy?EI\81~?\81E??\81ât\81LO(ms). </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="165" bodystart="164" bodyend="-1"/>
+        <referencedby id="SystemImpl_8cpp_1a1">winMain</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1SystemImpl_1o11" virt="normal" prot="private">
+        <type><ref idref="classsf_1_1system_1_1SystemImpl_1s0">WindowMessageMap</ref></type>
+        <name>mWindowMessageMap</name>
+        <briefdescription>
+<para>
+\|\\81\92\o\E\|\a\A\\81â!?\\81C\T\A\\81~. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="167" bodystart="166" bodyend="-1"/>
+        <referencedby id="SystemImpl_8h_1a2">addWindowMessage</referencedby>
+        <referencedby id="SystemImpl_8cpp_1c5">setupMessageMap</referencedby>
+        <referencedby id="SystemImpl_8cpp_1c1">uninitialize</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1SystemImpl_1o12" virt="normal" prot="private">
+        <type>float</type>
+        <name>mFrameStep</name>
+        <briefdescription>
+<para>
+1\O\i!?\a?I\81LdEU?oAI. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="168" bodystart="167" bodyend="-1"/>
+        <referencedby id="SystemImpl_8h_1a15">deltaTime</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1SystemImpl_1o13" virt="normal" prot="private">
+        <type>float</type>
+        <name>mFramePerSec</name>
+        <briefdescription>
+<para>
+FPSAI. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="169" bodystart="168" bodyend="-1"/>
+        <referencedby id="SystemImpl_8h_1a16">framePerSec</referencedby>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-static-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1SystemImpl_1r0" virt="normal" prot="private">
+        <type>SystemImpl *</type>
+        <name>pSystemImpl</name>
+        <briefdescription>
+<para>
+?\81áE\81Ê?\81á?E?I\Y\?\o\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="170" bodystart="169" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1SystemImpl_1r1" virt="normal" prot="private">
+        <type>const char</type>
+        <name>smAppName</name>
+        <initializer> &quot;Shooting Game!&quot;</initializer>
+        <briefdescription>
+<para>
+\\81\91\\81~\e\\81}!?\\81E\c\oI?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="172" bodystart="78" bodyend="-1"/>
+        <referencedby id="SystemImpl_8cpp_1a5">outputError</referencedby>
+        <referencedby id="SystemImpl_8cpp_1a1">winMain</referencedby>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1System">System</ref>p. \?\o\?!?\O\\81\98!?\1?I?AAo\\81P\e\1. </para>
+    </briefdescription>
+    <detaileddescription>
+<para>
+\\81E\1\A\a\?\o\?!?\O\\81\98!?\1?I?AAo\\81P\e\1?C?1!\81\92 \\81E\1\A\a\e\?!?\1IoIN?1?eoY?I!\81\91<ref idref="classsf_1_1system_1_1System">System</ref>p. \?\o\?!?\O\\81\98!?\1?o\81âEIN?\81E?T?1?\81Ê!\81\91?AoY?I2?AU\81LO?o?I\81âAAE?s?E?e?e!\81\91?3?I?AAo\\81P\e\1?I\a\?\A\E?\81Ê\81CA?D?i?T?1!\81\92 ?3?i?I!\81\91OS?E\81\8bIA\81C?1?eEoE\81Ê?o?3?I\\81P\e\1?E\81}\81\92EA?1?e???a?E1O?A?A???T?1 </para>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="246">
+        <label>sf::system::Win32</label>
+        <link id="classsf_1_1system_1_1Win32"/>
+      </node>
+      <node id="244">
+        <label>sf::system::SystemImpl</label>
+        <link id="classsf_1_1system_1_1SystemImpl"/>
+        <childnode id="245" relation="public-inheritance">
+        </childnode>
+        <childnode id="246" relation="private-inheritance">
+        </childnode>
+      </node>
+      <node id="245">
+        <label>sf::system::System</label>
+        <link id="classsf_1_1system_1_1System"/>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="251">
+        <label>sf::system::console::Console</label>
+        <link id="classsf_1_1system_1_1console_1_1Console"/>
+      </node>
+      <node id="249">
+        <label>sf::system::Win32</label>
+        <link id="classsf_1_1system_1_1Win32"/>
+      </node>
+      <node id="247">
+        <label>sf::system::SystemImpl</label>
+        <link id="classsf_1_1system_1_1SystemImpl"/>
+        <childnode id="248" relation="public-inheritance">
+        </childnode>
+        <childnode id="249" relation="private-inheritance">
+        </childnode>
+        <childnode id="250" relation="usage">
+          <edgelabel>mpMain</edgelabel>
+        </childnode>
+        <childnode id="251" relation="usage">
+          <edgelabel>mpConsole</edgelabel>
+        </childnode>
+        <childnode id="247" relation="usage">
+          <edgelabel>pSystemImpl</edgelabel>
+        </childnode>
+        <childnode id="252" relation="usage">
+          <edgelabel>mpSound</edgelabel>
+        </childnode>
+        <childnode id="253" relation="usage">
+          <edgelabel>mpInput</edgelabel>
+        </childnode>
+      </node>
+      <node id="248">
+        <label>sf::system::System</label>
+        <link id="classsf_1_1system_1_1System"/>
+      </node>
+      <node id="253">
+        <label>sf::system::input::Input</label>
+        <link id="classsf_1_1system_1_1input_1_1Input"/>
+      </node>
+      <node id="250">
+        <label>sf::application::Main</label>
+      </node>
+      <node id="252">
+        <label>sf::system::sound::Sound</label>
+        <link id="classsf_1_1system_1_1sound_1_1Sound"/>
+      </node>
+    </collaborationgraph>
+    <location file="J:/project/sfglib/SystemImpl.h" line="31" bodystart="30" bodyend="172"/>
+  </compounddef>
+  <compounddef id="structsf_1_1system_1_1console_1_1Vertex" kind="struct">
+    <compoundname>sf::system::console::Vertex</compoundname>
+      <sectiondef kind="public-attrib">
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1Vertex_1m0" virt="normal" prot="public">
+        <type>float</type>
+        <name>x</name>
+        <briefdescription>
+<para>
+xoAE\81C. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="218" bodystart="218" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1Vertex_1m1" virt="normal" prot="public">
+        <type>float</type>
+        <name>y</name>
+        <briefdescription>
+<para>
+yoAE\81C. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="219" bodystart="218" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1Vertex_1m2" virt="normal" prot="public">
+        <type>float</type>
+        <name>z</name>
+        <briefdescription>
+<para>
+zoAE\81C. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="220" bodystart="218" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1Vertex_1m3" virt="normal" prot="public">
+        <type>float</type>
+        <name>rhw</name>
+        <briefdescription>
+<para>
+??? </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="221" bodystart="218" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1Vertex_1m4" virt="normal" prot="public">
+        <type><ref idref="namespacesf_1a0">DWORD</ref></type>
+        <name>diffuse</name>
+        <briefdescription>
+<para>
+\C\\81\92\O\a!?\oARE\81Ê. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="222" bodystart="222" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1Vertex_1m5" virt="normal" prot="public">
+        <type><ref idref="namespacesf_1a0">DWORD</ref></type>
+        <name>specular</name>
+        <briefdescription>
+<para>
+\1\U\-\a\e!?ARE\81Ê. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="223" bodystart="222" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1Vertex_1m6" virt="normal" prot="public">
+        <type>float</type>
+        <name>tu</name>
+        <briefdescription>
+<para>
+\A\\81P\1\A\a?IuARE\81Ê. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="224" bodystart="224" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1Vertex_1m7" virt="normal" prot="public">
+        <type>float</type>
+        <name>tv</name>
+        <briefdescription>
+<para>
+\A\\81P\1\A\a?IvARE\81Ê. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="225" bodystart="224" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+\\81á\1\?\aAoAA\O\c!?\T\A\E. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="J:/project/sfglib/Console.h" line="216" bodystart="216" bodyend="225"/>
+  </compounddef>
+  <compounddef id="structsf_1_1system_1_1console_1_1Vertex2" kind="struct">
+    <compoundname>sf::system::console::Vertex2</compoundname>
+      <sectiondef kind="public-attrib">
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1Vertex2_1m0" virt="normal" prot="public">
+        <type>D3DVECTOR</type>
+        <name>position</name>
+        <briefdescription>
+<para>
+\a\O\\81C\\81\98\\81P\EoAE\81C!\81\92. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="34" bodystart="33" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1Vertex2_1m1" virt="normal" prot="public">
+        <type><ref idref="namespacesf_1a0">DWORD</ref></type>
+        <name>diffuse</name>
+        <briefdescription>
+<para>
+\C\\81\92\O\a!?\o. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="35" bodystart="34" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1Vertex2_1m2" virt="normal" prot="public">
+        <type><ref idref="namespacesf_1a0">DWORD</ref></type>
+        <name>specular</name>
+        <briefdescription>
+<para>
+\1\U\-\a\eARE\81Ê. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="36" bodystart="35" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1Vertex2_1m3" virt="normal" prot="public">
+        <type>float</type>
+        <name>tu</name>
+        <briefdescription>
+<para>
+\A\\81P\1\A\auoAE\81C. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="37" bodystart="36" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="structsf_1_1system_1_1console_1_1Vertex2_1m4" virt="normal" prot="public">
+        <type>float</type>
+        <name>tv</name>
+        <briefdescription>
+<para>
+\A\\81P\1\A\avoAE\81C. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="38" bodystart="37" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+3D\\81á\1\?\aAoAA\O\c!?\T\A\E. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="J:/project/sfglib/ConsoleImpl.h" line="32" bodystart="32" bodyend="38"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1input_1_1keyboard_1_1VKey" kind="class">
+    <compoundname>sf::system::input::keyboard::VKey</compoundname>
+      <sectiondef kind="public-static-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1keyboard_1_1VKey_1p0" virt="normal" prot="public">
+        <type>const int</type>
+        <name>UP</name>
+        <briefdescription>
+<para>
+?a\\81á!?\?\e\-!?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="137" bodystart="136" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1keyboard_1_1VKey_1p1" virt="normal" prot="public">
+        <type>const int</type>
+        <name>DOWN</name>
+        <briefdescription>
+<para>
+2?\\81á!?\?\e\-!?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="138" bodystart="137" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1keyboard_1_1VKey_1p2" virt="normal" prot="public">
+        <type>const int</type>
+        <name>LEFT</name>
+        <briefdescription>
+<para>
+o\81C\\81á!?\?\e\-!?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="139" bodystart="138" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1input_1_1keyboard_1_1VKey_1p3" virt="normal" prot="public">
+        <type>const int</type>
+        <name>RIGHT</name>
+        <briefdescription>
+<para>
+\81}|\\81á!?\?\e\-!?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="140" bodystart="139" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+2?AU\-!?\3!?\E\\81P\e\1. </para>
+    </briefdescription>
+    <detaileddescription>
+<simplesect kind="note"><title>3D?\81N?n?-: </title><para>
+?E???3?o?E\\81P\e\1?\81Ê?\81\91?e?I?\81á\81C?osEOIA </para>
+</simplesect>    </detaileddescription>
+    <location file="J:/project/sfglib/Input.h" line="134" bodystart="134" bodyend="140"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1Win32" kind="class">
+    <compoundname>sf::system::Win32</compoundname>
+    <derivedcompoundref idref="classsf_1_1system_1_1SystemImpl" prot="private" virt="non-virtual"/>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1Win32_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>Win32</name>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemWin32.h" line="95" bodystart="95" bodyend="95"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1Win32_1a1" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~Win32</name>
+        <briefdescription>
+<para>
+\C\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemWin32.h" line="97" bodystart="97" bodyend="97"/>
+        <references id="System_8h_1a0">sf::DWORD</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1Win32_1a2" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual int</type>
+        <name>winMain</name>
+        <reimplementedby id="classsf_1_1system_1_1SystemImpl_1a1">winMain</reimplementedby>        <param>
+          <type>const HINSTANCE</type>
+          <declname>hThisInstance</declname>
+        </param>
+        <param>
+          <type>const HINSTANCE</type>
+          <declname>hPrevInstance</declname>
+        </param>
+        <param>
+          <type>const LPSTR</type>
+          <declname>lpszCmdParam</declname>
+        </param>
+        <param>
+          <type>const int</type>
+          <declname>nCmdShow</declname>
+        </param>
+        <briefdescription>
+<para>
+WinMain \e\A\N!?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemWin32.h" line="101"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1Win32_1a3" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual const bool</type>
+        <name>addWindowMessage</name>
+        <reimplementedby id="classsf_1_1system_1_1SystemImpl_1a2">addWindowMessage</reimplementedby>        <param>
+          <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+          <declname>value</declname>
+        </param>
+        <param>
+          <type><ref idref="classsf_1_1system_1_1WindowMessage">WindowMessage</ref> *</type>
+          <declname>pWindowMessage</declname>
+        </param>
+        <briefdescription>
+<para>
+Window Message?IADI?. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>value</parametername><parameterdescription><para>
+Window\a\A\\81â!?\\81C </para>
+</parameterdescription><parametername>pWindowMessage</parametername><parameterdescription><para>
+<ref idref="classsf_1_1system_1_1WindowMessage">WindowMessage</ref>p.?I\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemWin32.h" line="106"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1Win32">Win32</ref>p. \?\o\?!?\O\\81\98!?\1. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="260">
+        <label>sf::system::Win32</label>
+        <link id="classsf_1_1system_1_1Win32"/>
+      </node>
+      <node id="261">
+        <label>sf::system::SystemImpl</label>
+        <link id="classsf_1_1system_1_1SystemImpl"/>
+        <childnode id="260" relation="private-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <location file="J:/project/sfglib/SystemWin32.h" line="92" bodystart="91" bodyend="108"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1WindowMessage" kind="class">
+    <compoundname>sf::system::WindowMessage</compoundname>
+    <derivedcompoundref idref="classsf_1_1system_1_1WindowMessageImpl" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1WindowMessage_1a0" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~WindowMessage</name>
+        <briefdescription>
+<para>
+\C\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemWin32.h" line="31" bodystart="31" bodyend="31"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1WindowMessage_1a1" virt="pure-virtual" prot="public" const="no" volatile="no">
+        <type>virtual LRESULT</type>
+        <name>call</name>
+        <reimplementedby id="classsf_1_1system_1_1WindowMessageImpl_1a4">call</reimplementedby>        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+\a\A\\81â!?\\81C?eIy?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+HWND \|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM  </para>
+</parameterdescription></parameterlist></para>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+LRESULT </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/SystemWin32.h" line="37"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1WindowMessage">WindowMessage</ref>p.\?\o\?!?\O\\81\98!?\1. </para>
+    </briefdescription>
+    <detaileddescription>
+<para>
+Window\a\A\\81â!?\\81C?o?eIy?1?e???a?I\?\o\?!?\O\\81\98!?\1?C?1!\81\92 ?3?i?I!\81\91std::map?EAE?s1c?i?\81â?A!\81\91Window\a\A\\81â!?\\81C?o\81CuI\81NAa?E?eIy?1?e???a?EAe\83ÊA?\83Ê?i?A???T?1!\81\92 </para>
+<simplesect kind="note"><title>3D?\81N?n?-: </title><para>
+?3?IEO?I?AAo?I1I?\81NEy?I!\81\91<ulink url="http://puyon.pns.to/program/afl/h0003.html">?\81~?e?c?o?\83Ê?o?I\e\?\O\e\e?I\U!?\\81C</ulink> ?o\81â2?E?\81E?A?\81P?A?\83Ê??!\81\92<linebreak/> ?a\81L3?\81~?e?c?o?\83Ê?o?I\e\?\O\e\e?oAA2??\81E?A???e?O?O?o?I?\81\91?e?T?1!\81\92 </para>
+</simplesect>    </detaileddescription>
+    <inheritancegraph>
+      <node id="263">
+        <label>sf::system::WindowMessage</label>
+        <link id="classsf_1_1system_1_1WindowMessage"/>
+      </node>
+      <node id="264">
+        <label>sf::system::WindowMessageImpl&lt; T &gt;</label>
+        <link id="classsf_1_1system_1_1WindowMessageImpl"/>
+        <childnode id="263" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <location file="J:/project/sfglib/SystemWin32.h" line="28" bodystart="27" bodyend="38"/>
+  </compounddef>
+  <compounddef id="classsf_1_1system_1_1WindowMessageImpl" kind="class">
+    <compoundname>sf::system::WindowMessageImpl</compoundname>
+    <basecompoundref idref="classsf_1_1system_1_1WindowMessage" prot="public" virt="non-virtual"/>
+      <sectiondef kind="public-func">
+      <memberdef kind="function" id="classsf_1_1system_1_1WindowMessageImpl_1a0" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>WindowMessageImpl</name>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemWin32.h" line="45" bodystart="64" bodyend="68"/>
+        <references id="classsf_1_1system_1_1WindowMessageImpl_1o1">mpAddress</references>
+        <references id="SystemWin32_8h_1o0">mpClass</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1WindowMessageImpl_1a1" virt="virtual" prot="public" const="no" volatile="no">
+        <type>virtual</type>
+        <name>~WindowMessageImpl</name>
+        <briefdescription>
+<para>
+\C\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemWin32.h" line="47" bodystart="47" bodyend="47"/>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1WindowMessageImpl_1a2" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>WindowMessageImpl</name>
+        <param>
+          <type>T *const</type>
+          <declname>pClass</declname>
+        </param>
+        <param>
+          <type>LRESULT(T::*)(const HWND, const WPARAM, const LPARAM)</type>
+          <declname>pAddress</declname>
+        </param>
+        <briefdescription>
+<para>
+\3\o\1\E\e\\81P\?. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pClass</parametername><parameterdescription><para>
+\81CA?O?D?\81E????\a\?\A\E?oI-?\81E?A???e\\81P\e\1?I\?\o\1\?\o\1?I\Y\?\o\? </para>
+</parameterdescription><parametername>pAddress</parametername><parameterdescription><para>
+\81CA?O?D?\81E????\a\o\D\a\?\A\E?I\\81\91\E\i\1?\81ÊAt?A?A???e\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemWin32.h" line="51" bodystart="70" bodyend="74"/>
+        <references id="classsf_1_1system_1_1WindowMessageImpl_1o1">mpAddress</references>
+        <references id="SystemWin32_8h_1o0">mpClass</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1WindowMessageImpl_1a3" virt="normal" prot="public" const="no" volatile="no">
+        <type>void</type>
+        <name>setAddress</name>
+        <param>
+          <type>T *const</type>
+          <declname>pClass</declname>
+        </param>
+        <param>
+          <type>LRESULT(T::*)(const HWND, const WPARAM, const LPARAM)</type>
+          <declname>pAddress</declname>
+        </param>
+        <briefdescription>
+<para>
+\81CA?O?D?\81E????\a\?\A\E?I?dEo?o\\81â\A\E?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>pClass</parametername><parameterdescription><para>
+\81CA?O?D?\81E????\a\?\A\E?oI-?\81E?A???e\\81P\e\1?I\?\o\1\?\o\1?I\Y\?\o\? </para>
+</parameterdescription><parametername>pAddress</parametername><parameterdescription><para>
+\81CA?O?D?\81E????\a\o\D\a\?\A\E?I\\81\91\E\i\1?\81ÊAt?A?A???e\Y\?\o\? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemWin32.h" line="56" bodystart="77" bodyend="81"/>
+        <references id="classsf_1_1system_1_1WindowMessageImpl_1o1">mpAddress</references>
+        <references id="SystemWin32_8h_1o0">mpClass</references>
+      </memberdef>
+      <memberdef kind="function" id="classsf_1_1system_1_1WindowMessageImpl_1a4" virt="normal" prot="public" const="no" volatile="no">
+        <type>LRESULT</type>
+        <name>call</name>
+        <reimplements id="classsf_1_1system_1_1WindowMessage_1a1">call</reimplements>        <param>
+          <type>const HWND</type>
+          <declname>hwnd</declname>
+        </param>
+        <param>
+          <type>const WPARAM</type>
+          <declname>wParam</declname>
+        </param>
+        <param>
+          <type>const LPARAM</type>
+          <declname>lParam</declname>
+        </param>
+        <briefdescription>
+<para>
+\a\A\\81â!?\\81C?eIy?o1O?|. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>hwnd</parametername><parameterdescription><para>
+HWND \|\\81\92\o\E\|\I\o\E\e  </para>
+</parameterdescription><parametername>wParam</parametername><parameterdescription><para>
+WPARAM  </para>
+</parameterdescription><parametername>lParam</parametername><parameterdescription><para>
+LPARAM  </para>
+</parameterdescription></parameterlist></para>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+LRESULT </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/SystemWin32.h" line="58" bodystart="83" bodyend="88"/>
+        <references id="classsf_1_1system_1_1WindowMessageImpl_1o1">mpAddress</references>
+        <references id="SystemWin32_8h_1o0">mpClass</references>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="private-attrib">
+      <memberdef kind="variable" id="classsf_1_1system_1_1WindowMessageImpl_1o0" virt="normal" prot="private">
+        <type>T *</type>
+        <name>mpClass</name>
+        <briefdescription>
+<para>
+\81CA?O?D?\81E????\a\?\A\E?\81ÊAt?A?A???e\\81P\e\1?I\?\o\1\?\o\1?I\Y\?\o\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemWin32.h" line="61" bodystart="60" bodyend="-1"/>
+        <referencedby id="SystemWin32_8h_1a4">call</referencedby>
+        <referencedby id="SystemWin32_8h_1a3">setAddress</referencedby>
+        <referencedby id="SystemWin32_8h_1a0">WindowMessageImpl</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="classsf_1_1system_1_1WindowMessageImpl_1o1" virt="normal" prot="private">
+        <type>LRESULT(T::*</type>
+        <name>mpAddress</name>
+        <briefdescription>
+<para>
+\81CA?O?D?\81E????\a\o\D\a\?\A\E?I\\81\91\E\i\1. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemWin32.h" line="62"/>
+        <referencedby id="SystemWin32_8h_1a4">call</referencedby>
+        <referencedby id="SystemWin32_8h_1a3">setAddress</referencedby>
+        <referencedby id="SystemWin32_8h_1a0">WindowMessageImpl</referencedby>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1WindowMessage">WindowMessage</ref>p.\?\o\?!?\O\\81\98!?\1?I?AAo\\81P\e\1. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <inheritancegraph>
+      <node id="267">
+        <label>sf::system::WindowMessage</label>
+        <link id="classsf_1_1system_1_1WindowMessage"/>
+      </node>
+      <node id="266">
+        <label>sf::system::WindowMessageImpl&lt; T &gt;</label>
+        <link id="classsf_1_1system_1_1WindowMessageImpl"/>
+        <childnode id="267" relation="public-inheritance">
+        </childnode>
+      </node>
+    </inheritancegraph>
+    <collaborationgraph>
+      <node id="270">
+        <label>T</label>
+      </node>
+      <node id="269">
+        <label>sf::system::WindowMessage</label>
+        <link id="classsf_1_1system_1_1WindowMessage"/>
+      </node>
+      <node id="268">
+        <label>sf::system::WindowMessageImpl&lt; T &gt;</label>
+        <link id="classsf_1_1system_1_1WindowMessageImpl"/>
+        <childnode id="269" relation="public-inheritance">
+        </childnode>
+        <childnode id="270" relation="usage">
+          <edgelabel>mpClass</edgelabel>
+        </childnode>
+      </node>
+    </collaborationgraph>
+    <location file="J:/project/sfglib/SystemWin32.h" line="42" bodystart="41" bodyend="62"/>
+  </compounddef>
+  <compounddef id="namespacesf" kind="namespace">
+    <compoundname>sf</compoundname>
+      <sectiondef kind="typedef">
+      <memberdef kind="typedef" id="namespacesf_1a0" virt="normal" prot="public">
+        <type>unsigned long</type>
+        <name>DWORD</name>
+        <briefdescription>
+<para>
+?3?i?I!\81\91WindowsAPI?I\e\?\O\e\e?o?e?e1t?T?E?\81P?A?a?e???e?|?EDWORD?oAe\83ÊA?\81E?A???T?1!\81\92. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="30" bodystart="29" bodyend="-1"/>
+        <referencedby id="SystemImpl_8h_1a2">sf::system::SystemImpl::addWindowMessage</referencedby>
+        <referencedby id="InputImpl_8h_1d1">sf::system::input::InputImpl::enumAxesCallback</referencedby>
+        <referencedby id="InputImpl_8cpp_1a14">sf::system::input::InputImpl::onKeyDown</referencedby>
+        <referencedby id="InputImpl_8cpp_1a11">sf::system::input::InputImpl::onMouseWheel</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a5">sf::system::sound::SoundImpl::play</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a3">sf::system::sound::SoundImpl::Queue::set</referencedby>
+        <referencedby id="SystemImpl_8h_1a8">sf::system::SystemImpl::time</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a7">sf::system::sound::SoundImpl::update</referencedby>
+        <referencedby id="SystemImpl_8cpp_1a3">sf::system::SystemImpl::wait</referencedby>
+        <referencedby id="Sound_8h_1a1">sf::system::sound::Sound::~Sound</referencedby>
+        <referencedby id="System_8h_1a1">sf::system::System::~System</referencedby>
+        <referencedby id="SystemWin32_8h_1a1">sf::system::Win32::~Win32</referencedby>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+S.F.?II?A\81\8b\81÷o\81LO. </para>
+    </briefdescription>
+    <detaileddescription>
+<para>
+?3?i?IA??I\e\?\O\e\e?EI?A\81\8b?I?\81~AI?o2oEo?1?e???a?EAe\83ÊA?\83Ê?i?A???T?1!\81\92  S.F.?\81ÊAe\83ÊA?1?eI?A\81\8b\81÷o\81LO!|\\81P\e\1!|EN?o!|Ae?o?I?1?U?A?3?IAa?E\81LT?T?i?T?1!\81\92 </para>
+    </detaileddescription>
+    <location file="J:/project/sfglib/AbstractSprite.h" line="37"/>
+  </compounddef>
+  <compounddef id="namespacesf_1_1application" kind="namespace">
+    <compoundname>sf::application</compoundname>
+    <innerclass refid="classsf_1_1application_1_1Main">sf::application::Main</innerclass>
+      <sectiondef kind="var">
+      <memberdef kind="variable" id="namespacesf_1_1application_1a0" virt="normal" prot="public">
+        <type>const int</type>
+        <name>INIT_PLAYER</name>
+        <initializer> 3</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Main.h" line="31" bodystart="31" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1application_1a1" virt="normal" prot="public">
+        <type>const int</type>
+        <name>STAGE_NUM_MAX</name>
+        <initializer> 1</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Main.h" line="32" bodystart="32" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="J:/project/sfglib/Main.h" line="29"/>
+  </compounddef>
+  <compounddef id="namespacesf_1_1system" kind="namespace">
+    <compoundname>sf::system</compoundname>
+    <innerclass refid="classsf_1_1system_1_1Exception">sf::system::Exception</innerclass>
+    <innerclass refid="classsf_1_1system_1_1FatalErrorException">sf::system::FatalErrorException</innerclass>
+    <innerclass refid="classsf_1_1system_1_1RecoverbleErrorException">sf::system::RecoverbleErrorException</innerclass>
+    <innerclass refid="classsf_1_1system_1_1System">sf::system::System</innerclass>
+    <innerclass refid="classsf_1_1system_1_1SystemImpl">sf::system::SystemImpl</innerclass>
+    <innerclass refid="classsf_1_1system_1_1Win32">sf::system::Win32</innerclass>
+    <innerclass refid="classsf_1_1system_1_1WindowMessage">sf::system::WindowMessage</innerclass>
+    <innerclass refid="classsf_1_1system_1_1WindowMessageImpl">sf::system::WindowMessageImpl</innerclass>
+      <sectiondef kind="func">
+      <memberdef kind="function" id="namespacesf_1_1system_1a4" virt="normal" prot="public" const="no" volatile="no">
+        <type>SFDLL <ref idref="classsf_1_1system_1_1System">System</ref> *const</type>
+        <name>instance</name>
+        <param>
+          <type>void</type>
+        </param>
+        <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1System">System</ref>p.\?\o\1\?\o\1?O?I\Y\?\o\??oAA?e. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<ref idref="classsf_1_1system_1_1System">System</ref>p.\?\o\?!?\O\\81\98!?\1?O?I\Y\?\o\??o?eAA?\81E?T?1!\81\92 ?3?I\a\?\A\E?o\81âEIN?\81E?A!\81\91<ref idref="classsf_1_1system_1_1System">System</ref>p.\?\o\?!?\O\\81\98!?\1?o?eAA?\81E!\81\91\\81E\1\A\a\e\?!?\1?E\\81\91\\81P\\81â\1?\81E?T?1!\81\92 </para>
+<simplesect kind="return"><title>Ia?eAI: </title><para>
+<ref idref="classsf_1_1system_1_1System">System</ref>p. \?\o\?!?\O\\81\98!?\1?I\Y\?\o\? </para>
+</simplesect>        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="154" bodystart="73" bodyend="76"/>
+        <referencedby id="SystemImpl_8cpp_1d0">sf::system::SystemImpl::wndFunc</referencedby>
+      </memberdef>
+      <memberdef kind="function" id="namespacesf_1_1system_1a5" virt="normal" prot="public" const="no" volatile="no">
+        <type></type>
+        <name>IMPLEMENT_SINGLETON</name>
+        <param>
+          <type><ref idref="classsf_1_1system_1_1SystemImpl">SystemImpl</ref></type>
+        </param>
+        <param>
+          <type><ref idref="classsf_1_1system_1_1SystemImpl">SystemImpl</ref></type>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.cpp" line="81"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="var">
+      <memberdef kind="variable" id="namespacesf_1_1system_1a0" virt="normal" prot="public">
+        <type>const float</type>
+        <name>PI</name>
+        <initializer> 3.1415926f</initializer>
+        <briefdescription>
+<para>
+|D. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="42" bodystart="41" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1a1" virt="normal" prot="public">
+        <type>const int</type>
+        <name>MAX_PATH_</name>
+        <initializer> 256</initializer>
+        <briefdescription>
+<para>
+oCAc\O\!\?\ePATH?IA1?\83Ê. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="43" bodystart="42" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1a2" virt="normal" prot="public">
+        <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+        <name>TIMER_INTERVAL</name>
+        <initializer> 32</initializer>
+        <briefdescription>
+<para>
+1\O\i!?\a?I\81ât\81LO(ms). </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="59" bodystart="58" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1a3" virt="normal" prot="public">
+        <type>const float</type>
+        <name>FRAME_SEC</name>
+        <initializer> 30.0f</initializer>
+        <briefdescription>
+<para>
+Frame Per Second (FPS). </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="61" bodystart="60" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+\\81E\1\A\aI?A\81\8b\81÷o\81LO. </para>
+    </briefdescription>
+    <detaileddescription>
+<para>
+?3?II?A\81\8b\81÷o\81LO?I!\81\91\\81E\1\A\a\e\?!?\1?I\\81\91\\81P\\81â\1?o1O?|\\81P\e\1?a!\81\91 ?E?I?e?|?EI?A\81\8b\81÷o\81LO?C?a\81âEIN?\83Ê?i?e\81LdEUAa?EAe?o?\81Ê3EC??\83Ê?i?T?1!\81\92 </para>
+    </detaileddescription>
+    <location file="J:/project/sfglib/AbstractSprite.h" line="38"/>
+  </compounddef>
+  <compounddef id="namespacesf_1_1system_1_1console" kind="namespace">
+    <compoundname>sf::system::console</compoundname>
+    <innerclass refid="structsf_1_1system_1_1console_1_1Color_1_1@0_1_1@1">sf::system::console::Color::@0::@1</innerclass>
+    <innerclass refid="unionsf_1_1system_1_1console_1_1Color_1_1@0">sf::system::console::Color::@0</innerclass>
+    <innerclass refid="classsf_1_1system_1_1console_1_1Background">sf::system::console::Background</innerclass>
+    <innerclass refid="classsf_1_1system_1_1console_1_1Background_1_1Map">sf::system::console::Background::Map</innerclass>
+    <innerclass refid="classsf_1_1system_1_1console_1_1Color">sf::system::console::Color</innerclass>
+    <innerclass refid="classsf_1_1system_1_1console_1_1Console">sf::system::console::Console</innerclass>
+    <innerclass refid="classsf_1_1system_1_1console_1_1ConsoleImpl">sf::system::console::ConsoleImpl</innerclass>
+    <innerclass refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData">sf::system::console::ConsoleImpl::TextQueueData</innerclass>
+    <innerclass refid="classsf_1_1system_1_1console_1_1Obj2D">sf::system::console::Obj2D</innerclass>
+    <innerclass refid="classsf_1_1system_1_1console_1_1Obj3D">sf::system::console::Obj3D</innerclass>
+    <innerclass refid="classsf_1_1system_1_1console_1_1Obj3DL">sf::system::console::Obj3DL</innerclass>
+    <innerclass refid="classsf_1_1system_1_1console_1_1Obj_1_1List">sf::system::console::Obj::List</innerclass>
+    <innerclass refid="classsf_1_1system_1_1console_1_1Obj">sf::system::console::Obj</innerclass>
+    <innerclass refid="classsf_1_1system_1_1console_1_1ObjQuadrangle">sf::system::console::ObjQuadrangle</innerclass>
+    <innerclass refid="classsf_1_1system_1_1console_1_1ObjRectangle">sf::system::console::ObjRectangle</innerclass>
+    <innerclass refid="structsf_1_1system_1_1console_1_1Vertex">sf::system::console::Vertex</innerclass>
+    <innerclass refid="structsf_1_1system_1_1console_1_1Vertex2">sf::system::console::Vertex2</innerclass>
+      <sectiondef kind="typedef">
+      <memberdef kind="typedef" id="namespacesf_1_1system_1_1console_1a0" virt="normal" prot="public">
+        <type>unsigned long</type>
+        <name>COLOR</name>
+        <briefdescription>
+<para>
+\\81á\e!?\81E??IAe\83ÊA. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="35" bodystart="35" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="typedef" id="namespacesf_1_1system_1_1console_1a11" virt="normal" prot="public">
+        <type>int</type>
+        <name>OBJNO</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="36" bodystart="36" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="enum">
+      <memberdef kind="enum" id="namespacesf_1_1system_1_1console_1a12" virt="normal" prot="public">
+        <name>DrawMode</name>
+        <enumvalue>
+          <name>DRAW_TRANS</name>
+        </enumvalue>
+        <enumvalue>
+          <name>DRAW_ADD</name>
+        </enumvalue>
+        <enumvalue>
+          <name>DRAW_ADD1</name>
+        </enumvalue>
+        <enumvalue>
+          <name>DRAW_SHADOW</name>
+        </enumvalue>
+        <enumvalue>
+          <name>DRAW_INV</name>
+        </enumvalue>
+        <enumvalue>
+          <name>DRAW_MUL</name>
+        </enumvalue>
+        <briefdescription>
+<para>
+\1\\81~\e\?\EEA2e\?\?\\81~. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+\1\\81~\e\?\E?IAc2a?eIy?o?E?I\?\?\\81~?C1O?|?\81á\81âOAe?\81E?T?1!\81\92 </para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="292" bodystart="292" bodyend="299"/>
+        <referencedby id="Console_8h_1a0">sf::system::console::Console::~Console</referencedby>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="var">
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1a1" virt="normal" prot="public">
+        <type>const int</type>
+        <name>TEXTURE_COUNT_MIN</name>
+        <initializer> 0</initializer>
+        <briefdescription>
+<para>
+\A\\81P\1\A\a!??o?IoC?RAI. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="120" bodystart="119" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1a2" virt="normal" prot="public">
+        <type>const int</type>
+        <name>TEXTURE_COUNT_MAX</name>
+        <initializer> 1024</initializer>
+        <briefdescription>
+<para>
+\A\\81P\1\A\a!??o?IoCAcAI. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="121" bodystart="120" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1a9" virt="normal" prot="public">
+        <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+        <name>VertexFVF</name>
+        <initializer> 
+                               (D3DFVF_XYZRHW | ///&lt; oAE\81C\81EI
+                               D3DFVF_DIFFUSE | ///&lt; \C\\81\92\O\a!?\o
+                               D3DFVF_SPECULAR | ///&lt; \1\U\-\a\e
+                               D3DFVF_TEX1 )</initializer>
+        <briefdescription>
+<para>
+\1\\81~\e\?\EIN \D!?\A\A\\81P\1\D\A\O\!?I\O\e\\81\8b. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="29" bodystart="25" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1a10" virt="normal" prot="public">
+        <type>const <ref idref="namespacesf_1a0">DWORD</ref></type>
+        <name>Vertex2FVF</name>
+        <initializer> (D3DFVF_DIFFUSE |  D3DFVF_SPECULAR | D3DFVF_XYZ | D3DFVF_TEX1)</initializer>
+        <briefdescription>
+<para>
+3D\1\\81~\e\?\EIN \D!?\A\A\\81P\1\D\A\O\!?I\O\e\\81\8b. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="41" bodystart="41" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+2eII\81LOI\81\91?I\\81P\e\1!|Ae?o. </para>
+    </briefdescription>
+    <detaileddescription>
+<para>
+2eII\81LOI\81\91?I\\81P\e\1!|Ae?o?I?1?U?A?I?3?II?A\81\8b\81÷o\81LO?E\81LT?T?i?T?1!\81\92 </para>
+    </detaileddescription>
+    <location file="J:/project/sfglib/AbstractSprite.h" line="39"/>
+  </compounddef>
+  <compounddef id="namespacesf_1_1system_1_1console_1_1font" kind="namespace">
+    <compoundname>sf::system::console::font</compoundname>
+      <sectiondef kind="var">
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1_1font_1a0" virt="normal" prot="public">
+        <type>const int</type>
+        <name>COUNT_MAX</name>
+        <initializer> 2</initializer>
+        <briefdescription>
+<para>
+\O\c\o\E?I?o. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="197" bodystart="196" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1_1font_1a1" virt="normal" prot="public">
+        <type>const int</type>
+        <name>TEXTURE_WIDTH</name>
+        <initializer> 128</initializer>
+        <briefdescription>
+<para>
+\O\c\o\E\O\A\E\T\A\\81~?IEy. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="198" bodystart="197" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1_1font_1a2" virt="normal" prot="public">
+        <type>const int</type>
+        <name>TEXTURE_HEIGHT</name>
+        <initializer> 64</initializer>
+        <briefdescription>
+<para>
+\O\c\o\E\O\A\E\T\A\\81~?I1a?\83Ê. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="199" bodystart="198" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1_1font_1a3" virt="normal" prot="public">
+        <type>const int</type>
+        <name>WIDTH</name>
+        <initializer> 8</initializer>
+        <briefdescription>
+<para>
+\O\c\o\E?IEy. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="200" bodystart="199" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1_1font_1a4" virt="normal" prot="public">
+        <type>const int</type>
+        <name>HEIGHT</name>
+        <initializer> 8</initializer>
+        <briefdescription>
+<para>
+\O\c\o\E?I1a?\83Ê. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="201" bodystart="200" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1_1font_1a5" virt="normal" prot="public">
+        <type>const char</type>
+        <name>FILE_PATH</name>
+        <initializer> {        &quot;media\\font1.png&quot;,
+                                       &quot;media\\font2.png&quot;
+                               }</initializer>
+        <briefdescription>
+<para>
+\O\c\o\E\O\!\?\e\I!?\aCUIo. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="205" bodystart="203" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+\O\c\o\E\81LOI\81\91 ?3?3?C???|\O\c\o\E?I!\81\91OS?\81Ê\81ây?A?a?I?C?I?E?\81P!\81\91AE?\81á?E\O\A\E\T\A\\81~?CEY\81ây?\81E?A???e?a?I?o?\83Ê?\81E?T?1!\81\92. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="J:/project/sfglib/Console.h" line="195"/>
+  </compounddef>
+  <compounddef id="namespacesf_1_1system_1_1console_1_1screen" kind="namespace">
+    <compoundname>sf::system::console::screen</compoundname>
+      <sectiondef kind="var">
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1_1screen_1a0" virt="normal" prot="public">
+        <type>const int</type>
+        <name>WIDTH</name>
+        <initializer> 640</initializer>
+        <briefdescription>
+<para>
+\1\\81P\e!?\o?IEy. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="106" bodystart="105" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1_1screen_1a1" virt="normal" prot="public">
+        <type>const int</type>
+        <name>HEIGHT</name>
+        <initializer> 480</initializer>
+        <briefdescription>
+<para>
+\1\\81P\e!?\o?I1a?\83Ê. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="107" bodystart="106" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+\1\\81P\e!?\o\81LOI\81\91. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="J:/project/sfglib/Console.h" line="104"/>
+  </compounddef>
+  <compounddef id="namespacesf_1_1system_1_1console_1_1sprite" kind="namespace">
+    <compoundname>sf::system::console::sprite</compoundname>
+    <innerclass refid="classsf_1_1system_1_1console_1_1sprite_1_1AbstractSprite">sf::system::console::sprite::AbstractSprite</innerclass>
+    <innerclass refid="structsf_1_1system_1_1console_1_1sprite_1_1Info">sf::system::console::sprite::Info</innerclass>
+    <innerclass refid="classsf_1_1system_1_1console_1_1sprite_1_1Sprite">sf::system::console::sprite::Sprite</innerclass>
+    <innerclass refid="classsf_1_1system_1_1console_1_1sprite_1_1Sprite2D">sf::system::console::sprite::Sprite2D</innerclass>
+    <innerclass refid="classsf_1_1system_1_1console_1_1sprite_1_1Sprite3D">sf::system::console::sprite::Sprite3D</innerclass>
+    <innerclass refid="classsf_1_1system_1_1console_1_1sprite_1_1SpriteMesh">sf::system::console::sprite::SpriteMesh</innerclass>
+      <sectiondef kind="typedef">
+      <memberdef kind="typedef" id="namespacesf_1_1system_1_1console_1_1sprite_1a2" virt="normal" prot="public">
+        <type>std::auto_ptr&lt; <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite">Sprite</ref> &gt;</type>
+        <name>PSprite</name>
+        <briefdescription>
+<para>
+<ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite">Sprite</ref>p.?I\1\T!?\E\Y\?\o\?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="189" bodystart="189" bodyend="-1"/>
+        <referencedby id="Console_8h_1a0">sf::system::console::sprite::Sprite::~Sprite</referencedby>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="enum">
+      <memberdef kind="enum" id="namespacesf_1_1system_1_1console_1_1sprite_1a6" virt="normal" prot="public">
+        <name>TYPE</name>
+        <enumvalue>
+          <name>SPRITE2D</name>
+        </enumvalue>
+        <enumvalue>
+          <name>SPRITE3D</name>
+        </enumvalue>
+        <enumvalue>
+          <name>MESH</name>
+        </enumvalue>
+        <briefdescription>
+<para>
+\1\\81~\e\?\E?I\?\?\\81~. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="136" bodystart="135" bodyend="140"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="var">
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1_1sprite_1a0" virt="normal" prot="public">
+        <type>const int</type>
+        <name>MIN</name>
+        <initializer> 0</initializer>
+        <briefdescription>
+<para>
+\1\\81~\e\?\E?ooC?RAI!c. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="132" bodystart="131" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1_1sprite_1a1" virt="normal" prot="public">
+        <type>const int</type>
+        <name>MAX</name>
+        <initializer> 1024</initializer>
+        <briefdescription>
+<para>
+\1\\81~\e\?\E?ooCAcAI. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="133" bodystart="132" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+\1\\81~\e\?\E\81LOI\81\91. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="J:/project/sfglib/AbstractSprite.h" line="40"/>
+  </compounddef>
+  <compounddef id="namespacesf_1_1system_1_1console_1_1text" kind="namespace">
+    <compoundname>sf::system::console::text</compoundname>
+      <sectiondef kind="var">
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1_1text_1a0" virt="normal" prot="public">
+        <type>const int</type>
+        <name>BUFFER_LENGTH</name>
+        <initializer> 1024</initializer>
+        <briefdescription>
+<para>
+\A\-\1\EEY\81ây\D\A\O\!?I\\83Ê\?\o. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="211" bodystart="210" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1_1text_1a1" virt="normal" prot="public">
+        <type>const float</type>
+        <name>COLUMN_PITCH</name>
+        <initializer> 8.0f</initializer>
+        <briefdescription>
+<para>
+\A\-\1\E?I\\81á\e\a\O\A\A. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="212" bodystart="211" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1_1text_1a2" virt="normal" prot="public">
+        <type>const float</type>
+        <name>LINE_PITCH</name>
+        <initializer> 10.0f</initializer>
+        <briefdescription>
+<para>
+\A\-\1\E?I1O\O\A\A. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="213" bodystart="212" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+\A\-\1\EAc\81Ca\81LOI\81\91. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="J:/project/sfglib/Console.h" line="209"/>
+  </compounddef>
+  <compounddef id="namespacesf_1_1system_1_1console_1_1viewport" kind="namespace">
+    <compoundname>sf::system::console::viewport</compoundname>
+      <sectiondef kind="var">
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1_1viewport_1a0" virt="normal" prot="public">
+        <type>const int</type>
+        <name>X</name>
+        <initializer> 120</initializer>
+        <briefdescription>
+<para>
+\O\a!?\Y!?\Eo\81CA? X. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="112" bodystart="111" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1_1viewport_1a1" virt="normal" prot="public">
+        <type>const int</type>
+        <name>Y</name>
+        <initializer> 0</initializer>
+        <briefdescription>
+<para>
+\O\a!?\Y!?\Eo\81CA? Y. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="113" bodystart="112" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1_1viewport_1a2" virt="normal" prot="public">
+        <type>const float</type>
+        <name>Z_MIN</name>
+        <initializer> 0.0f</initializer>
+        <briefdescription>
+<para>
+\O\a!?\Y!?\E\81\92UoC?R. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="114" bodystart="113" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1_1viewport_1a3" virt="normal" prot="public">
+        <type>const float</type>
+        <name>Z_MAX</name>
+        <initializer> 1.0f</initializer>
+        <briefdescription>
+<para>
+\O\a!?\Y!?\E\81\92UoCAc. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="115" bodystart="114" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1_1viewport_1a4" virt="normal" prot="public">
+        <type>const int</type>
+        <name>WIDTH</name>
+        <initializer> 400</initializer>
+        <briefdescription>
+<para>
+\O\a!?\Y!?\E?IEy. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="116" bodystart="115" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1console_1_1viewport_1a5" virt="normal" prot="public">
+        <type>const int</type>
+        <name>HEIGHT</name>
+        <initializer> 480</initializer>
+        <briefdescription>
+<para>
+\O\a!?\Y!?\E?I1a?\83Ê. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="117" bodystart="116" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+\O\a!?\Y!?\E\81LOI\81\91. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="J:/project/sfglib/Console.h" line="110"/>
+  </compounddef>
+  <compounddef id="namespacesf_1_1system_1_1input" kind="namespace">
+    <compoundname>sf::system::input</compoundname>
+    <innerclass refid="classsf_1_1system_1_1input_1_1Input">sf::system::input::Input</innerclass>
+    <innerclass refid="classsf_1_1system_1_1input_1_1InputImpl">sf::system::input::InputImpl</innerclass>
+    <innerclass refid="classsf_1_1system_1_1input_1_1Listener">sf::system::input::Listener</innerclass>
+    <briefdescription>
+<para>
+AtII?t?e?I\\81P\e\1!|Ae?o?E?E?I?1?U?A?3?3?E\81LT?T?i?T?1!\81\92. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="J:/project/sfglib/Input.cpp" line="40"/>
+  </compounddef>
+  <compounddef id="namespacesf_1_1system_1_1input_1_1keyboard" kind="namespace">
+    <compoundname>sf::system::input::keyboard</compoundname>
+    <innerclass refid="classsf_1_1system_1_1input_1_1keyboard_1_1Listener">sf::system::input::keyboard::Listener</innerclass>
+    <innerclass refid="classsf_1_1system_1_1input_1_1keyboard_1_1VKey">sf::system::input::keyboard::VKey</innerclass>
+      <sectiondef kind="enum">
+      <memberdef kind="enum" id="namespacesf_1_1system_1_1input_1_1keyboard_1a6" virt="normal" prot="public">
+        <name>EXTEND_KEYCODE</name>
+        <enumvalue>
+          <name>CONTROL</name>
+          <initializer> 0x1</initializer>
+        </enumvalue>
+        <enumvalue>
+          <name>SHIFT</name>
+          <initializer> 0x8</initializer>
+        </enumvalue>
+        <briefdescription>
+<para>
+AA?i\-!?\3!?\E. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="118" bodystart="118" bodyend="121"/>
+      </memberdef>
+      <memberdef kind="enum" id="namespacesf_1_1system_1_1input_1_1keyboard_1a7" virt="normal" prot="public">
+        <name>VIRTUAL_KEYCODE</name>
+        <enumvalue>
+          <name>VKEY_LEFT</name>
+          <initializer> 0x25</initializer>
+        </enumvalue>
+        <enumvalue>
+          <name>VKEY_UP</name>
+          <initializer> 0x26</initializer>
+        </enumvalue>
+        <enumvalue>
+          <name>VKEY_RIGHT</name>
+          <initializer> 0x27</initializer>
+        </enumvalue>
+        <enumvalue>
+          <name>VKEY_DOWN</name>
+          <initializer> 0x28</initializer>
+        </enumvalue>
+        <briefdescription>
+<para>
+2?AU\-!?\3!?\E. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="124" bodystart="124" bodyend="129"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+\-!?\U!?\E\81LOI\81\91?IAe?o!|\\81P\e\1?I?1?U?A?3?3?E\81LT?T?i?T?1!\81\92. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="J:/project/sfglib/Input.h" line="116"/>
+  </compounddef>
+  <compounddef id="namespacesf_1_1system_1_1input_1_1mouse" kind="namespace">
+    <compoundname>sf::system::input::mouse</compoundname>
+    <innerclass refid="classsf_1_1system_1_1input_1_1mouse_1_1Listener">sf::system::input::mouse::Listener</innerclass>
+      <sectiondef kind="enum">
+      <memberdef kind="enum" id="namespacesf_1_1system_1_1input_1_1mouse_1a5" virt="normal" prot="public">
+        <name>MKEY_CODE</name>
+        <enumvalue>
+          <name>MKEY_CONTROL</name>
+          <initializer> 0x1</initializer>
+        </enumvalue>
+        <enumvalue>
+          <name>MKEY_LBUTTON</name>
+          <initializer> 0x2</initializer>
+        </enumvalue>
+        <enumvalue>
+          <name>MKEY_RBUTTON</name>
+          <initializer> 0x4</initializer>
+        </enumvalue>
+        <enumvalue>
+          <name>MKEY_SHIFT</name>
+          <initializer> 0x8</initializer>
+        </enumvalue>
+        <enumvalue>
+          <name>WHEEL_MASK</name>
+          <initializer> 0xffff0000</initializer>
+        </enumvalue>
+        <briefdescription>
+<para>
+\T\|\1\?\U\o\E?CA\81}\81ât?E2!?\83Ê?i??\-!?\3!?\E?oIo\83Êo?1?e. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="29" bodystart="29" bodyend="35"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+\T\|\1\81LOI\81\91?I\\81P\e\1!|Ae?o?E?E?I?1?U?A?3?3?E\81LT?T?i?T?1. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="J:/project/sfglib/Input.h" line="27"/>
+  </compounddef>
+  <compounddef id="namespacesf_1_1system_1_1sound" kind="namespace">
+    <compoundname>sf::system::sound</compoundname>
+    <innerclass refid="structsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1_1Data">sf::system::sound::SoundImpl::Queue::Data</innerclass>
+    <innerclass refid="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue">sf::system::sound::SoundImpl::Queue</innerclass>
+    <innerclass refid="classsf_1_1system_1_1sound_1_1Sound">sf::system::sound::Sound</innerclass>
+    <innerclass refid="classsf_1_1system_1_1sound_1_1SoundImpl">sf::system::sound::SoundImpl</innerclass>
+      <sectiondef kind="enum">
+      <memberdef kind="enum" id="namespacesf_1_1system_1_1sound_1a5" virt="normal" prot="public">
+        <name>TYPE</name>
+        <enumvalue>
+          <name>NONE</name>
+        </enumvalue>
+        <enumvalue>
+          <name>TEST</name>
+        </enumvalue>
+        <briefdescription>
+<para>
+\\83Ê\|\o\E?I\?\?\\81~. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="28" bodystart="27" bodyend="31"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="var">
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1sound_1a0" virt="normal" prot="public">
+        <type>const int</type>
+        <name>OBJECT_MAX</name>
+        <initializer> 128</initializer>
+        <briefdescription>
+<para>
+\\83Ê\|\o\E\a\O\\81C\\81\98\\81P\E?IoCAc?o. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="25" bodystart="24" bodyend="-1"/>
+        <referencedby id="SoundImpl_8cpp_1a2">sf::system::sound::SoundImpl::load</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a0">sf::system::sound::SoundImpl::SoundImpl</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a4">sf::system::sound::SoundImpl::unload</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1sound_1a1" virt="normal" prot="public">
+        <type>const int</type>
+        <name>LOAD_ERROR</name>
+        <initializer> -1</initializer>
+        <briefdescription>
+<para>
+\i!?\E\\81N\e!?. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="26" bodystart="25" bodyend="-1"/>
+        <referencedby id="SoundImpl_8cpp_1a3">sf::system::sound::SoundImpl::load</referencedby>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1sound_1a4" virt="normal" prot="public">
+        <type>const int</type>
+        <name>Q_MAX</name>
+        <initializer> 32</initializer>
+        <briefdescription>
+<para>
+\\83Ê\|\o\E\-\a!?\D\A\O\!?I?o. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="27" bodystart="26" bodyend="-1"/>
+        <referencedby id="SoundImpl_8cpp_1a2">sf::system::sound::SoundImpl::Queue::get</referencedby>
+        <referencedby id="SoundImpl_8cpp_1a3">sf::system::sound::SoundImpl::Queue::set</referencedby>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+\\83Ê\|\o\E\81LO\81E\81C?I\\81P\e\1!|Ae?o?E?E?I?1?U?A?3?3?E\81LT?T?i?T?1!\81\92. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="J:/project/sfglib/Sound.cpp" line="34"/>
+  </compounddef>
+  <compounddef id="namespacesf_1_1system_1_1sound_1_1volume" kind="namespace">
+    <compoundname>sf::system::sound::volume</compoundname>
+      <sectiondef kind="var">
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1sound_1_1volume_1a0" virt="normal" prot="public">
+        <type>const int</type>
+        <name>MAX</name>
+        <initializer> 0</initializer>
+        <briefdescription>
+<para>
+oCAc2\81âII. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="36" bodystart="35" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="variable" id="namespacesf_1_1system_1_1sound_1_1volume_1a1" virt="normal" prot="public">
+        <type>const int</type>
+        <name>MIN</name>
+        <initializer> -9600</initializer>
+        <briefdescription>
+<para>
+oC?R2\81âII. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="37" bodystart="36" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+\\83Ê\|\o\E!|\U\e\a!?\a. </para>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <location file="J:/project/sfglib/Sound.h" line="34"/>
+  </compounddef>
+  <compounddef id="AbstractSprite_8cpp" kind="file">
+    <compoundname>AbstractSprite.cpp</compoundname>
+    <includes id="sfdebug_8h" local="yes">sfdebug.h</includes>
+    <includes local="no">stdio.h</includes>
+    <includes local="no">queue</includes>
+    <includes local="yes">windows.h</includes>
+    <includes local="yes">windowsx.h</includes>
+    <includes local="yes">d3d8.h</includes>
+    <includes local="yes">d3dx8.h</includes>
+    <includes id="dxerr8sf_8h" local="yes">dxerr8sf.h</includes>
+    <includes local="yes">exception.h</includes>
+    <includes local="yes">sound.h</includes>
+    <includes id="System_8h" local="yes">System.h</includes>
+    <includes local="yes">console.h</includes>
+    <includes id="Obj_8h" local="yes">Obj.h</includes>
+    <includes id="Obj2D_8h" local="yes">Obj2D.h</includes>
+    <includes id="ObjRectangle_8h" local="yes">ObjRectangle.h</includes>
+    <includes id="ObjQuadrangle_8h" local="yes">ObjQuadrangle.h</includes>
+    <includes id="Obj3D_8h" local="yes">Obj3D.h</includes>
+    <includes id="Obj3DL_8h" local="yes">Obj3DL.h</includes>
+    <includes local="yes">input.h</includes>
+    <includes id="AbstractSprite_8h" local="yes">AbstractSprite.h</includes>
+    <includes id="ConsoleImpl_8h" local="yes">ConsoleImpl.h</includes>
+    <includes id="Main_8h" local="yes">Main.h</includes>
+    <incdepgraph>
+      <node id="133">
+        <label>dxerr8.h</label>
+      </node>
+      <node id="127">
+        <label>queue</label>
+      </node>
+      <node id="128">
+        <label>windows.h</label>
+      </node>
+      <node id="136">
+        <label>System.h</label>
+        <link id="System_8h"/>
+        <childnode id="137" relation="public-inheritance">
+        </childnode>
+        <childnode id="138" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="129">
+        <label>windowsx.h</label>
+      </node>
+      <node id="137">
+        <label>string</label>
+      </node>
+      <node id="150">
+        <label>ConsoleImpl.h</label>
+        <link id="ConsoleImpl_8h"/>
+        <childnode id="138" relation="public-inheritance">
+        </childnode>
+        <childnode id="148" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="132">
+        <label>dxerr8sf.h</label>
+        <link id="dxerr8sf_8h-source"/>
+        <childnode id="133" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="125">
+        <label>sfdebug.h</label>
+        <link id="sfdebug_8h"/>
+      </node>
+      <node id="147">
+        <label>AbstractSprite.h</label>
+        <link id="AbstractSprite_8h-source"/>
+        <childnode id="138" relation="public-inheritance">
+        </childnode>
+        <childnode id="148" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="146">
+        <label>input.h</label>
+      </node>
+      <node id="138">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="135">
+        <label>sound.h</label>
+      </node>
+      <node id="148">
+        <label>Console.h</label>
+        <link id="Console_8h"/>
+        <childnode id="149" relation="public-inheritance">
+        </childnode>
+        <childnode id="138" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="139">
+        <label>console.h</label>
+      </node>
+      <node id="144">
+        <label>Obj3D.h</label>
+        <link id="Obj3D_8h-source"/>
+        <childnode id="138" relation="public-inheritance">
+        </childnode>
+        <childnode id="140" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="141">
+        <label>Obj2D.h</label>
+        <link id="Obj2D_8h-source"/>
+        <childnode id="138" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="142">
+        <label>ObjRectangle.h</label>
+        <link id="ObjRectangle_8h-source"/>
+        <childnode id="138" relation="public-inheritance">
+        </childnode>
+        <childnode id="140" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="145">
+        <label>Obj3DL.h</label>
+        <link id="Obj3DL_8h-source"/>
+        <childnode id="138" relation="public-inheritance">
+        </childnode>
+        <childnode id="144" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="140">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="138" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="143">
+        <label>ObjQuadrangle.h</label>
+        <link id="ObjQuadrangle_8h-source"/>
+        <childnode id="138" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="130">
+        <label>d3d8.h</label>
+      </node>
+      <node id="124">
+        <label>AbstractSprite.cpp</label>
+        <link id="AbstractSprite.cpp"/>
+        <childnode id="125" relation="public-inheritance">
+        </childnode>
+        <childnode id="126" relation="public-inheritance">
+        </childnode>
+        <childnode id="127" relation="public-inheritance">
+        </childnode>
+        <childnode id="128" relation="public-inheritance">
+        </childnode>
+        <childnode id="129" relation="public-inheritance">
+        </childnode>
+        <childnode id="130" relation="public-inheritance">
+        </childnode>
+        <childnode id="131" relation="public-inheritance">
+        </childnode>
+        <childnode id="132" relation="public-inheritance">
+        </childnode>
+        <childnode id="134" relation="public-inheritance">
+        </childnode>
+        <childnode id="135" relation="public-inheritance">
+        </childnode>
+        <childnode id="136" relation="public-inheritance">
+        </childnode>
+        <childnode id="139" relation="public-inheritance">
+        </childnode>
+        <childnode id="140" relation="public-inheritance">
+        </childnode>
+        <childnode id="141" relation="public-inheritance">
+        </childnode>
+        <childnode id="142" relation="public-inheritance">
+        </childnode>
+        <childnode id="143" relation="public-inheritance">
+        </childnode>
+        <childnode id="144" relation="public-inheritance">
+        </childnode>
+        <childnode id="145" relation="public-inheritance">
+        </childnode>
+        <childnode id="146" relation="public-inheritance">
+        </childnode>
+        <childnode id="147" relation="public-inheritance">
+        </childnode>
+        <childnode id="150" relation="public-inheritance">
+        </childnode>
+        <childnode id="151" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="151">
+        <label>Main.h</label>
+        <link id="Main_8h-source"/>
+      </node>
+      <node id="134">
+        <label>exception.h</label>
+      </node>
+      <node id="131">
+        <label>d3dx8.h</label>
+      </node>
+      <node id="126">
+        <label>stdio.h</label>
+      </node>
+      <node id="149">
+        <label>memory</label>
+      </node>
+    </incdepgraph>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// AbstractSprite.cpp: AbstractSprite \\81P\e\1?I\?\o\\81~\e\a\o\A!?\\81E\c\o</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  IuIo!\81\98</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// $Log: AbstractSprite.cpp,v $</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:34  fujiwara</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// Revision 1.4  2001/07/09 20:30:07  fujiwara</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// Revision 1.3  2001/07/01 21:30:33  fujiwara</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// \a\a\e\e!?\\81P\A\\81\98\A\\81P\81C\81áA??\81E</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:48:13  fujiwara</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment">#pragma warning( disable : 4786 )  //STL?I\81EU1d3\81\8b?\81E</highlight></codeline>
+<linenumber line="23"/><codeline></codeline>
+<linenumber line="24"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="sfdebug_8h">sfdebug.h</ref>&quot;</highlight></codeline>
+<linenumber line="26"/><codeline></codeline>
+<linenumber line="27"/><codeline><highlight class="comment">// SYSTEM INCLUDES</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="preprocessor">#include &lt;stdio.h&gt;</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor">#include &lt;queue&gt;</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor">#include &quot;windows.h&quot;</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor">#include &quot;windowsx.h&quot;</highlight></codeline>
+<linenumber line="33"/><codeline></codeline>
+<linenumber line="34"/><codeline><highlight class="preprocessor">#include &quot;d3d8.h&quot;</highlight></codeline>
+<linenumber line="35"/><codeline><highlight class="preprocessor">#include &quot;d3dx8.h&quot;</highlight></codeline>
+<linenumber line="36"/><codeline><highlight class="preprocessor">#include &quot;dxerr8sf.h&quot;</highlight></codeline>
+<linenumber line="37"/><codeline></codeline>
+<linenumber line="38"/><codeline><highlight class="comment">// PROJECT INCLUDES</highlight></codeline>
+<linenumber line="39"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="40"/><codeline></codeline>
+<linenumber line="41"/><codeline></codeline>
+<linenumber line="42"/><codeline><highlight class="preprocessor">#include &quot;exception.h&quot;</highlight></codeline>
+<linenumber line="43"/><codeline><highlight class="preprocessor">#include &quot;sound.h&quot;</highlight></codeline>
+<linenumber line="44"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="System_8h">System.h</ref>&quot;</highlight></codeline>
+<linenumber line="45"/><codeline><highlight class="preprocessor">#include &quot;console.h&quot;</highlight></codeline>
+<linenumber line="46"/><codeline></codeline>
+<linenumber line="47"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="48"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define new DEBUG_NEW</highlight></codeline>
+<linenumber line="49"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="50"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="51"/><codeline><highlight class="preprocessor">#include &quot;Obj.h&quot;</highlight></codeline>
+<linenumber line="52"/><codeline><highlight class="preprocessor">#include &quot;Obj2D.h&quot;</highlight></codeline>
+<linenumber line="53"/><codeline><highlight class="preprocessor">#include &quot;ObjRectangle.h&quot;</highlight></codeline>
+<linenumber line="54"/><codeline><highlight class="preprocessor">#include &quot;ObjQuadrangle.h&quot;</highlight></codeline>
+<linenumber line="55"/><codeline><highlight class="preprocessor">#include &quot;Obj3D.h&quot;</highlight></codeline>
+<linenumber line="56"/><codeline><highlight class="preprocessor">#include &quot;Obj3DL.h&quot;</highlight></codeline>
+<linenumber line="57"/><codeline><highlight class="preprocessor">#include &quot;input.h&quot;</highlight></codeline>
+<linenumber line="58"/><codeline><highlight class="preprocessor">#include &quot;AbstractSprite.h&quot;</highlight></codeline>
+<linenumber line="59"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="ConsoleImpl_8h">ConsoleImpl.h</ref>&quot;</highlight></codeline>
+<linenumber line="60"/><codeline><highlight class="preprocessor">#include &quot;Main.h&quot;</highlight></codeline>
+<linenumber line="61"/><codeline></codeline>
+<linenumber line="62"/><codeline><highlight class="comment">//template class SFDLL std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt;;</highlight></codeline>
+<linenumber line="63"/><codeline></codeline>
+<linenumber line="64"/><codeline><highlight class="keyword">using</highlight> <highlight class="keyword">namespace </highlight>sf::system::console;</codeline>
+<linenumber line="65"/><codeline>using namespace sf::system::console::sprite;</codeline>
+<linenumber line="66"/><codeline></codeline>
+<linenumber line="68"/><codeline><highlight class="comment">// 1?AU/?AIC</highlight></codeline>
+<linenumber line="70"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="71"/><codeline>AbstractSprite::AbstractSprite()</codeline>
+<linenumber line="72"/><codeline>{</codeline>
+<linenumber line="73"/><codeline><highlight class="comment">// mpSpriteVtBuf = NULL;</highlight></codeline>
+<linenumber line="74"/><codeline><highlight class="comment">// mpSpriteTexture = NULL;</highlight></codeline>
+<linenumber line="75"/><codeline><highlight class="comment">// mpSprite3DVtBuf = NULL;</highlight></codeline>
+<linenumber line="76"/><codeline>      mpD3DDevice = NULL;</codeline>
+<linenumber line="77"/><codeline>      mbUse = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="78"/><codeline>      mCenterX = mCenterY = 0.0f;</codeline>
+<linenumber line="79"/><codeline>      mWidth = mHeight = 0.0f;</codeline>
+<linenumber line="80"/><codeline><highlight class="comment">// mpMeshMaterials = NULL;</highlight></codeline>
+<linenumber line="81"/><codeline><highlight class="comment">// mpMeshTextures = NULL;</highlight></codeline>
+<linenumber line="82"/><codeline><highlight class="comment">// mNumMaterials = 0L; </highlight></codeline>
+<linenumber line="83"/><codeline><highlight class="comment">// mpMesh = NULL;</highlight></codeline>
+<linenumber line="84"/><codeline><highlight class="comment">// mCellWidth = 0.0f;</highlight></codeline>
+<linenumber line="85"/><codeline><highlight class="comment">// mCellHeight = 0.0f;</highlight></codeline>
+<linenumber line="86"/><codeline><highlight class="comment">// mCellCount = 0;</highlight></codeline>
+<linenumber line="87"/><codeline>}</codeline>
+<linenumber line="88"/><codeline></codeline>
+<linenumber line="89"/><codeline>AbstractSprite::~AbstractSprite()</codeline>
+<linenumber line="90"/><codeline>{</codeline>
+<linenumber line="91"/><codeline></codeline>
+<linenumber line="92"/><codeline>}</codeline>
+<linenumber line="93"/><codeline></codeline>
+<linenumber line="94"/><codeline><highlight class="comment">// EA2eIN\i\o\A\e\o\\81\8b\1\A!?\E?IAsAe --------------------------------------------</highlight></codeline>
+<linenumber line="95"/><codeline><highlight class="keywordtype">void</highlight> AbstractSprite::setRenderState(<highlight class="keyword">const</highlight> <ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref> value)</codeline>
+<linenumber line="96"/><codeline>{</codeline>
+<linenumber line="97"/><codeline>              <highlight class="keywordflow">switch</highlight> (value)</codeline>
+<linenumber line="98"/><codeline>              {</codeline>
+<linenumber line="99"/><codeline>              <highlight class="keywordflow">case</highlight> <ref idref="namespacesf_1_1system_1_1console_1a12a3">DRAW_TRANS</ref>:</codeline>
+<linenumber line="100"/><codeline>                     mpD3DDevice-&gt;SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);</codeline>
+<linenumber line="101"/><codeline>                     mpD3DDevice-&gt;SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);</codeline>
+<linenumber line="102"/><codeline>                     <highlight class="keywordflow">break</highlight>;</codeline>
+<linenumber line="103"/><codeline>             <highlight class="keywordflow">case</highlight> <ref idref="namespacesf_1_1system_1_1console_1a12a4">DRAW_ADD</ref>:</codeline>
+<linenumber line="104"/><codeline>                     mpD3DDevice-&gt;SetRenderState(D3DRS_SRCBLEND,D3DBLEND_ONE);</codeline>
+<linenumber line="105"/><codeline>                     mpD3DDevice-&gt;SetRenderState(D3DRS_DESTBLEND,D3DBLEND_ONE);</codeline>
+<linenumber line="106"/><codeline>                     <highlight class="keywordflow">break</highlight>;</codeline>
+<linenumber line="107"/><codeline>             <highlight class="keywordflow">case</highlight> <ref idref="namespacesf_1_1system_1_1console_1a12a5">DRAW_ADD1</ref>:</codeline>
+<linenumber line="108"/><codeline>                     mpD3DDevice-&gt;SetRenderState(D3DRS_SRCBLEND,D3DBLEND_ONE);</codeline>
+<linenumber line="109"/><codeline>                     mpD3DDevice-&gt;SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);</codeline>
+<linenumber line="110"/><codeline>                     <highlight class="keywordflow">break</highlight>;</codeline>
+<linenumber line="111"/><codeline>             <highlight class="keywordflow">case</highlight> <ref idref="namespacesf_1_1system_1_1console_1a12a6">DRAW_SHADOW</ref>:</codeline>
+<linenumber line="112"/><codeline>                     mpD3DDevice-&gt;SetRenderState(D3DRS_SRCBLEND,D3DBLEND_ZERO);</codeline>
+<linenumber line="113"/><codeline>                     mpD3DDevice-&gt;SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);</codeline>
+<linenumber line="114"/><codeline>                     <highlight class="keywordflow">break</highlight>;</codeline>
+<linenumber line="115"/><codeline>             <highlight class="keywordflow">case</highlight> <ref idref="namespacesf_1_1system_1_1console_1a12a7">DRAW_INV</ref>:</codeline>
+<linenumber line="116"/><codeline>                     mpD3DDevice-&gt;SetRenderState(D3DRS_SRCBLEND,D3DBLEND_INVSRCCOLOR);</codeline>
+<linenumber line="117"/><codeline>                     mpD3DDevice-&gt;SetRenderState(D3DRS_DESTBLEND,D3DBLEND_ZERO);</codeline>
+<linenumber line="118"/><codeline>                     <highlight class="keywordflow">break</highlight>;</codeline>
+<linenumber line="119"/><codeline>             <highlight class="keywordflow">case</highlight> <ref idref="namespacesf_1_1system_1_1console_1a12a8">DRAW_MUL</ref>:</codeline>
+<linenumber line="120"/><codeline>                     mpD3DDevice-&gt;SetRenderState(D3DRS_SRCBLEND,D3DBLEND_ZERO);</codeline>
+<linenumber line="121"/><codeline>                     mpD3DDevice-&gt;SetRenderState(D3DRS_DESTBLEND,D3DBLEND_SRCCOLOR);</codeline>
+<linenumber line="122"/><codeline>                     <highlight class="keywordflow">break</highlight>;</codeline>
+<linenumber line="123"/><codeline>             }</codeline>
+<linenumber line="124"/><codeline></codeline>
+<linenumber line="125"/><codeline>}<highlight class="comment">// setRenderState</highlight></codeline>
+<linenumber line="126"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/AbstractSprite.cpp"/>
+  </compounddef>
+  <compounddef id="AbstractSprite_8h" kind="file">
+    <compoundname>AbstractSprite.h</compoundname>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includes id="Console_8h" local="yes">Console.h</includes>
+    <includedby id="AbstractSprite_8cpp" local="yes">AbstractSprite.cpp</includedby>
+    <includedby id="ConsoleImpl_8cpp" local="yes">ConsoleImpl.cpp</includedby>
+    <includedby id="Sprite3D_8h" local="yes">Sprite3D.h</includedby>
+    <includedby id="SpriteMesh_8h" local="yes">SpriteMesh.h</includedby>
+    <includedby id="InputImpl_8cpp" local="yes">InputImpl.cpp</includedby>
+    <includedby id="sfglib_8cpp" local="yes">sfglib.cpp</includedby>
+    <includedby id="Sprite2D_8cpp" local="yes">Sprite2D.cpp</includedby>
+    <includedby id="Sprite3D_8cpp" local="yes">Sprite3D.cpp</includedby>
+    <includedby id="SpriteMesh_8cpp" local="yes">SpriteMesh.cpp</includedby>
+    <includedby id="System_8cpp" local="yes">System.cpp</includedby>
+    <includedby id="SystemImpl_8cpp" local="yes">SystemImpl.cpp</includedby>
+    <incdepgraph>
+      <node id="153">
+        <label>AbstractSprite.h</label>
+        <link id="AbstractSprite.h"/>
+        <childnode id="154" relation="public-inheritance">
+        </childnode>
+        <childnode id="155" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="154">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="155">
+        <label>Console.h</label>
+        <link id="Console_8h"/>
+        <childnode id="156" relation="public-inheritance">
+        </childnode>
+        <childnode id="154" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="156">
+        <label>memory</label>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="165">
+        <label>sfglib.cpp</label>
+        <link id="sfglib_8cpp-source"/>
+      </node>
+      <node id="166">
+        <label>Sprite2D.cpp</label>
+        <link id="Sprite2D_8cpp-source"/>
+      </node>
+      <node id="168">
+        <label>SystemImpl.cpp</label>
+        <link id="SystemImpl_8cpp-source"/>
+      </node>
+      <node id="164">
+        <label>InputImpl.cpp</label>
+        <link id="InputImpl_8cpp-source"/>
+      </node>
+      <node id="157">
+        <label>AbstractSprite.h</label>
+        <link id="AbstractSprite.h"/>
+        <childnode id="158" relation="public-inheritance">
+        </childnode>
+        <childnode id="159" relation="public-inheritance">
+        </childnode>
+        <childnode id="160" relation="public-inheritance">
+        </childnode>
+        <childnode id="162" relation="public-inheritance">
+        </childnode>
+        <childnode id="164" relation="public-inheritance">
+        </childnode>
+        <childnode id="165" relation="public-inheritance">
+        </childnode>
+        <childnode id="166" relation="public-inheritance">
+        </childnode>
+        <childnode id="161" relation="public-inheritance">
+        </childnode>
+        <childnode id="163" relation="public-inheritance">
+        </childnode>
+        <childnode id="167" relation="public-inheritance">
+        </childnode>
+        <childnode id="168" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="162">
+        <label>SpriteMesh.h</label>
+        <link id="SpriteMesh_8h-source"/>
+        <childnode id="159" relation="public-inheritance">
+        </childnode>
+        <childnode id="163" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="159">
+        <label>ConsoleImpl.cpp</label>
+        <link id="ConsoleImpl_8cpp-source"/>
+      </node>
+      <node id="163">
+        <label>SpriteMesh.cpp</label>
+        <link id="SpriteMesh_8cpp-source"/>
+      </node>
+      <node id="167">
+        <label>System.cpp</label>
+        <link id="System_8cpp-source"/>
+      </node>
+      <node id="160">
+        <label>Sprite3D.h</label>
+        <link id="Sprite3D_8h-source"/>
+        <childnode id="159" relation="public-inheritance">
+        </childnode>
+        <childnode id="161" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="158">
+        <label>AbstractSprite.cpp</label>
+        <link id="AbstractSprite_8cpp-source"/>
+      </node>
+      <node id="161">
+        <label>Sprite3D.cpp</label>
+        <link id="Sprite3D_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console">sf::system::console</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console_1_1sprite">sf::system::console::sprite</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="AbstractSprite_8h_1a0" virt="normal" prot="public">
+        <name>AFX_ABSTRACTSPRITE_H__13F6E957_5370_42BC_B5F5_FEF71D80C1DE__INCLUDED_</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/AbstractSprite.h" line="27" bodystart="27" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// AbstractSprite.h: AbstractSprite \\81P\e\1?I\?\o\?!?\O\\81\98\?\1</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  IuIo!\81\98</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// $Log: AbstractSprite.h,v $</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// Revision 1.3  2001/11/06 21:27:42  fujiwara</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// AcEy11?\81EA\81\8b\D\A\\81P\\81\91\A\\81~</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// Revision 1.2  2001/10/28 21:35:56  fujiwara</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:34  fujiwara</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">// Revision 1.3  2001/07/09 20:30:07  fujiwara</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:48:13  fujiwara</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor">#if !defined(AFX_ABSTRACTSPRITE_H__13F6E957_5370_42BC_B5F5_FEF71D80C1DE__INCLUDED_)</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_ABSTRACTSPRITE_H__13F6E957_5370_42BC_B5F5_FEF71D80C1DE__INCLUDED_</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="Console_8h">Console.h</ref>&quot;</highlight></codeline>
+<linenumber line="34"/><codeline></codeline>
+<linenumber line="35"/><codeline><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="36"/><codeline></codeline>
+<linenumber line="37" refid="namespacesf_1"/><codeline><highlight class="keyword">namespace </highlight>sf{</codeline>
+<linenumber line="38" refid="namespacesf_1_1system_1"/><codeline>      <highlight class="keyword">namespace </highlight>system{</codeline>
+<linenumber line="39" refid="namespacesf_1_1system_1_1console_1"/><codeline>           <highlight class="keyword">namespace </highlight>console {</codeline>
+<linenumber line="40" refid="namespacesf_1_1system_1_1console_1_1sprite_1"/><codeline>                 <highlight class="keyword">namespace </highlight>sprite {</codeline>
+<linenumber line="41"/><codeline></codeline>
+<linenumber line="42"/><codeline><highlight class="comment">// </highlight></codeline>
+<linenumber line="43"/><codeline><highlight class="comment">// </highlight></codeline>
+<linenumber line="44"/><codeline><highlight class="keyword">class </highlight>AbstractSprite : <highlight class="keyword">public</highlight> Sprite  </codeline>
+<linenumber line="45"/><codeline>{</codeline>
+<linenumber line="46"/><codeline><highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="47"/><codeline>      AbstractSprite();</codeline>
+<linenumber line="48"/><codeline>      <highlight class="keyword">virtual</highlight> ~AbstractSprite();</codeline>
+<linenumber line="49"/><codeline>      <highlight class="comment">// OPERATIONS //</highlight></codeline>
+<linenumber line="50"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> initialize(<highlight class="keywordtype">void</highlight>) = 0;</codeline>
+<linenumber line="51"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> initialize(LPDIRECT3DDEVICE8     pD3DDevice) = 0;</codeline>
+<linenumber line="52"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> uninitialize(<highlight class="keywordtype">void</highlight>) = 0;</codeline>
+<linenumber line="53"/><codeline></codeline>
+<linenumber line="54"/><codeline>      <highlight class="comment">// \A\\81P\1\A\a\O\!\?\e?I\i!?\E</highlight></codeline>
+<linenumber line="55"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> load(<highlight class="keyword">const</highlight> sprite::Info *pInfo,<highlight class="keyword">const</highlight> D3DFORMAT textureFormat,<highlight class="keyword">const</highlight> COLOR color) = 0;</codeline>
+<linenumber line="56"/><codeline></codeline>
+<linenumber line="57"/><codeline>      <highlight class="comment">// EA2eIN\i\o\A\e\o\\81\8b\1\A!?\E?IAsAe</highlight></codeline>
+<linenumber line="58"/><codeline>      <highlight class="keywordtype">void</highlight> setRenderState(<highlight class="keyword">const</highlight> <ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref> value);</codeline>
+<linenumber line="59"/><codeline>      </codeline>
+<linenumber line="60"/><codeline>      <highlight class="comment">// ACCESS //</highlight></codeline>
+<linenumber line="61"/><codeline></codeline>
+<linenumber line="62"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> use(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mbUse;};</codeline>
+<linenumber line="63"/><codeline>      <highlight class="keywordtype">void</highlight> use(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> value){mbUse = value;};</codeline>
+<linenumber line="64"/><codeline>      </codeline>
+<linenumber line="65"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> width(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mWidth;};</codeline>
+<linenumber line="66"/><codeline>      <highlight class="keywordtype">void</highlight>  width(<highlight class="keyword">const</highlight> value) {mWidth = value;};</codeline>
+<linenumber line="67"/><codeline>      </codeline>
+<linenumber line="68"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> height(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mHeight;};</codeline>
+<linenumber line="69"/><codeline>      <highlight class="keywordtype">void</highlight> height(<highlight class="keyword">const</highlight> value) {mHeight = value;};</codeline>
+<linenumber line="70"/><codeline></codeline>
+<linenumber line="71"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> centerX(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mCenterX;};</codeline>
+<linenumber line="72"/><codeline>      <highlight class="keywordtype">void</highlight> centerX(<highlight class="keyword">const</highlight> value) {mCenterX = value;};</codeline>
+<linenumber line="73"/><codeline></codeline>
+<linenumber line="74"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> centerY(<highlight class="keywordtype">void</highlight>)  <highlight class="keyword">const</highlight> {<highlight class="keywordflow">return</highlight> mCenterY;};</codeline>
+<linenumber line="75"/><codeline>      <highlight class="keywordtype">void</highlight> centerY(<highlight class="keyword">const</highlight> value) {mCenterY = value;};</codeline>
+<linenumber line="76"/><codeline></codeline>
+<linenumber line="77"/><codeline></codeline>
+<linenumber line="78"/><codeline>      <highlight class="comment">// INQUIRY //</highlight></codeline>
+<linenumber line="79"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> isUsed()<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mbUse;};</codeline>
+<linenumber line="80"/><codeline><highlight class="keyword">protected</highlight>:</codeline>
+<linenumber line="81"/><codeline></codeline>
+<linenumber line="82"/><codeline>      <highlight class="keywordtype">bool</highlight> mbUse;</codeline>
+<linenumber line="83"/><codeline>      LPDIRECT3DDEVICE8               mpD3DDevice;</codeline>
+<linenumber line="84"/><codeline></codeline>
+<linenumber line="85"/><codeline>      <highlight class="keywordtype">float</highlight> mWidth;</codeline>
+<linenumber line="86"/><codeline>      <highlight class="keywordtype">float</highlight> mHeight;</codeline>
+<linenumber line="87"/><codeline>      <highlight class="keywordtype">float</highlight> mCenterX;</codeline>
+<linenumber line="88"/><codeline>      <highlight class="keywordtype">float</highlight> mCenterY;</codeline>
+<linenumber line="89"/><codeline></codeline>
+<linenumber line="90"/><codeline>      TYPE                    mType;</codeline>
+<linenumber line="91"/><codeline></codeline>
+<linenumber line="92"/><codeline>};</codeline>
+<linenumber line="93"/><codeline>                      }</codeline>
+<linenumber line="94"/><codeline>              }</codeline>
+<linenumber line="95"/><codeline>      }</codeline>
+<linenumber line="96"/><codeline>}</codeline>
+<linenumber line="97"/><codeline>}</codeline>
+<linenumber line="98"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_ABSTRACTSPRITE_H__13F6E957_5370_42BC_B5F5_FEF71D80C1DE__INCLUDED_)</highlight></codeline>
+<linenumber line="99"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/AbstractSprite.h"/>
+  </compounddef>
+  <compounddef id="BackGround_8cpp" kind="file">
+    <compoundname>BackGround.cpp</compoundname>
+    <includes id="sfdebug_8h" local="yes">sfdebug.h</includes>
+    <includes local="yes">stdio.h</includes>
+    <includes local="no">string</includes>
+    <includes local="no">iostream</includes>
+    <includes local="no">fstream</includes>
+    <includes local="no">vector</includes>
+    <includes local="yes">exception.h</includes>
+    <includes local="yes">system.h</includes>
+    <includes local="yes">console.h</includes>
+    <includes id="Obj_8h" local="yes">Obj.h</includes>
+    <includes id="Obj2D_8h" local="yes">Obj2D.h</includes>
+    <includes id="ObjRectangle_8h" local="yes">ObjRectangle.h</includes>
+    <includes id="ObjQuadrangle_8h" local="yes">ObjQuadrangle.h</includes>
+    <includes id="BackGround_8h" local="yes">BackGround.h</includes>
+    <incdepgraph>
+      <node id="169">
+        <label>BackGround.cpp</label>
+        <link id="BackGround.cpp"/>
+        <childnode id="170" relation="public-inheritance">
+        </childnode>
+        <childnode id="171" relation="public-inheritance">
+        </childnode>
+        <childnode id="172" relation="public-inheritance">
+        </childnode>
+        <childnode id="173" relation="public-inheritance">
+        </childnode>
+        <childnode id="174" relation="public-inheritance">
+        </childnode>
+        <childnode id="175" relation="public-inheritance">
+        </childnode>
+        <childnode id="176" relation="public-inheritance">
+        </childnode>
+        <childnode id="177" relation="public-inheritance">
+        </childnode>
+        <childnode id="178" relation="public-inheritance">
+        </childnode>
+        <childnode id="179" relation="public-inheritance">
+        </childnode>
+        <childnode id="181" relation="public-inheritance">
+        </childnode>
+        <childnode id="182" relation="public-inheritance">
+        </childnode>
+        <childnode id="183" relation="public-inheritance">
+        </childnode>
+        <childnode id="184" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="172">
+        <label>string</label>
+      </node>
+      <node id="170">
+        <label>sfdebug.h</label>
+        <link id="sfdebug_8h"/>
+      </node>
+      <node id="180">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="174">
+        <label>fstream</label>
+      </node>
+      <node id="184">
+        <label>BackGround.h</label>
+        <link id="BackGround_8h-source"/>
+        <childnode id="180" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="175">
+        <label>vector</label>
+      </node>
+      <node id="178">
+        <label>console.h</label>
+      </node>
+      <node id="181">
+        <label>Obj2D.h</label>
+        <link id="Obj2D_8h-source"/>
+        <childnode id="180" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="182">
+        <label>ObjRectangle.h</label>
+        <link id="ObjRectangle_8h-source"/>
+        <childnode id="180" relation="public-inheritance">
+        </childnode>
+        <childnode id="179" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="173">
+        <label>iostream</label>
+      </node>
+      <node id="179">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="180" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="183">
+        <label>ObjQuadrangle.h</label>
+        <link id="ObjQuadrangle_8h-source"/>
+        <childnode id="180" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="176">
+        <label>exception.h</label>
+      </node>
+      <node id="177">
+        <label>system.h</label>
+      </node>
+      <node id="171">
+        <label>stdio.h</label>
+      </node>
+    </incdepgraph>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// BackGround.cpp: BackGround \\81P\e\1?I\?\o\\81~\e\a\o\A!?\\81E\c\o</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">// \1\\81P\i!?\eCO\81EEEA2e\\81P\e\1</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">//  IuIo!\81\98</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// $Log: BackGround.cpp,v $</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:34  fujiwara</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// Revision 1.3  2001/07/09 20:30:08  fujiwara</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// Revision 1.2  2001/07/01 21:30:33  fujiwara</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">// \a\a\e\e!?\\81P\A\\81\98\A\\81P\81C\81áA??\81E</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// Revision 1.1  2001/05/12 01:10:17  fujiwara</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment">// $Log: BackGround.cpp,v $</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:34  fujiwara</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="comment">// Revision 1.3  2001/07/09 20:30:08  fujiwara</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="comment">// Revision 1.2  2001/07/01 21:30:33  fujiwara</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="comment">// \a\a\e\e!?\\81P\A\\81\98\A\\81P\81C\81áA??\81E</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="comment">// Revision 1.1  2001/05/12 01:10:17  fujiwara</highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="34"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="35"/><codeline><highlight class="comment">// Revision 1.2  2001/05/11 10:00:48  fujiwara</highlight></codeline>
+<linenumber line="36"/><codeline><highlight class="comment">// CUAO\\81N\C\\81\92\??I???a?E?\81P?\81E??A\83Ê</highlight></codeline>
+<linenumber line="37"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="38"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="40"/><codeline><highlight class="comment">#pragma warning( disable : 4786 )  //STL?I\81EU1d3\81\8b?\81E</highlight></codeline>
+<linenumber line="41"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="42"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="sfdebug_8h">sfdebug.h</ref>&quot;</highlight></codeline>
+<linenumber line="43"/><codeline></codeline>
+<linenumber line="44"/><codeline><highlight class="comment">// System Includes //</highlight></codeline>
+<linenumber line="45"/><codeline></codeline>
+<linenumber line="46"/><codeline><highlight class="preprocessor">#include &quot;stdio.h&quot;</highlight></codeline>
+<linenumber line="47"/><codeline><highlight class="preprocessor">#include &lt;string&gt;</highlight></codeline>
+<linenumber line="48"/><codeline><highlight class="preprocessor">#include &lt;iostream&gt;</highlight></codeline>
+<linenumber line="49"/><codeline><highlight class="preprocessor">#include &lt;fstream&gt;</highlight></codeline>
+<linenumber line="50"/><codeline><highlight class="preprocessor">#include &lt;vector&gt;</highlight></codeline>
+<linenumber line="51"/><codeline></codeline>
+<linenumber line="52"/><codeline><highlight class="comment">// Project Includes //</highlight></codeline>
+<linenumber line="53"/><codeline></codeline>
+<linenumber line="54"/><codeline></codeline>
+<linenumber line="55"/><codeline><highlight class="preprocessor">#include &quot;exception.h&quot;</highlight></codeline>
+<linenumber line="56"/><codeline></codeline>
+<linenumber line="57"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="58"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define new DEBUG_NEW</highlight></codeline>
+<linenumber line="59"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="60"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="61"/><codeline><highlight class="preprocessor">#include &quot;system.h&quot;</highlight></codeline>
+<linenumber line="62"/><codeline><highlight class="preprocessor">#include &quot;console.h&quot;</highlight></codeline>
+<linenumber line="63"/><codeline><highlight class="preprocessor">#include &quot;Obj.h&quot;</highlight></codeline>
+<linenumber line="64"/><codeline><highlight class="preprocessor">#include &quot;Obj2D.h&quot;</highlight></codeline>
+<linenumber line="65"/><codeline><highlight class="preprocessor">#include &quot;ObjRectangle.h&quot;</highlight></codeline>
+<linenumber line="66"/><codeline><highlight class="preprocessor">#include &quot;ObjQuadrangle.h&quot;</highlight></codeline>
+<linenumber line="67"/><codeline><highlight class="preprocessor">#include &quot;BackGround.h&quot;</highlight></codeline>
+<linenumber line="68"/><codeline></codeline>
+<linenumber line="70"/><codeline><highlight class="comment">// 1?AU/?AIC</highlight></codeline>
+<linenumber line="72"/><codeline><highlight class="comment">using namespace sf::system::console;</highlight></codeline>
+<linenumber line="73"/><codeline><highlight class="keyword">using</highlight> <highlight class="keyword">namespace </highlight>sf;</codeline>
+<linenumber line="74"/><codeline></codeline>
+<linenumber line="75"/><codeline><highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> Background::Map::HEIGHT_MAX = 64;</codeline>
+<linenumber line="76"/><codeline><highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> Background::Map::CELL_SIZE = 64;</codeline>
+<linenumber line="77"/><codeline><highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> Background::Map::WIDTH = 8;</codeline>
+<linenumber line="78"/><codeline></codeline>
+<linenumber line="79"/><codeline><highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> Background::Map::DRAW_HEIGHT = 9;</codeline>
+<linenumber line="80"/><codeline><highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> Background::Map::DRAW_START_X  = 96.0f;</codeline>
+<linenumber line="81"/><codeline><highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> Background::Map::DRAW_START_Y  = 448.0f;</codeline>
+<linenumber line="82"/><codeline><highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> Background::Map::DRAW_CENTER_Y = 256.0f;</codeline>
+<linenumber line="83"/><codeline></codeline>
+<linenumber line="84"/><codeline><highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> Background::Map::CELL_TEX_COUNT_W = 4;</codeline>
+<linenumber line="85"/><codeline><highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> Background::Map::CELL_TEX_COUNT_H = 4;</codeline>
+<linenumber line="86"/><codeline></codeline>
+<linenumber line="87"/><codeline><highlight class="keyword">const</highlight> <ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info">sf::system::console::sprite::Info</ref> Background::msBlankSpriteInfo = </codeline>
+<linenumber line="88"/><codeline>{</codeline>
+<linenumber line="89"/><codeline>      <highlight class="stringliteral">&quot;media\\blank.bmp&quot;</highlight>,0.0f,0.0f,0.0f,0.0f,0xff000000,sprite::SPRITE2D</codeline>
+<linenumber line="90"/><codeline>};</codeline>
+<linenumber line="91"/><codeline></codeline>
+<linenumber line="92"/><codeline>Background::Background() : ObjRectangle()</codeline>
+<linenumber line="93"/><codeline>{</codeline>
+<linenumber line="94"/><codeline>      <highlight class="keyword">using</highlight> <highlight class="keyword">namespace </highlight>sf::system;</codeline>
+<linenumber line="95"/><codeline></codeline>
+<linenumber line="96"/><codeline>      System *psys = Factory::getInstance();</codeline>
+<linenumber line="97"/><codeline>      mpConsole = psys-&gt;console();</codeline>
+<linenumber line="98"/><codeline></codeline>
+<linenumber line="99"/><codeline>      z(0.99f);</codeline>
+<linenumber line="100"/><codeline>     color(0xffffffff);</codeline>
+<linenumber line="101"/><codeline>     mOffsetX = mOffsetY = 0.0f;</codeline>
+<linenumber line="102"/><codeline>     mpMap = NULL;</codeline>
+<linenumber line="103"/><codeline>     </codeline>
+<linenumber line="104"/><codeline>     mStartOffsetX = mStartOffsetY = 0.0f;</codeline>
+<linenumber line="105"/><codeline>     mpBlankSprite = Factory::getInstance()-&gt;console()-&gt;createSprite(&amp;msBlankSpriteInfo);</codeline>
+<linenumber line="106"/><codeline>     </codeline>
+<linenumber line="107"/><codeline>     mObj[0].sprite(mpBlankSprite);</codeline>
+<linenumber line="108"/><codeline>     mObj[1].sprite(mpBlankSprite);</codeline>
+<linenumber line="109"/><codeline>     mObj[0].visibility(false);</codeline>
+<linenumber line="110"/><codeline>     mObj[1].visibility(false);</codeline>
+<linenumber line="111"/><codeline>     mObj[0].z(0.01f);</codeline>
+<linenumber line="112"/><codeline>     mObj[1].z(0.01f);</codeline>
+<linenumber line="113"/><codeline>     mObj[0].drawMode(<ref idref="namespacesf_1_1system_1_1console_1a12a4">DRAW_ADD</ref>);</codeline>
+<linenumber line="114"/><codeline>     mObj[1].drawMode(<ref idref="namespacesf_1_1system_1_1console_1a12a4">DRAW_ADD</ref>);</codeline>
+<linenumber line="115"/><codeline>     </codeline>
+<linenumber line="116"/><codeline>     for(int i = 0;i &lt; 4;i++){</codeline>
+<linenumber line="117"/><codeline>             mObj[0].vertex(i)-&gt;diffuse  = 0x40000020;</codeline>
+<linenumber line="118"/><codeline>             mObj[1].vertex(i)-&gt;diffuse  = 0x40400000;</codeline>
+<linenumber line="119"/><codeline></codeline>
+<linenumber line="120"/><codeline>             mObj[0].vertex(i)-&gt;specular = 0.0f;</codeline>
+<linenumber line="121"/><codeline>             mObj[1].vertex(i)-&gt;specular = 0.0f;</codeline>
+<linenumber line="122"/><codeline></codeline>
+<linenumber line="123"/><codeline>             mObj[0].vertex(i)-&gt;z = 0.01f;</codeline>
+<linenumber line="124"/><codeline>             mObj[1].vertex(i)-&gt;z = 0.01f;</codeline>
+<linenumber line="125"/><codeline>     }</codeline>
+<linenumber line="126"/><codeline></codeline>
+<linenumber line="127"/><codeline>}</codeline>
+<linenumber line="128"/><codeline></codeline>
+<linenumber line="129"/><codeline>Background::~Background()</codeline>
+<linenumber line="130"/><codeline>{</codeline>
+<linenumber line="131"/><codeline>     unload();</codeline>
+<linenumber line="132"/><codeline>     <highlight class="keyword">delete</highlight> mpBlankSprite;</codeline>
+<linenumber line="133"/><codeline>}</codeline>
+<linenumber line="134"/><codeline></codeline>
+<linenumber line="135"/><codeline><highlight class="comment">// \A\\81P\1\A\a?a?e?O\T\A\\81~\C!?\??I\\81\91\o\i!?\E !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="136"/><codeline>Background::unload()</codeline>
+<linenumber line="137"/><codeline>{</codeline>
+<linenumber line="138"/><codeline>     visibility(<highlight class="keyword">false</highlight>);       </codeline>
+<linenumber line="139"/><codeline>     sprite::Sprite * psprite;</codeline>
+<linenumber line="140"/><codeline>     <highlight class="keywordflow">for</highlight>(TextureList::iterator it = mTextureList.begin();it != mTextureList.end();++it)</codeline>
+<linenumber line="141"/><codeline>     {</codeline>
+<linenumber line="142"/><codeline>             psprite = *it;</codeline>
+<linenumber line="143"/><codeline>             <highlight class="keyword">delete</highlight> psprite;</codeline>
+<linenumber line="144"/><codeline>     }</codeline>
+<linenumber line="145"/><codeline>     mTextureList.clear();</codeline>
+<linenumber line="146"/><codeline>     mMapData.clear();</codeline>
+<linenumber line="147"/><codeline>}<highlight class="comment">// unload()</highlight></codeline>
+<linenumber line="148"/><codeline></codeline>
+<linenumber line="149"/><codeline><highlight class="comment">// CO\81EE\C!?\??I\i!?\E !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="150"/><codeline><highlight class="keywordtype">void</highlight> Background::load(<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> pMapFileName)</codeline>
+<linenumber line="151"/><codeline>{</codeline>
+<linenumber line="152"/><codeline>     unload();</codeline>
+<linenumber line="153"/><codeline>     </codeline>
+<linenumber line="154"/><codeline>     <highlight class="comment">// \O\!\?\e\I!?\a?I\D\A\\81P\\81\91\A\\81~</highlight></codeline>
+<linenumber line="155"/><codeline>     mFileName = pMapFileName;</codeline>
+<linenumber line="156"/><codeline></codeline>
+<linenumber line="157"/><codeline>     std::fstream file(pMapFileName,std::ios::in);</codeline>
+<linenumber line="158"/><codeline>     </codeline>
+<linenumber line="159"/><codeline>     <highlight class="keywordflow">if</highlight>(!file.is_open()){</codeline>
+<linenumber line="160"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(<highlight class="stringliteral">&quot;File Open Error&quot;</highlight>,__FILE__,__LINE__);</codeline>
+<linenumber line="161"/><codeline>     }</codeline>
+<linenumber line="162"/><codeline></codeline>
+<linenumber line="163"/><codeline>     <highlight class="keywordtype">int</highlight> num_tex,i;</codeline>
+<linenumber line="164"/><codeline>     sprite::Sprite *psp;</codeline>
+<linenumber line="165"/><codeline>     sprite::Info sp_info;</codeline>
+<linenumber line="166"/><codeline></codeline>
+<linenumber line="167"/><codeline>     <highlight class="comment">// \A\\81P\1\A\a?IAE?s1t?s </highlight></codeline>
+<linenumber line="168"/><codeline>     file &gt;&gt; num_tex;</codeline>
+<linenumber line="169"/><codeline>     <highlight class="keywordtype">long</highlight> flags = 0;</codeline>
+<linenumber line="170"/><codeline>     <highlight class="keywordflow">for</highlight>(i = 0;i &lt; num_tex;i++)</codeline>
+<linenumber line="171"/><codeline>     {</codeline>
+<linenumber line="172"/><codeline>             file &gt;&gt; sp_info.fileName;</codeline>
+<linenumber line="173"/><codeline>             file &gt;&gt; sp_info.cellHeight;</codeline>
+<linenumber line="174"/><codeline>             file &gt;&gt; sp_info.cellWidth;</codeline>
+<linenumber line="175"/><codeline>             file &gt;&gt; sp_info.centerX;</codeline>
+<linenumber line="176"/><codeline>             file &gt;&gt; sp_info.centerY;</codeline>
+<linenumber line="177"/><codeline></codeline>
+<linenumber line="178"/><codeline>             flags = file.flags();</codeline>
+<linenumber line="179"/><codeline>             flags = ((flags ^ std::ios::dec) | std::ios::hex | std::ios::showbase);</codeline>
+<linenumber line="180"/><codeline>             file.flags(flags);   </codeline>
+<linenumber line="181"/><codeline>             file &gt;&gt; sp_info.transparentColor;</codeline>
+<linenumber line="182"/><codeline></codeline>
+<linenumber line="183"/><codeline>             flags = ((flags ^ std::ios::hex) | std::ios::dec);</codeline>
+<linenumber line="184"/><codeline></codeline>
+<linenumber line="185"/><codeline>             file.flags(flags);</codeline>
+<linenumber line="186"/><codeline>             sp_info.type = sprite::SPRITE2D;</codeline>
+<linenumber line="187"/><codeline></codeline>
+<linenumber line="188"/><codeline>             psp = mpConsole-&gt;createSprite(&amp;sp_info);</codeline>
+<linenumber line="189"/><codeline>     </codeline>
+<linenumber line="190"/><codeline>     </codeline>
+<linenumber line="191"/><codeline>             <highlight class="keywordflow">if</highlight>(file.fail())</codeline>
+<linenumber line="192"/><codeline>             {</codeline>
+<linenumber line="193"/><codeline>                     <highlight class="keywordflow">throw</highlight> FatalErrorException(<highlight class="stringliteral">&quot;File Read Error&quot;</highlight>,__FILE__,__LINE__);</codeline>
+<linenumber line="194"/><codeline>             };</codeline>
+<linenumber line="195"/><codeline></codeline>
+<linenumber line="196"/><codeline>             mTextureList.push_back(psp);</codeline>
+<linenumber line="197"/><codeline>             mTextureInfoList.push_back(sp_info);</codeline>
+<linenumber line="198"/><codeline>     }</codeline>
+<linenumber line="199"/><codeline></codeline>
+<linenumber line="200"/><codeline>     file &gt;&gt; mMapWidth &gt;&gt; mMapHeight;</codeline>
+<linenumber line="201"/><codeline>     </codeline>
+<linenumber line="202"/><codeline>     mOffsetYLimit = (float) (mMapHeight - 1) * Map::CELL_SIZE - screen::HEIGHT;</codeline>
+<linenumber line="203"/><codeline>     flags = ((flags ^ std::ios::dec) | std::ios::hex);</codeline>
+<linenumber line="204"/><codeline>     file.flags(flags);   </codeline>
+<linenumber line="205"/><codeline>     </codeline>
+<linenumber line="206"/><codeline>     <highlight class="comment">//mpMap = new int[ mMapHeight * mMapWidth];</highlight></codeline>
+<linenumber line="207"/><codeline>     <ref idref="namespacesf_1a0">DWORD</ref> data;</codeline>
+<linenumber line="208"/><codeline>     <highlight class="keywordflow">for</highlight>(i = 0;i &lt; mMapWidth * mMapHeight;i ++)</codeline>
+<linenumber line="209"/><codeline>     {</codeline>
+<linenumber line="210"/><codeline>             file &gt;&gt; data;</codeline>
+<linenumber line="211"/><codeline>             <highlight class="keywordflow">if</highlight>(file.fail()){</codeline>
+<linenumber line="212"/><codeline>                     <highlight class="keywordflow">throw</highlight> FatalErrorException(<highlight class="stringliteral">&quot;File Read Error&quot;</highlight>,__FILE__,__LINE__);</codeline>
+<linenumber line="213"/><codeline>             }</codeline>
+<linenumber line="214"/><codeline>             mMapData.push_back(data);</codeline>
+<linenumber line="215"/><codeline>     }</codeline>
+<linenumber line="216"/><codeline></codeline>
+<linenumber line="217"/><codeline>}<highlight class="comment">//load()</highlight></codeline>
+<linenumber line="218"/><codeline></codeline>
+<linenumber line="219"/><codeline><highlight class="comment">// \T\A\\81~\C!?\??o2eII?EEA2e?1?e !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="220"/><codeline><highlight class="keywordtype">void</highlight> Background::draw()</codeline>
+<linenumber line="221"/><codeline>{</codeline>
+<linenumber line="222"/><codeline>     <highlight class="keywordflow">if</highlight>(!visibility()) <highlight class="keywordflow">return</highlight>;</codeline>
+<linenumber line="223"/><codeline>     </codeline>
+<linenumber line="224"/><codeline>     <highlight class="keywordtype">int</highlight> map_offset_y  = (int)(mOffsetY + startOffsetY() )/ Map::CELL_SIZE;</codeline>
+<linenumber line="225"/><codeline>     <highlight class="keywordtype">float</highlight> screen_offset_y = (int)(mOffsetY + startOffsetY()) % Map::CELL_SIZE;</codeline>
+<linenumber line="226"/><codeline></codeline>
+<linenumber line="227"/><codeline>     <highlight class="comment">//float sy = Map::DRAW_START_Y + screen_offset_y + map_start_offset_y1;</highlight></codeline>
+<linenumber line="228"/><codeline>     <highlight class="keywordtype">float</highlight> sy = Map::DRAW_START_Y + screen_offset_y;</codeline>
+<linenumber line="229"/><codeline></codeline>
+<linenumber line="230"/><codeline>     <highlight class="keywordtype">float</highlight> sx = 0.0f;</codeline>
+<linenumber line="231"/><codeline>     </codeline>
+<linenumber line="232"/><codeline>     <highlight class="keywordtype">float</highlight> ex = 0.0f;</codeline>
+<linenumber line="233"/><codeline>     <highlight class="keywordtype">float</highlight> ey = 0.0f;</codeline>
+<linenumber line="234"/><codeline></codeline>
+<linenumber line="235"/><codeline>     <highlight class="comment">// ?O?E?A?I\\81â\e\\83Ê\?\o</highlight></codeline>
+<linenumber line="236"/><codeline>     <highlight class="keywordtype">float</highlight> cell_size = (float)Map::CELL_SIZE;</codeline>
+<linenumber line="237"/><codeline>     </codeline>
+<linenumber line="238"/><codeline>     <highlight class="keywordtype">int</highlight> data,index,spriteNo,dy;</codeline>
+<linenumber line="239"/><codeline></codeline>
+<linenumber line="240"/><codeline></codeline>
+<linenumber line="241"/><codeline>     ObjRectangle *pobj = (ObjRectangle *)<highlight class="keyword">this</highlight>;</codeline>
+<linenumber line="242"/><codeline>     </codeline>
+<linenumber line="243"/><codeline>     </codeline>
+<linenumber line="244"/><codeline>     <highlight class="keywordflow">for</highlight>(<highlight class="keywordtype">int</highlight> i = map_offset_y;i &lt; Map::DRAW_HEIGHT + map_offset_y; i++){</codeline>
+<linenumber line="245"/><codeline>             <highlight class="keywordflow">if</highlight>(i &gt;= 0 &amp;&amp;  i &lt;  mMapHeight){</codeline>
+<linenumber line="246"/><codeline>                     sx = Map::DRAW_START_X + mOffsetX + startOffsetX();</codeline>
+<linenumber line="247"/><codeline>                     dy = i * Map::WIDTH;</codeline>
+<linenumber line="248"/><codeline></codeline>
+<linenumber line="249"/><codeline>                     <highlight class="keywordflow">for</highlight>(<highlight class="keywordtype">int</highlight> j = 0;j &lt; Map::WIDTH; j++)</codeline>
+<linenumber line="250"/><codeline>                     {</codeline>
+<linenumber line="251"/><codeline>                             data = mMapData[dy + j];</codeline>
+<linenumber line="252"/><codeline>                             <highlight class="keywordflow">if</highlight>(data){</codeline>
+<linenumber line="253"/><codeline>                                     --data;</codeline>
+<linenumber line="254"/><codeline>                                     index = data &amp; 0xf;</codeline>
+<linenumber line="255"/><codeline>                                     spriteNo = (data &amp; 0xffff0000) &gt;&gt; 16;</codeline>
+<linenumber line="256"/><codeline>                     </codeline>
+<linenumber line="257"/><codeline>                                     y(sy);</codeline>
+<linenumber line="258"/><codeline>                                     x(sx);</codeline>
+<linenumber line="259"/><codeline>                     </codeline>
+<linenumber line="260"/><codeline>                                     ObjRectangle::index(index);</codeline>
+<linenumber line="261"/><codeline></codeline>
+<linenumber line="262"/><codeline>                                     mTextureList[spriteNo]-&gt;draw(pobj);</codeline>
+<linenumber line="263"/><codeline>                             }</codeline>
+<linenumber line="264"/><codeline></codeline>
+<linenumber line="265"/><codeline>                             sx += cell_size;</codeline>
+<linenumber line="266"/><codeline></codeline>
+<linenumber line="267"/><codeline>                     }</codeline>
+<linenumber line="268"/><codeline>             }</codeline>
+<linenumber line="269"/><codeline>             sy -= cell_size;</codeline>
+<linenumber line="270"/><codeline>     }</codeline>
+<linenumber line="271"/><codeline></codeline>
+<linenumber line="272"/><codeline>     <highlight class="comment">// ?AoY?IE??\81N\\81N\e\\81\91?o?i?\81á?e?e?|?E?1?e???a?IE??\81N </highlight></codeline>
+<linenumber line="273"/><codeline>     <highlight class="keywordflow">if</highlight>(edit()){</codeline>
+<linenumber line="274"/><codeline>             <highlight class="keywordflow">if</highlight>(startOffsetY() != 0){             </codeline>
+<linenumber line="275"/><codeline>                     mObj[0].visibility(<highlight class="keyword">true</highlight>);</codeline>
+<linenumber line="276"/><codeline>                     mObj[0].vertex(0)-&gt;x = (viewport::X);</codeline>
+<linenumber line="277"/><codeline>                     mObj[0].vertex(1)-&gt;x = (viewport::X + viewport::WIDTH);</codeline>
+<linenumber line="278"/><codeline>                     mObj[0].vertex(2)-&gt;x = (viewport::X);</codeline>
+<linenumber line="279"/><codeline>                     mObj[0].vertex(3)-&gt;x = (viewport::X + viewport::WIDTH);</codeline>
+<linenumber line="280"/><codeline></codeline>
+<linenumber line="281"/><codeline>                     <highlight class="keywordflow">if</highlight>(startOffsetY() &gt; 0){</codeline>
+<linenumber line="282"/><codeline>                             sy = viewport::Y;</codeline>
+<linenumber line="283"/><codeline>                             ey = viewport::Y + </codeline>
+<linenumber line="284"/><codeline>                                     ((viewport::Y + startOffsetY()) &lt; (viewport::Y + viewport::HEIGHT)) </codeline>
+<linenumber line="285"/><codeline>                                     ? (startOffsetY() + viewport::Y) </codeline>
+<linenumber line="286"/><codeline>                                     : (viewport::Y + viewport::HEIGHT);</codeline>
+<linenumber line="287"/><codeline>                     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="288"/><codeline>                             sy = (((viewport::Y + viewport::HEIGHT) + startOffsetY()) &gt; viewport::Y) </codeline>
+<linenumber line="289"/><codeline>                                     ?  (viewport::Y + viewport::HEIGHT + startOffsetY()) : viewport::Y  ;</codeline>
+<linenumber line="290"/><codeline>                             ey = viewport::Y + viewport::HEIGHT;</codeline>
+<linenumber line="291"/><codeline>                     }</codeline>
+<linenumber line="292"/><codeline></codeline>
+<linenumber line="293"/><codeline>                     mObj[0].vertex(0)-&gt;y = (sy);</codeline>
+<linenumber line="294"/><codeline>                     mObj[0].vertex(1)-&gt;y = (sy);</codeline>
+<linenumber line="295"/><codeline>                     mObj[0].vertex(2)-&gt;y = (ey);</codeline>
+<linenumber line="296"/><codeline>                     mObj[0].vertex(3)-&gt;y = (ey);</codeline>
+<linenumber line="297"/><codeline>             } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="298"/><codeline>                     mObj[0].visibility(<highlight class="keyword">false</highlight>);</codeline>
+<linenumber line="299"/><codeline>             }</codeline>
+<linenumber line="300"/><codeline>             </codeline>
+<linenumber line="301"/><codeline>             <highlight class="keywordflow">if</highlight>(startOffsetX() != 0){</codeline>
+<linenumber line="302"/><codeline>                     mObj[1].visibility(<highlight class="keyword">true</highlight>);</codeline>
+<linenumber line="303"/><codeline>                     mObj[1].vertex(0)-&gt;y = (viewport::Y);</codeline>
+<linenumber line="304"/><codeline>                     mObj[1].vertex(1)-&gt;y = (viewport::Y);</codeline>
+<linenumber line="305"/><codeline>                     mObj[1].vertex(2)-&gt;y = (viewport::Y +  viewport::HEIGHT);</codeline>
+<linenumber line="306"/><codeline>                     mObj[1].vertex(3)-&gt;y = (viewport::Y + viewport::HEIGHT);</codeline>
+<linenumber line="307"/><codeline></codeline>
+<linenumber line="308"/><codeline>                     <highlight class="keywordflow">if</highlight>(startOffsetX() &gt; 0){</codeline>
+<linenumber line="309"/><codeline>                             sx = viewport::X;</codeline>
+<linenumber line="310"/><codeline>                             ex = viewport::X + </codeline>
+<linenumber line="311"/><codeline>                                     (viewport::X + startOffsetX() &lt; (viewport::X + viewport::WIDTH)) </codeline>
+<linenumber line="312"/><codeline>                                             ? ( startOffsetX() + viewport::X)</codeline>
+<linenumber line="313"/><codeline>                                     : (viewport::X + viewport::WIDTH);</codeline>
+<linenumber line="314"/><codeline>                     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="315"/><codeline>                             sx = (((viewport::X + viewport::WIDTH) + startOffsetX()) &gt; viewport::X) </codeline>
+<linenumber line="316"/><codeline>                                     ?  (viewport::X + viewport::WIDTH + startOffsetX()) : viewport::X  ;</codeline>
+<linenumber line="317"/><codeline>                             ex = viewport::X + viewport::WIDTH;</codeline>
+<linenumber line="318"/><codeline>                     }</codeline>
+<linenumber line="319"/><codeline></codeline>
+<linenumber line="320"/><codeline>                     mObj[1].vertex(0)-&gt;x = (sx);</codeline>
+<linenumber line="321"/><codeline>                     mObj[1].vertex(1)-&gt;x = (ex);</codeline>
+<linenumber line="322"/><codeline>                     mObj[1].vertex(2)-&gt;x = (sx);</codeline>
+<linenumber line="323"/><codeline>                     mObj[1].vertex(3)-&gt;x = (ex);</codeline>
+<linenumber line="324"/><codeline>             } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="325"/><codeline>                     mObj[1].visibility(<highlight class="keyword">false</highlight>);</codeline>
+<linenumber line="326"/><codeline>             };</codeline>
+<linenumber line="327"/><codeline>     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="328"/><codeline>             mObj[1].visibility(<highlight class="keyword">false</highlight>);</codeline>
+<linenumber line="329"/><codeline>             mObj[0].visibility(<highlight class="keyword">false</highlight>);</codeline>
+<linenumber line="330"/><codeline>     }</codeline>
+<linenumber line="331"/><codeline></codeline>
+<linenumber line="332"/><codeline>}<highlight class="comment">// draw</highlight></codeline>
+<linenumber line="333"/><codeline></codeline>
+<linenumber line="334"/><codeline><highlight class="comment">// Map\C!?\??I\\81â!?\O !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="335"/><codeline><highlight class="keywordtype">bool</highlight> Background::save(<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> *pMapFileName)</codeline>
+<linenumber line="336"/><codeline>{</codeline>
+<linenumber line="337"/><codeline>     <highlight class="keywordtype">char</highlight> err_savestr[] = <highlight class="stringliteral">&quot;Background:save() Error!&quot;</highlight>;</codeline>
+<linenumber line="338"/><codeline>     <highlight class="keywordtype">int</highlight> i;</codeline>
+<linenumber line="339"/><codeline></codeline>
+<linenumber line="340"/><codeline>     <highlight class="comment">// \O\!\?\e\I!?\a?\81ÊNULL?I?i1c!\81\91\i!?\E\81ât?I\O\!\?\e\I!?\a?o\81âEIN</highlight></codeline>
+<linenumber line="341"/><codeline>     <highlight class="keywordflow">if</highlight>(pMapFileName == NULL){</codeline>
+<linenumber line="342"/><codeline>             <highlight class="keywordflow">if</highlight>(mFileName.c_str() == NULL){</codeline>
+<linenumber line="343"/><codeline>                     <highlight class="keywordflow">return</highlight> <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="344"/><codeline>             } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="345"/><codeline>                     pMapFileName = mFileName.c_str();</codeline>
+<linenumber line="346"/><codeline>             }</codeline>
+<linenumber line="347"/><codeline>     }</codeline>
+<linenumber line="348"/><codeline></codeline>
+<linenumber line="349"/><codeline>     std::fstream file(pMapFileName,std::ios::out);</codeline>
+<linenumber line="350"/><codeline>     </codeline>
+<linenumber line="351"/><codeline>     <highlight class="keywordflow">if</highlight>(!file.is_open())</codeline>
+<linenumber line="352"/><codeline>             <highlight class="keywordflow">return</highlight> <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="353"/><codeline></codeline>
+<linenumber line="354"/><codeline></codeline>
+<linenumber line="355"/><codeline>     sprite::Info sp_info;</codeline>
+<linenumber line="356"/><codeline></codeline>
+<linenumber line="357"/><codeline>     <highlight class="comment">// \A\\81P\1\A\a?o?I?n?-1t?s </highlight></codeline>
+<linenumber line="358"/><codeline></codeline>
+<linenumber line="359"/><codeline>     file &lt;&lt; mTextureInfoList.size() &lt;&lt; std::endl;</codeline>
+<linenumber line="360"/><codeline></codeline>
+<linenumber line="361"/><codeline>     <highlight class="keywordtype">long</highlight> flags = 0;</codeline>
+<linenumber line="362"/><codeline>     </codeline>
+<linenumber line="363"/><codeline>     <highlight class="keywordflow">for</highlight>(TextureInfoList::iterator it = mTextureInfoList.begin();</codeline>
+<linenumber line="364"/><codeline>                     it != mTextureInfoList.end(); it ++)</codeline>
+<linenumber line="365"/><codeline>     {</codeline>
+<linenumber line="366"/><codeline>             sp_info = *it;</codeline>
+<linenumber line="367"/><codeline>             </codeline>
+<linenumber line="368"/><codeline>             file &lt;&lt; sp_info.fileName &lt;&lt; std::endl;</codeline>
+<linenumber line="369"/><codeline></codeline>
+<linenumber line="370"/><codeline>             file &lt;&lt; sp_info.cellHeight &lt;&lt; <highlight class="stringliteral">&quot; &quot;</highlight>;</codeline>
+<linenumber line="371"/><codeline>             file &lt;&lt; sp_info.cellWidth &lt;&lt; <highlight class="stringliteral">&quot; &quot;</highlight>;</codeline>
+<linenumber line="372"/><codeline>             file &lt;&lt; sp_info.centerX &lt;&lt; <highlight class="stringliteral">&quot; &quot;</highlight>;</codeline>
+<linenumber line="373"/><codeline>             file &lt;&lt; sp_info.centerY &lt;&lt; <highlight class="stringliteral">&quot; &quot;</highlight>;</codeline>
+<linenumber line="374"/><codeline></codeline>
+<linenumber line="375"/><codeline>             flags = file.flags();</codeline>
+<linenumber line="376"/><codeline>             flags = ((flags ^ std::ios::dec) | std::ios::hex | std::ios::showbase);</codeline>
+<linenumber line="377"/><codeline>             file.flags(flags);   </codeline>
+<linenumber line="378"/><codeline></codeline>
+<linenumber line="379"/><codeline>             file &lt;&lt; sp_info.transparentColor &lt;&lt; std::endl;</codeline>
+<linenumber line="380"/><codeline></codeline>
+<linenumber line="381"/><codeline>             flags = ((flags ^ std::ios::hex) | std::ios::dec);</codeline>
+<linenumber line="382"/><codeline></codeline>
+<linenumber line="383"/><codeline>             file.flags(flags);</codeline>
+<linenumber line="384"/><codeline>             </codeline>
+<linenumber line="385"/><codeline>             <highlight class="keywordflow">if</highlight>(file.fail())</codeline>
+<linenumber line="386"/><codeline>             {</codeline>
+<linenumber line="387"/><codeline>                     system::Factory::getInstance()-&gt;errorTerminate(err_savestr);</codeline>
+<linenumber line="388"/><codeline>             };</codeline>
+<linenumber line="389"/><codeline>     }</codeline>
+<linenumber line="390"/><codeline></codeline>
+<linenumber line="391"/><codeline>     file &lt;&lt; mMapWidth &lt;&lt; <highlight class="stringliteral">&quot; &quot;</highlight> &lt;&lt; mMapHeight &lt;&lt; std::endl;</codeline>
+<linenumber line="392"/><codeline>     </codeline>
+<linenumber line="393"/><codeline>     flags = ((flags ^ std::ios::dec) | std::ios::hex);</codeline>
+<linenumber line="394"/><codeline>     file.flags(flags);   </codeline>
+<linenumber line="395"/><codeline>     </codeline>
+<linenumber line="396"/><codeline>     <highlight class="comment">//mpMap = new int[ mMapHeight * mMapWidth];</highlight></codeline>
+<linenumber line="397"/><codeline>     <ref idref="namespacesf_1a0">DWORD</ref> data;</codeline>
+<linenumber line="398"/><codeline>     <highlight class="keywordflow">for</highlight>(i = 0;i &lt; mMapWidth * mMapHeight;i ++)</codeline>
+<linenumber line="399"/><codeline>     {</codeline>
+<linenumber line="400"/><codeline>             data = mMapData[i] ;</codeline>
+<linenumber line="401"/><codeline></codeline>
+<linenumber line="402"/><codeline>             file &lt;&lt; data;</codeline>
+<linenumber line="403"/><codeline>             </codeline>
+<linenumber line="404"/><codeline>             <highlight class="keywordflow">if</highlight>((i &amp; 0x7) == 7) {</codeline>
+<linenumber line="405"/><codeline>                     file &lt;&lt; std::endl;</codeline>
+<linenumber line="406"/><codeline>             } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="407"/><codeline>                     file &lt;&lt; <highlight class="stringliteral">&quot; &quot;</highlight>;</codeline>
+<linenumber line="408"/><codeline>             }</codeline>
+<linenumber line="409"/><codeline>     </codeline>
+<linenumber line="410"/><codeline>             <highlight class="keywordflow">if</highlight>(file.fail()){</codeline>
+<linenumber line="411"/><codeline>                     system::Factory::getInstance()-&gt;errorTerminate(err_savestr);</codeline>
+<linenumber line="412"/><codeline>                     <highlight class="keywordflow">return</highlight> <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="413"/><codeline>             }</codeline>
+<linenumber line="414"/><codeline>     }</codeline>
+<linenumber line="415"/><codeline>     <highlight class="keywordflow">return</highlight> <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="416"/><codeline>}</codeline>
+<linenumber line="417"/><codeline></codeline>
+<linenumber line="418"/><codeline><highlight class="comment">// Map\C!?\??o\\81â\A\E !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="419"/><codeline><highlight class="keywordtype">void</highlight> Background::setData(<highlight class="keywordtype">float</highlight> screenX, <highlight class="keywordtype">float</highlight> screenY, <ref idref="namespacesf_1a0">DWORD</ref> value)</codeline>
+<linenumber line="420"/><codeline>{</codeline>
+<linenumber line="421"/><codeline>     <highlight class="keywordtype">int</highlight> y = (int)(viewport::HEIGHT - screenY + mOffsetY) / Map::CELL_SIZE;</codeline>
+<linenumber line="422"/><codeline>     <highlight class="keywordtype">int</highlight> x = (int)(screenX + mOffsetX - Map::DRAW_START_X + Map::CELL_SIZE / 2) / Map::CELL_SIZE;</codeline>
+<linenumber line="423"/><codeline>     mMapData[x + y * Map::WIDTH] = value;</codeline>
+<linenumber line="424"/><codeline>}</codeline>
+<linenumber line="425"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/BackGround.cpp"/>
+  </compounddef>
+  <compounddef id="BackGround_8h" kind="file">
+    <compoundname>BackGround.h</compoundname>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includedby id="BackGround_8cpp" local="yes">BackGround.cpp</includedby>
+    <incdepgraph>
+      <node id="187">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="186">
+        <label>BackGround.h</label>
+        <link id="BackGround.h"/>
+        <childnode id="187" relation="public-inheritance">
+        </childnode>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="189">
+        <label>BackGround.cpp</label>
+        <link id="BackGround_8cpp-source"/>
+      </node>
+      <node id="188">
+        <label>BackGround.h</label>
+        <link id="BackGround.h"/>
+        <childnode id="189" relation="public-inheritance">
+        </childnode>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console">sf::system::console</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="BackGround_8h_1a0" virt="normal" prot="public">
+        <name>AFX_Background_H__78BD459C_E52C_4BE9_B8DB_8A6DDAFE1E52__INCLUDED_</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/BackGround.h" line="27" bodystart="27" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// Background.h: Background \\81P\e\1?I\?\o\?!?\O\\81\98\?\1</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  IuIo!\81\98</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// $Log: BackGround.h,v $</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// Revision 1.3  2001/11/06 21:27:42  fujiwara</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// AcEy11?\81EA\81\8b\D\A\\81P\\81\91\A\\81~</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">// Revision 1.2  2001/10/28 21:35:56  fujiwara</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">// Revision 1.2  2001/07/09 20:30:08  fujiwara</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">// Revision 1.1  2001/05/12 01:10:11  fujiwara</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor">#if !defined(AFX_Background_H__78BD459C_E52C_4BE9_B8DB_8A6DDAFE1E52__INCLUDED_)</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_Background_H__78BD459C_E52C_4BE9_B8DB_8A6DDAFE1E52__INCLUDED_</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="34"/><codeline><highlight class="keyword">namespace </highlight>sf {</codeline>
+<linenumber line="35"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="36"/><codeline>              <highlight class="keyword">namespace </highlight>console {</codeline>
+<linenumber line="37"/><codeline></codeline>
+<linenumber line="38"/><codeline></codeline>
+<linenumber line="39"/><codeline></codeline>
+<linenumber line="40"/><codeline><highlight class="keyword">class </highlight>Background : <highlight class="keyword">public</highlight> ObjRectangle </codeline>
+<linenumber line="41"/><codeline>{</codeline>
+<linenumber line="42"/><codeline><highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="43"/><codeline>      <highlight class="keyword">typedef</highlight> std::vector&lt;sprite::Sprite *&gt; TextureList;</codeline>
+<linenumber line="44"/><codeline>      <highlight class="keyword">typedef</highlight> std::vector&lt;sprite::Info&gt; TextureInfoList;</codeline>
+<linenumber line="45"/><codeline>      <highlight class="keyword">typedef</highlight> std::vector&lt;int&gt; MapData;</codeline>
+<linenumber line="46"/><codeline></codeline>
+<linenumber line="47"/><codeline>      Background();</codeline>
+<linenumber line="48"/><codeline>      <highlight class="keyword">virtual</highlight> ~Background();</codeline>
+<linenumber line="49"/><codeline>      <highlight class="comment">// CO\81EEEA2e </highlight></codeline>
+<linenumber line="50"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> draw();</codeline>
+<linenumber line="51"/><codeline>      <highlight class="comment">// ACCESS //</highlight></codeline>
+<linenumber line="52"/><codeline></codeline>
+<linenumber line="53"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> offsetX()<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mOffsetX;};</codeline>
+<linenumber line="54"/><codeline>      <highlight class="keywordtype">void</highlight> offsetX(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value){mOffsetX = value;};</codeline>
+<linenumber line="55"/><codeline>       </codeline>
+<linenumber line="56"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> offsetY()<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mOffsetY;};</codeline>
+<linenumber line="57"/><codeline>      <highlight class="keywordtype">void</highlight> offsetY(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value)</codeline>
+<linenumber line="58"/><codeline>      {</codeline>
+<linenumber line="59"/><codeline>              <highlight class="keywordflow">if</highlight>(value &lt; mOffsetYLimit) mOffsetY = value ;<highlight class="keywordflow">else</highlight> mOffsetY = mOffsetYLimit;</codeline>
+<linenumber line="60"/><codeline>              <highlight class="keywordflow">if</highlight>(mOffsetY &lt; 0.0f) mOffsetY = 0.0f;};</codeline>
+<linenumber line="61"/><codeline>      </codeline>
+<linenumber line="62"/><codeline>      unload();</codeline>
+<linenumber line="63"/><codeline>      <highlight class="keywordtype">void</highlight> load(<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> pMapFileName);</codeline>
+<linenumber line="64"/><codeline></codeline>
+<linenumber line="65"/><codeline>      <highlight class="comment">// EditorIN //</highlight></codeline>
+<linenumber line="66"/><codeline>      <highlight class="keywordtype">void</highlight> setData(<highlight class="keywordtype">float</highlight> screenX,<highlight class="keywordtype">float</highlight> screenY,<ref idref="namespacesf_1a0">DWORD</ref> value);</codeline>
+<linenumber line="67"/><codeline>      <highlight class="keywordtype">bool</highlight> save(<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> *pFileName);</codeline>
+<linenumber line="68"/><codeline>      </codeline>
+<linenumber line="69"/><codeline>      TextureList* textureList(<highlight class="keywordtype">void</highlight>){ <highlight class="keywordflow">return</highlight> &amp;mTextureList;};</codeline>
+<linenumber line="70"/><codeline></codeline>
+<linenumber line="71"/><codeline>      <highlight class="keyword">class </highlight>SFDLL Map {</codeline>
+<linenumber line="72"/><codeline>      <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="73"/><codeline>              <highlight class="keyword">static</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> WIDTH;</codeline>
+<linenumber line="74"/><codeline>              <highlight class="keyword">static</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> HEIGHT_MAX;</codeline>
+<linenumber line="75"/><codeline>              <highlight class="keyword">static</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> CELL_SIZE;</codeline>
+<linenumber line="76"/><codeline>              <highlight class="keyword">static</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> CELL_TEX_COUNT_W;</codeline>
+<linenumber line="77"/><codeline>              <highlight class="keyword">static</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> CELL_TEX_COUNT_H;</codeline>
+<linenumber line="78"/><codeline></codeline>
+<linenumber line="79"/><codeline>              <highlight class="keyword">static</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> DRAW_HEIGHT;</codeline>
+<linenumber line="80"/><codeline>              <highlight class="keyword">static</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> DRAW_START_X;</codeline>
+<linenumber line="81"/><codeline>              <highlight class="keyword">static</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> DRAW_START_Y;</codeline>
+<linenumber line="82"/><codeline>              <highlight class="keyword">static</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> DRAW_CENTER_Y;</codeline>
+<linenumber line="83"/><codeline>      };</codeline>
+<linenumber line="84"/><codeline>      </codeline>
+<linenumber line="85"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> startOffsetX(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mbEdit ? mStartOffsetX : 0.0f;};</codeline>
+<linenumber line="86"/><codeline>      <highlight class="keywordtype">void</highlight> startOffsetX(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value){mStartOffsetX = value;};</codeline>
+<linenumber line="87"/><codeline>      </codeline>
+<linenumber line="88"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> startOffsetY(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mbEdit ? mStartOffsetY : 0.0f;};</codeline>
+<linenumber line="89"/><codeline>      <highlight class="keywordtype">void</highlight> startOffsetY(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value){mStartOffsetY = value;};</codeline>
+<linenumber line="90"/><codeline>      </codeline>
+<linenumber line="91"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> edit(<highlight class="keywordtype">void</highlight>)  <highlight class="keyword">const</highlight> {<highlight class="keywordflow">return</highlight> mbEdit;};</codeline>
+<linenumber line="92"/><codeline>      <highlight class="keywordtype">void</highlight> edit(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> value){mbEdit = value;};</codeline>
+<linenumber line="93"/><codeline></codeline>
+<linenumber line="94"/><codeline><highlight class="keyword">private</highlight>:</codeline>
+<linenumber line="95"/><codeline>      <highlight class="keywordtype">int</highlight> mMapWidth,mMapHeight;</codeline>
+<linenumber line="96"/><codeline>      <highlight class="keywordtype">float</highlight> mOffsetYLimit;</codeline>
+<linenumber line="97"/><codeline>      <highlight class="keywordtype">float</highlight> mOffsetX,mOffsetY;</codeline>
+<linenumber line="98"/><codeline>      </codeline>
+<linenumber line="99"/><codeline>      <highlight class="keywordtype">float</highlight> mStartOffsetX,mStartOffsetY;</codeline>
+<linenumber line="100"/><codeline>     <highlight class="keywordtype">bool</highlight> mbEdit;</codeline>
+<linenumber line="101"/><codeline>     <highlight class="keywordtype">int</highlight> *mpMap;</codeline>
+<linenumber line="102"/><codeline>     MapData mMapData;</codeline>
+<linenumber line="103"/><codeline>     TextureList mTextureList;</codeline>
+<linenumber line="104"/><codeline>     TextureInfoList mTextureInfoList;</codeline>
+<linenumber line="105"/><codeline>     Console *mpConsole;</codeline>
+<linenumber line="106"/><codeline>     std::string mFileName;</codeline>
+<linenumber line="107"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite">sf::system::console::sprite::Sprite</ref> * mpBlankSprite;</codeline>
+<linenumber line="108"/><codeline>     sf::system::console::ObjQuadrangle mObj[2];</codeline>
+<linenumber line="109"/><codeline>     <highlight class="keyword">static</highlight> <highlight class="keyword">const</highlight> <ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info">sf::system::console::sprite::Info</ref> Background::msBlankSpriteInfo; </codeline>
+<linenumber line="110"/><codeline>};</codeline>
+<linenumber line="111"/><codeline>             }</codeline>
+<linenumber line="112"/><codeline>     }</codeline>
+<linenumber line="113"/><codeline>}</codeline>
+<linenumber line="114"/><codeline>}</codeline>
+<linenumber line="115"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_Background_H__78BD459C_E52C_4BE9_B8DB_8A6DDAFE1E52__INCLUDED_)</highlight></codeline>
+<linenumber line="116"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/BackGround.h"/>
+  </compounddef>
+  <compounddef id="Console_8cpp" kind="file">
+    <compoundname>Console.cpp</compoundname>
+    <includes local="no">string</includes>
+    <includes local="yes">system.h</includes>
+    <includes id="Console_8h" local="yes">Console.h</includes>
+    <includes local="yes">stdio.h</includes>
+    <incdepgraph>
+      <node id="191">
+        <label>string</label>
+      </node>
+      <node id="190">
+        <label>Console.cpp</label>
+        <link id="Console.cpp"/>
+        <childnode id="191" relation="public-inheritance">
+        </childnode>
+        <childnode id="192" relation="public-inheritance">
+        </childnode>
+        <childnode id="193" relation="public-inheritance">
+        </childnode>
+        <childnode id="196" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="195">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="193">
+        <label>Console.h</label>
+        <link id="Console_8h"/>
+        <childnode id="194" relation="public-inheritance">
+        </childnode>
+        <childnode id="195" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="192">
+        <label>system.h</label>
+      </node>
+      <node id="196">
+        <label>stdio.h</label>
+      </node>
+      <node id="194">
+        <label>memory</label>
+      </node>
+    </incdepgraph>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">//  Console Ae?Y\\81P\e\1</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  !!2eII?IAe?Y\\81P\e\1</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">//  IuIo:</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// $Log: Console.cpp,v $</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:48:13  fujiwara</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// 2001/01/29 \a\a\e!?\e!?\\81P\81C!?DIN\e\?\O\e\e?IAE2A </highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#ifndef _BORLAND</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define _CRTDBG_MAP_ALLOC</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &lt;stdlib.h&gt;</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor">#include &lt;crtdbg.h&gt;</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &lt;string&gt;</highlight></codeline>
+<linenumber line="28"/><codeline></codeline>
+<linenumber line="29"/><codeline><highlight class="preprocessor">#include &quot;system.h&quot;</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="Console_8h">Console.h</ref>&quot;</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor">#include &quot;stdio.h&quot;</highlight></codeline>
+<linenumber line="32"/><codeline></codeline>
+<linenumber line="33"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Console.cpp"/>
+  </compounddef>
+  <compounddef id="Console_8h" kind="file">
+    <compoundname>Console.h</compoundname>
+    <includes local="no">memory</includes>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includedby id="AbstractSprite_8h" local="yes">AbstractSprite.h</includedby>
+    <includedby id="ConsoleImpl_8h" local="yes">ConsoleImpl.h</includedby>
+    <includedby id="Console_8cpp" local="yes">Console.cpp</includedby>
+    <includedby id="Sprite2D_8h" local="yes">Sprite2D.h</includedby>
+    <includedby id="InputImpl_8cpp" local="yes">InputImpl.cpp</includedby>
+    <includedby id="sfglib_8cpp" local="yes">sfglib.cpp</includedby>
+    <includedby id="SoundImpl_8cpp" local="yes">SoundImpl.cpp</includedby>
+    <includedby id="System_8cpp" local="yes">System.cpp</includedby>
+    <includedby id="SystemImpl_8cpp" local="yes">SystemImpl.cpp</includedby>
+    <incdepgraph>
+      <node id="200">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="198">
+        <label>Console.h</label>
+        <link id="Console.h"/>
+        <childnode id="199" relation="public-inheritance">
+        </childnode>
+        <childnode id="200" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="199">
+        <label>memory</label>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="210">
+        <label>sfglib.cpp</label>
+        <link id="sfglib_8cpp-source"/>
+      </node>
+      <node id="217">
+        <label>SoundImpl.cpp</label>
+        <link id="SoundImpl_8cpp-source"/>
+      </node>
+      <node id="211">
+        <label>Sprite2D.cpp</label>
+        <link id="Sprite2D_8cpp-source"/>
+      </node>
+      <node id="213">
+        <label>SystemImpl.cpp</label>
+        <link id="SystemImpl_8cpp-source"/>
+      </node>
+      <node id="214">
+        <label>ConsoleImpl.h</label>
+        <link id="ConsoleImpl_8h"/>
+        <childnode id="203" relation="public-inheritance">
+        </childnode>
+        <childnode id="204" relation="public-inheritance">
+        </childnode>
+        <childnode id="209" relation="public-inheritance">
+        </childnode>
+        <childnode id="210" relation="public-inheritance">
+        </childnode>
+        <childnode id="211" relation="public-inheritance">
+        </childnode>
+        <childnode id="206" relation="public-inheritance">
+        </childnode>
+        <childnode id="212" relation="public-inheritance">
+        </childnode>
+        <childnode id="213" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="209">
+        <label>InputImpl.cpp</label>
+        <link id="InputImpl_8cpp-source"/>
+      </node>
+      <node id="215">
+        <label>Console.cpp</label>
+        <link id="Console_8cpp-source"/>
+      </node>
+      <node id="202">
+        <label>AbstractSprite.h</label>
+        <link id="AbstractSprite_8h-source"/>
+        <childnode id="203" relation="public-inheritance">
+        </childnode>
+        <childnode id="204" relation="public-inheritance">
+        </childnode>
+        <childnode id="205" relation="public-inheritance">
+        </childnode>
+        <childnode id="207" relation="public-inheritance">
+        </childnode>
+        <childnode id="209" relation="public-inheritance">
+        </childnode>
+        <childnode id="210" relation="public-inheritance">
+        </childnode>
+        <childnode id="211" relation="public-inheritance">
+        </childnode>
+        <childnode id="206" relation="public-inheritance">
+        </childnode>
+        <childnode id="208" relation="public-inheritance">
+        </childnode>
+        <childnode id="212" relation="public-inheritance">
+        </childnode>
+        <childnode id="213" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="207">
+        <label>SpriteMesh.h</label>
+        <link id="SpriteMesh_8h-source"/>
+        <childnode id="204" relation="public-inheritance">
+        </childnode>
+        <childnode id="208" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="204">
+        <label>ConsoleImpl.cpp</label>
+        <link id="ConsoleImpl_8cpp-source"/>
+      </node>
+      <node id="208">
+        <label>SpriteMesh.cpp</label>
+        <link id="SpriteMesh_8cpp-source"/>
+      </node>
+      <node id="201">
+        <label>Console.h</label>
+        <link id="Console.h"/>
+        <childnode id="202" relation="public-inheritance">
+        </childnode>
+        <childnode id="214" relation="public-inheritance">
+        </childnode>
+        <childnode id="215" relation="public-inheritance">
+        </childnode>
+        <childnode id="216" relation="public-inheritance">
+        </childnode>
+        <childnode id="209" relation="public-inheritance">
+        </childnode>
+        <childnode id="210" relation="public-inheritance">
+        </childnode>
+        <childnode id="217" relation="public-inheritance">
+        </childnode>
+        <childnode id="212" relation="public-inheritance">
+        </childnode>
+        <childnode id="213" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="212">
+        <label>System.cpp</label>
+        <link id="System_8cpp-source"/>
+      </node>
+      <node id="205">
+        <label>Sprite3D.h</label>
+        <link id="Sprite3D_8h-source"/>
+        <childnode id="204" relation="public-inheritance">
+        </childnode>
+        <childnode id="206" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="216">
+        <label>Sprite2D.h</label>
+        <link id="Sprite2D_8h-source"/>
+        <childnode id="204" relation="public-inheritance">
+        </childnode>
+        <childnode id="211" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="203">
+        <label>AbstractSprite.cpp</label>
+        <link id="AbstractSprite_8cpp-source"/>
+      </node>
+      <node id="206">
+        <label>Sprite3D.cpp</label>
+        <link id="Sprite3D_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console">sf::system::console</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console_1_1font">sf::system::console::font</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console_1_1screen">sf::system::console::screen</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console_1_1sprite">sf::system::console::sprite</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console_1_1text">sf::system::console::text</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console_1_1viewport">sf::system::console::viewport</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="Console_8h_1a0" virt="normal" prot="public">
+        <name>AFX_IConsole_H__DB7BCF98_4A51_43E3_B919_9A26C58E6A90__INCLUDED_</name>
+        <briefdescription>
+<para>
+Ao?A\?\o\\81P\e!?\EEE\81âs\T\\81P\i. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="17" bodystart="17" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="Console_8h_1a1" virt="normal" prot="public">
+        <name>COLOR</name>
+        <param><defname>a</defname></param>
+        <param><defname>r</defname></param>
+        <param><defname>g</defname></param>
+        <param><defname>b</defname></param>
+        <initializer>((COLOR)((((a) &amp; 0xff) &lt;&lt; 24 )) | (((r) &amp; 0xff) &lt;&lt; 16) | (((g) &amp; 0xff) &lt;&lt; 8) | ((b) &amp; 0xff)))</initializer>
+        <briefdescription>
+<para>
+R,G,B,A?I3A?\81\98?\81á?e!\81\9132bit?IAI?oAA?e Red,Green,Blue,Alpha?I3A?\81\98ARE\81Ê(8bit)?o?a?E?E!\81\9132bit?IlongAI?oA\81CAR?\81E?T?1. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>a</parametername><parameterdescription><para>
+ALPHAARE\81Ê </para>
+</parameterdescription><parametername>r</parametername><parameterdescription><para>
+REDARE\81Ê </para>
+</parameterdescription><parametername>g</parametername><parameterdescription><para>
+GREENARE\81Ê </para>
+</parameterdescription><parametername>b</parametername><parameterdescription><para>
+BLUEARE\81Ê </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Console.h" line="42" bodystart="42" bodyend="-1"/>
+        <referencedby id="Console_8h_1a1">sf::system::console::Color::Color</referencedby>
+        <referencedby id="Console_8h_1a2">sf::system::console::Color::value</referencedby>
+        <referencedby id="Console_8h_1a0">sf::system::console::Console::~Console</referencedby>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+2eIIEA2e!E\1\\81~\e\?\E!|CO\81EE2eAu!E?I\?\o\?!?\O\\81\98!?\1!|Ae?oAe\83ÊA?o1O?|. 2eII\81LOI\81\91?IAe?oAe\83ÊA ?AoY?I?eIy?I!\81\91OS\81\8bIA\81C?I\81÷n?Y\\81P\e\1?EC??\81â?T?1!\81\92 2000/02/18 ?\81~?e!??o?\83Ê?o?I\e\?\O\e\e?o\81â21I?E\81\923\81\92AEoE\81Ê?oAE2A. </para>
+    </briefdescription>
+    <detaileddescription>
+<simplesect kind="author"><title>oi?O: </title><para>
+S.F. </para>
+</simplesect><simplesect kind="version"><title>\D!?\\81C\c\o: </title><para>
+$Id:</para>
+</simplesect><para>
+Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved. </para>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline></codeline>
+<linenumber line="15"/><codeline></codeline>
+<linenumber line="16"/><codeline><highlight class="preprocessor">#if !defined(AFX_IConsole_H__DB7BCF98_4A51_43E3_B919_9A26C58E6A90__INCLUDED_)</highlight></codeline>
+<linenumber line="17" refid="Console_8h_1a0"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_IConsole_H__DB7BCF98_4A51_43E3_B919_9A26C58E6A90__INCLUDED_</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &lt;memory&gt;</highlight></codeline>
+<linenumber line="23"/><codeline></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight></codeline>
+<linenumber line="25"/><codeline></codeline>
+<linenumber line="26"/><codeline><highlight class="comment">// \O\a!?\Y!?\E /////</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="28"/><codeline></codeline>
+<linenumber line="29"/><codeline><highlight class="keyword">namespace </highlight>sf{</codeline>
+<linenumber line="30"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="32"/><codeline></codeline>
+<linenumber line="33"/><codeline>              <highlight class="keyword">namespace </highlight>console {</codeline>
+<linenumber line="35"/><codeline>                      <highlight class="keyword">typedef</highlight> <highlight class="keywordtype">unsigned</highlight> <highlight class="keywordtype">long</highlight> <ref idref="Console_8h_1a1">COLOR</ref>;</codeline>
+<linenumber line="42" refid="Console_8h_1a1"/><codeline><highlight class="preprocessor">#define COLOR(a,r,g,b) ((COLOR)((((a) &amp; 0xff) &lt;&lt; 24 )) | (((r) &amp; 0xff) &lt;&lt; 16) | (((g) &amp; 0xff) &lt;&lt; 8) | ((b) &amp; 0xff)))</highlight></codeline>
+<linenumber line="43"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="47" refid="classsf_1_1system_1_1console_1_1Color_1"/><codeline>                      <highlight class="keyword">class </highlight>Color {</codeline>
+<linenumber line="48"/><codeline>                      <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="49"/><codeline>                              <ref idref="classsf_1_1system_1_1console_1_1Color_1a1">Color</ref>() { <ref idref="classsf_1_1system_1_1console_1_1Color_1o6">mColor</ref>.value32 = 0;};</codeline>
+<linenumber line="52" refid="classsf_1_1system_1_1console_1_1Color_1a1"/><codeline>                            <ref idref="classsf_1_1system_1_1console_1_1Color_1a1">Color</ref>(<ref idref="Console_8h_1a1">COLOR</ref> color){<ref idref="classsf_1_1system_1_1console_1_1Color_1o6">mColor</ref>.value32 = color;};</codeline>
+<linenumber line="55" refid="classsf_1_1system_1_1console_1_1Color_1a2"/><codeline>                            <ref idref="Console_8h_1a1">COLOR</ref> <ref idref="classsf_1_1system_1_1console_1_1Color_1a2">value</ref>(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1o6">mColor</ref>.value32;};</codeline>
+<linenumber line="58" refid="classsf_1_1system_1_1console_1_1Color_1a3"/><codeline>                            <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1a2">value</ref>(<ref idref="Console_8h_1a1">COLOR</ref> color){<ref idref="classsf_1_1system_1_1console_1_1Color_1o6">mColor</ref>.value32 = color;};</codeline>
+<linenumber line="59"/><codeline></codeline>
+<linenumber line="62" refid="classsf_1_1system_1_1console_1_1Color_1a4"/><codeline>                            <highlight class="keywordtype">unsigned</highlight> <highlight class="keywordtype">char</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1a4">red</ref>(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1o6">mColor</ref>.value.red;};</codeline>
+<linenumber line="65" refid="classsf_1_1system_1_1console_1_1Color_1a5"/><codeline>                            <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1a4">red</ref>(<highlight class="keywordtype">unsigned</highlight> <highlight class="keywordtype">char</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1o5">value</ref>) { <ref idref="classsf_1_1system_1_1console_1_1Color_1o6">mColor</ref>.value.red = <ref idref="classsf_1_1system_1_1console_1_1Color_1o5">value</ref>;};</codeline>
+<linenumber line="66"/><codeline></codeline>
+<linenumber line="69" refid="classsf_1_1system_1_1console_1_1Color_1a6"/><codeline>                            <highlight class="keywordtype">unsigned</highlight> <highlight class="keywordtype">char</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1a6">blue</ref>(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1o6">mColor</ref>.value.blue;};</codeline>
+<linenumber line="72" refid="classsf_1_1system_1_1console_1_1Color_1a7"/><codeline>                            <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1a6">blue</ref>(<highlight class="keywordtype">unsigned</highlight> <highlight class="keywordtype">char</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1o5">value</ref>) { <ref idref="classsf_1_1system_1_1console_1_1Color_1o6">mColor</ref>.value.blue = <ref idref="classsf_1_1system_1_1console_1_1Color_1o5">value</ref>;};</codeline>
+<linenumber line="73"/><codeline>                              </codeline>
+<linenumber line="76" refid="classsf_1_1system_1_1console_1_1Color_1a8"/><codeline>                            <highlight class="keywordtype">unsigned</highlight> <highlight class="keywordtype">char</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1a8">green</ref>(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1o6">mColor</ref>.value.green;};</codeline>
+<linenumber line="79" refid="classsf_1_1system_1_1console_1_1Color_1a9"/><codeline>                            <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1a8">green</ref>(<highlight class="keywordtype">unsigned</highlight> <highlight class="keywordtype">char</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1o5">value</ref>){<ref idref="classsf_1_1system_1_1console_1_1Color_1o6">mColor</ref>.value.green = <ref idref="classsf_1_1system_1_1console_1_1Color_1o5">value</ref>;};</codeline>
+<linenumber line="80"/><codeline>                              </codeline>
+<linenumber line="83" refid="classsf_1_1system_1_1console_1_1Color_1a10"/><codeline>                           <highlight class="keywordtype">unsigned</highlight> <highlight class="keywordtype">char</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1a10">alpha</ref>(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1o6">mColor</ref>.value.alpha;};</codeline>
+<linenumber line="86" refid="classsf_1_1system_1_1console_1_1Color_1a11"/><codeline>                           <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1a10">alpha</ref>(<highlight class="keywordtype">unsigned</highlight> <highlight class="keywordtype">char</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1o5">value</ref>){<ref idref="classsf_1_1system_1_1console_1_1Color_1o6">mColor</ref>.value.alpha = <ref idref="classsf_1_1system_1_1console_1_1Color_1o5">value</ref>;};</codeline>
+<linenumber line="87"/><codeline></codeline>
+<linenumber line="88"/><codeline>                      <highlight class="keyword">private</highlight>:</codeline>
+<linenumber line="90"/><codeline>                              <highlight class="keyword">union </highlight>{</codeline>
+<linenumber line="91" refid="classsf_1_1system_1_1console_1_1Color_1o0"/><codeline>                                    <ref idref="Console_8h_1a1">COLOR</ref> <ref idref="classsf_1_1system_1_1console_1_1Color_1o0">value32</ref>;</codeline>
+<linenumber line="92"/><codeline></codeline>
+<linenumber line="93"/><codeline>                                      <highlight class="keyword">struct </highlight>{</codeline>
+<linenumber line="94" refid="classsf_1_1system_1_1console_1_1Color_1o1"/><codeline>                                            <highlight class="keywordtype">unsigned</highlight> <highlight class="keywordtype">char</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1o1">blue</ref>   :       8;</codeline>
+<linenumber line="95" refid="classsf_1_1system_1_1console_1_1Color_1o2"/><codeline>                                            <highlight class="keywordtype">unsigned</highlight> <highlight class="keywordtype">char</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1o2">green</ref> :        8;</codeline>
+<linenumber line="96" refid="classsf_1_1system_1_1console_1_1Color_1o3"/><codeline>                                            <highlight class="keywordtype">unsigned</highlight> <highlight class="keywordtype">char</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1o3">red</ref>    :       8;</codeline>
+<linenumber line="97" refid="classsf_1_1system_1_1console_1_1Color_1o4"/><codeline>                                            <highlight class="keywordtype">unsigned</highlight> <highlight class="keywordtype">char</highlight> <ref idref="classsf_1_1system_1_1console_1_1Color_1o4">alpha</ref>  :       8;</codeline>
+<linenumber line="98"/><codeline>                                      } <ref idref="classsf_1_1system_1_1console_1_1Color_1o5">value</ref>;</codeline>
+<linenumber line="99"/><codeline>                                      </codeline>
+<linenumber line="100"/><codeline>                             } <ref idref="classsf_1_1system_1_1console_1_1Color_1o6">mColor</ref>;</codeline>
+<linenumber line="101"/><codeline>                     };</codeline>
+<linenumber line="102"/><codeline></codeline>
+<linenumber line="104" refid="namespacesf_1_1system_1_1console_1_1screen_1"/><codeline>                        <highlight class="keyword">namespace </highlight>screen {</codeline>
+<linenumber line="105"/><codeline>                             <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1screen_1a0">WIDTH</ref>  = 640;</codeline>
+<linenumber line="106"/><codeline>                             <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1screen_1a1">HEIGHT</ref> = 480;</codeline>
+<linenumber line="107"/><codeline>                     };</codeline>
+<linenumber line="108"/><codeline>                     </codeline>
+<linenumber line="110" refid="namespacesf_1_1system_1_1console_1_1viewport_1"/><codeline>                      <highlight class="keyword">namespace </highlight>viewport {</codeline>
+<linenumber line="111"/><codeline>                             <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1viewport_1a0">X</ref> = 120;        </codeline>
+<linenumber line="112"/><codeline>                             <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1viewport_1a1">Y</ref> = 0;  </codeline>
+<linenumber line="113"/><codeline>                             <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1viewport_1a2">Z_MIN</ref> = 0.0f;</codeline>
+<linenumber line="114"/><codeline>                             <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1viewport_1a3">Z_MAX</ref> = 1.0f;</codeline>
+<linenumber line="115"/><codeline>                             <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1screen_1a0">WIDTH</ref> = 400;</codeline>
+<linenumber line="116"/><codeline>                             <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1screen_1a1">HEIGHT</ref> = 480;</codeline>
+<linenumber line="117"/><codeline>                     };</codeline>
+<linenumber line="118"/><codeline>                     </codeline>
+<linenumber line="119"/><codeline>                     <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1console_1a1">TEXTURE_COUNT_MIN</ref> = 0;</codeline>
+<linenumber line="120"/><codeline>                     <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1console_1a2">TEXTURE_COUNT_MAX</ref> = 1024;</codeline>
+<linenumber line="121"/><codeline></codeline>
+<linenumber line="122"/><codeline>                     <highlight class="comment">// \1\\81~\e\?\E</highlight></codeline>
+<linenumber line="123"/><codeline></codeline>
+<linenumber line="124"/><codeline>                     <highlight class="keyword">class </highlight>ObjQuadrangle;</codeline>
+<linenumber line="125"/><codeline>                     <highlight class="keyword">class </highlight>ObjRectangle;</codeline>
+<linenumber line="126"/><codeline>                     <highlight class="keyword">class </highlight>Obj3DL;</codeline>
+<linenumber line="127"/><codeline></codeline>
+<linenumber line="128"/><codeline></codeline>
+<linenumber line="130"/><codeline>                     <highlight class="keyword">namespace </highlight>sprite {</codeline>
+<linenumber line="131"/><codeline>                             <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1sprite_1a0">MIN</ref> = 0;  </codeline>
+<linenumber line="132"/><codeline>                             <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1sprite_1a1">MAX</ref> = 1024; </codeline>
+<linenumber line="133"/><codeline>     </codeline>
+<linenumber line="135"/><codeline>                             <highlight class="keyword">enum</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1sprite_1a6">TYPE</ref></codeline>
+<linenumber line="136"/><codeline>                             {</codeline>
+<linenumber line="137"/><codeline>                                     <ref idref="namespacesf_1_1system_1_1console_1_1sprite_1a6a3">SPRITE2D</ref>,</codeline>
+<linenumber line="138"/><codeline>                                     <ref idref="namespacesf_1_1system_1_1console_1_1sprite_1a6a4">SPRITE3D</ref>,</codeline>
+<linenumber line="139"/><codeline>                                     <ref idref="namespacesf_1_1system_1_1console_1_1sprite_1a6a5">MESH</ref> </codeline>
+<linenumber line="140"/><codeline>                             };</codeline>
+<linenumber line="141"/><codeline></codeline>
+<linenumber line="145" refid="structsf_1_1system_1_1console_1_1sprite_1_1Info_1"/><codeline>                           <highlight class="keyword">struct </highlight>Info {</codeline>
+<linenumber line="146" refid="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m0"/><codeline>                                 <highlight class="keywordtype">char</highlight> <ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m0">fileName</ref>[_MAX_PATH];</codeline>
+<linenumber line="147" refid="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m1"/><codeline>                                 <highlight class="keywordtype">float</highlight> <ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m1">centerX</ref>;</codeline>
+<linenumber line="148" refid="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m2"/><codeline>                                 <highlight class="keywordtype">float</highlight> <ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m2">centerY</ref>;</codeline>
+<linenumber line="149" refid="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m3"/><codeline>                                 <highlight class="keywordtype">float</highlight> <ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m3">cellWidth</ref>;</codeline>
+<linenumber line="150" refid="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m4"/><codeline>                                 <highlight class="keywordtype">float</highlight> <ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m4">cellHeight</ref>;</codeline>
+<linenumber line="151" refid="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m5"/><codeline>                                 <ref idref="Console_8h_1a1">COLOR</ref> <ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m5">transparentColor</ref>;</codeline>
+<linenumber line="152" refid="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m6"/><codeline>                                 <ref idref="namespacesf_1_1system_1_1console_1_1sprite_1a6">TYPE</ref> <ref idref="structsf_1_1system_1_1console_1_1sprite_1_1Info_1m6">type</ref>;</codeline>
+<linenumber line="153"/><codeline>                             };</codeline>
+<linenumber line="154"/><codeline></codeline>
+<linenumber line="155"/><codeline>                     </codeline>
+<linenumber line="160" refid="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1"/><codeline>                          <highlight class="keyword">class </highlight>Sprite</codeline>
+<linenumber line="161"/><codeline>                             {</codeline>
+<linenumber line="162"/><codeline>                             <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="164" refid="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a0"/><codeline>                                        <highlight class="keyword">virtual</highlight> <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a0">~Sprite</ref>(){;};</codeline>
+<linenumber line="167"/><codeline>                                     <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a1">draw</ref>(<highlight class="keyword">const</highlight> sf::system::console::ObjRectangle * <highlight class="keyword">const</highlight> pObj) = 0;</codeline>
+<linenumber line="170"/><codeline>                                     <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a1">draw</ref>(<highlight class="keyword">const</highlight> sf::system::console::ObjQuadrangle * <highlight class="keyword">const</highlight> pObj) = 0;</codeline>
+<linenumber line="173"/><codeline>                                     <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a1">draw</ref>(<highlight class="keyword">const</highlight> sf::system::console::Obj3DL * <highlight class="keyword">const</highlight> pObj) = 0;</codeline>
+<linenumber line="176"/><codeline>                                     <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a4">centerX</ref>(<highlight class="keywordtype">void</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="179"/><codeline>                                     <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a5">centerY</ref>(<highlight class="keywordtype">void</highlight>) <highlight class="keyword">const</highlight>  = 0;</codeline>
+<linenumber line="182"/><codeline>                                     <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a6">width</ref>(<highlight class="keywordtype">void</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="185"/><codeline>                                     <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a7">height</ref>(<highlight class="keywordtype">void</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="186"/><codeline>                             };<highlight class="comment">// Sprite</highlight></codeline>
+<linenumber line="187"/><codeline>                             </codeline>
+<linenumber line="189"/><codeline>                             <highlight class="keyword">typedef</highlight> std::auto_ptr&lt;Sprite&gt; <ref idref="namespacesf_1_1system_1_1console_1_1sprite_1a2">PSprite</ref>;</codeline>
+<linenumber line="190"/><codeline></codeline>
+<linenumber line="191"/><codeline>                     };</codeline>
+<linenumber line="192"/><codeline>                     </codeline>
+<linenumber line="195" refid="namespacesf_1_1system_1_1console_1_1font_1"/><codeline>                  <highlight class="keyword">namespace </highlight>font {</codeline>
+<linenumber line="196"/><codeline>                             <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1font_1a0">COUNT_MAX</ref> = 2;</codeline>
+<linenumber line="197"/><codeline>                             <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1font_1a1">TEXTURE_WIDTH</ref> = 128;</codeline>
+<linenumber line="198"/><codeline>                             <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1font_1a2">TEXTURE_HEIGHT</ref> = 64;</codeline>
+<linenumber line="199"/><codeline>                             <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1screen_1a0">WIDTH</ref> = 8;</codeline>
+<linenumber line="200"/><codeline>                             <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1screen_1a1">HEIGHT</ref> = 8;</codeline>
+<linenumber line="201"/><codeline></codeline>
+<linenumber line="202"/><codeline>                             <highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1font_1a5">FILE_PATH</ref>[<ref idref="namespacesf_1_1system_1_1console_1_1font_1a0">COUNT_MAX</ref>][<ref idref="namespacesf_1_1system_1a1">MAX_PATH_</ref>] </codeline>
+<linenumber line="203"/><codeline>                                     = {     <highlight class="stringliteral">&quot;media\\font1.png&quot;</highlight>,</codeline>
+<linenumber line="204"/><codeline>                                     <highlight class="stringliteral">&quot;media\\font2.png&quot;</highlight></codeline>
+<linenumber line="205"/><codeline>                             };</codeline>
+<linenumber line="206"/><codeline>                     }</codeline>
+<linenumber line="207"/><codeline></codeline>
+<linenumber line="209" refid="namespacesf_1_1system_1_1console_1_1text_1"/><codeline>                  <highlight class="keyword">namespace </highlight>text {</codeline>
+<linenumber line="210"/><codeline>                             <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1text_1a0">BUFFER_LENGTH</ref> = 1024;</codeline>
+<linenumber line="211"/><codeline>                             <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1text_1a1">COLUMN_PITCH</ref> = 8.0f;</codeline>
+<linenumber line="212"/><codeline>                             <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1text_1a2">LINE_PITCH</ref> = 10.0f;</codeline>
+<linenumber line="213"/><codeline>                     }</codeline>
+<linenumber line="214"/><codeline></codeline>
+<linenumber line="216" refid="structsf_1_1system_1_1console_1_1Vertex_1"/><codeline>                   <highlight class="keyword">struct </highlight>Vertex {</codeline>
+<linenumber line="217"/><codeline>                             <highlight class="keywordtype">float</highlight>                <ref idref="structsf_1_1system_1_1console_1_1Vertex_1m0">x</ref>,</codeline>
+<linenumber line="218" refid="structsf_1_1system_1_1console_1_1Vertex_1m2"/><codeline>                                                 <ref idref="structsf_1_1system_1_1console_1_1Vertex_1m1">y</ref>,</codeline>
+<linenumber line="219"/><codeline>                                                     <ref idref="structsf_1_1system_1_1console_1_1Vertex_1m2">z</ref>,</codeline>
+<linenumber line="220"/><codeline>                                                     <ref idref="structsf_1_1system_1_1console_1_1Vertex_1m3">rhw</ref>;</codeline>
+<linenumber line="221"/><codeline>                             <ref idref="namespacesf_1a0">DWORD</ref>        <ref idref="structsf_1_1system_1_1console_1_1Vertex_1m4">diffuse</ref>,</codeline>
+<linenumber line="222" refid="structsf_1_1system_1_1console_1_1Vertex_1m5"/><codeline>                                         <ref idref="structsf_1_1system_1_1console_1_1Vertex_1m5">specular</ref>;</codeline>
+<linenumber line="223"/><codeline>                             <highlight class="keywordtype">float</highlight>   <ref idref="structsf_1_1system_1_1console_1_1Vertex_1m6">tu</ref>,</codeline>
+<linenumber line="224" refid="structsf_1_1system_1_1console_1_1Vertex_1m7"/><codeline>                                         <ref idref="structsf_1_1system_1_1console_1_1Vertex_1m7">tv</ref>;</codeline>
+<linenumber line="225"/><codeline>                     };</codeline>
+<linenumber line="226"/><codeline></codeline>
+<linenumber line="227"/><codeline></codeline>
+<linenumber line="229"/><codeline></codeline>
+<linenumber line="232" refid="classsf_1_1system_1_1console_1_1Console_1"/><codeline>                   <highlight class="keyword">class </highlight>Console </codeline>
+<linenumber line="233"/><codeline>                     {</codeline>
+<linenumber line="234"/><codeline>                             <highlight class="comment">// LIFECYCLE //</highlight></codeline>
+<linenumber line="235"/><codeline>                     <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="237" refid="classsf_1_1system_1_1console_1_1Console_1a0"/><codeline>                         <highlight class="keyword">virtual</highlight> <ref idref="classsf_1_1system_1_1console_1_1Console_1a0">~Console</ref>(){;};</codeline>
+<linenumber line="238"/><codeline></codeline>
+<linenumber line="239"/><codeline>                             <highlight class="comment">// OPERATORS //</highlight></codeline>
+<linenumber line="240"/><codeline>                             <highlight class="comment">// OPERATIONS //</highlight></codeline>
+<linenumber line="244"/><codeline><highlight class="comment"></highlight>                              <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1Console_1a1">initialize</ref>(<highlight class="keywordtype">void</highlight>) = 0;</codeline>
+<linenumber line="245"/><codeline></codeline>
+<linenumber line="249"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1Console_1a2">clearScreen</ref>(<ref idref="Console_8h_1a1">COLOR</ref> value = 0x00000000) = 0;</codeline>
+<linenumber line="250"/><codeline></codeline>
+<linenumber line="254"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1Console_1a3">fillScreen</ref>(<ref idref="Console_8h_1a1">COLOR</ref> value = 0x00000000) = 0;</codeline>
+<linenumber line="255"/><codeline></codeline>
+<linenumber line="261"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1Console_1a4">update</ref>(<highlight class="keywordtype">void</highlight>) = 0;</codeline>
+<linenumber line="262"/><codeline>                             </codeline>
+<linenumber line="264"/><codeline></codeline>
+<linenumber line="272"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1Console_1a5">print</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> textureNo,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> x,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> y,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> angleRad,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> scale,<highlight class="keyword">const</highlight> <ref idref="Console_8h_1a1">COLOR</ref> color,</codeline>
+<linenumber line="273"/><codeline>                                     <highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> *format,...) = 0;</codeline>
+<linenumber line="274"/><codeline></codeline>
+<linenumber line="279"/><codeline>                             <highlight class="keyword">virtual</highlight> sprite::Sprite * <highlight class="keyword">const</highlight> <ref idref="classsf_1_1system_1_1console_1_1Console_1a6">createSprite</ref>(<highlight class="keyword">const</highlight> sprite::Info* <highlight class="keyword">const</highlight> pInfo) = 0;</codeline>
+<linenumber line="280"/><codeline>                             <highlight class="comment">// ACCESS //</highlight></codeline>
+<linenumber line="281"/><codeline>                             </codeline>
+<linenumber line="282"/><codeline>                             <highlight class="comment">// INQUIRY //</highlight></codeline>
+<linenumber line="284"/><codeline><highlight class="comment">                          /*! @retval true \81âEIN2A </highlight></codeline>
+<linenumber line="285"/><codeline>                              *  @retval <highlight class="keyword">false</highlight> \81âEINEO2A */</codeline>
+<linenumber line="286"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1console_1_1Console_1a7">isEnabled</ref>(<highlight class="keywordtype">void</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="287"/><codeline>                     };<highlight class="comment">// Console()</highlight></codeline>
+<linenumber line="288"/><codeline>                     </codeline>
+<linenumber line="292"/><codeline>                     <highlight class="keyword">enum</highlight> <ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref> {</codeline>
+<linenumber line="293"/><codeline>                             <ref idref="namespacesf_1_1system_1_1console_1a12a3">DRAW_TRANS</ref>,</codeline>
+<linenumber line="294"/><codeline>                             <ref idref="namespacesf_1_1system_1_1console_1a12a4">DRAW_ADD</ref>,</codeline>
+<linenumber line="295"/><codeline>                             <ref idref="namespacesf_1_1system_1_1console_1a12a5">DRAW_ADD1</ref>,</codeline>
+<linenumber line="296"/><codeline>                             <ref idref="namespacesf_1_1system_1_1console_1a12a6">DRAW_SHADOW</ref>,</codeline>
+<linenumber line="297"/><codeline>                             <ref idref="namespacesf_1_1system_1_1console_1a12a7">DRAW_INV</ref>,</codeline>
+<linenumber line="298"/><codeline>                             <ref idref="namespacesf_1_1system_1_1console_1a12a8">DRAW_MUL</ref></codeline>
+<linenumber line="299"/><codeline>                     };<highlight class="comment">// DrawMode</highlight></codeline>
+<linenumber line="300"/><codeline></codeline>
+<linenumber line="301"/><codeline>             }<highlight class="comment">// namespace console</highlight></codeline>
+<linenumber line="302"/><codeline>     }<highlight class="comment">// namespace system</highlight></codeline>
+<linenumber line="303"/><codeline>}<highlight class="comment">//namespace sf</highlight></codeline>
+<linenumber line="304"/><codeline>}</codeline>
+<linenumber line="305"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_IConsole_H__DB7BCF98_4A51_43E3_B919_9A26C58E6A90__INCLUDED_)</highlight></codeline>
+<linenumber line="306"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Console.h"/>
+  </compounddef>
+  <compounddef id="ConsoleImpl_8cpp" kind="file">
+    <compoundname>ConsoleImpl.cpp</compoundname>
+    <includes id="sfdebug_8h" local="yes">sfdebug.h</includes>
+    <includes local="no">stdio.h</includes>
+    <includes local="no">queue</includes>
+    <includes local="yes">windows.h</includes>
+    <includes local="yes">windowsx.h</includes>
+    <includes local="yes">d3d8.h</includes>
+    <includes local="yes">d3dx8.h</includes>
+    <includes id="dxerr8sf_8h" local="yes">dxerr8sf.h</includes>
+    <includes local="yes">exception.h</includes>
+    <includes local="yes">sound.h</includes>
+    <includes id="System_8h" local="yes">System.h</includes>
+    <includes local="yes">console.h</includes>
+    <includes id="Obj_8h" local="yes">Obj.h</includes>
+    <includes id="Obj2D_8h" local="yes">Obj2D.h</includes>
+    <includes id="ObjRectangle_8h" local="yes">ObjRectangle.h</includes>
+    <includes id="ObjQuadrangle_8h" local="yes">ObjQuadrangle.h</includes>
+    <includes id="Obj3D_8h" local="yes">Obj3D.h</includes>
+    <includes id="Obj3DL_8h" local="yes">Obj3DL.h</includes>
+    <includes local="yes">input.h</includes>
+    <includes id="AbstractSprite_8h" local="yes">AbstractSprite.h</includes>
+    <includes id="ConsoleImpl_8h" local="yes">ConsoleImpl.h</includes>
+    <includes id="Main_8h" local="yes">Main.h</includes>
+    <includes id="Sprite2D_8h" local="yes">Sprite2D.h</includes>
+    <includes id="Sprite3D_8h" local="yes">Sprite3D.h</includes>
+    <includes id="SpriteMesh_8h" local="yes">SpriteMesh.h</includes>
+    <incdepgraph>
+      <node id="227">
+        <label>dxerr8.h</label>
+      </node>
+      <node id="221">
+        <label>queue</label>
+      </node>
+      <node id="222">
+        <label>windows.h</label>
+      </node>
+      <node id="230">
+        <label>System.h</label>
+        <link id="System_8h"/>
+        <childnode id="231" relation="public-inheritance">
+        </childnode>
+        <childnode id="232" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="223">
+        <label>windowsx.h</label>
+      </node>
+      <node id="231">
+        <label>string</label>
+      </node>
+      <node id="244">
+        <label>ConsoleImpl.h</label>
+        <link id="ConsoleImpl_8h"/>
+        <childnode id="232" relation="public-inheritance">
+        </childnode>
+        <childnode id="242" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="226">
+        <label>dxerr8sf.h</label>
+        <link id="dxerr8sf_8h-source"/>
+        <childnode id="227" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="219">
+        <label>sfdebug.h</label>
+        <link id="sfdebug_8h"/>
+      </node>
+      <node id="241">
+        <label>AbstractSprite.h</label>
+        <link id="AbstractSprite_8h-source"/>
+        <childnode id="232" relation="public-inheritance">
+        </childnode>
+        <childnode id="242" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="240">
+        <label>input.h</label>
+      </node>
+      <node id="248">
+        <label>SpriteMesh.h</label>
+        <link id="SpriteMesh_8h-source"/>
+        <childnode id="232" relation="public-inheritance">
+        </childnode>
+        <childnode id="241" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="218">
+        <label>ConsoleImpl.cpp</label>
+        <link id="ConsoleImpl.cpp"/>
+        <childnode id="219" relation="public-inheritance">
+        </childnode>
+        <childnode id="220" relation="public-inheritance">
+        </childnode>
+        <childnode id="221" relation="public-inheritance">
+        </childnode>
+        <childnode id="222" relation="public-inheritance">
+        </childnode>
+        <childnode id="223" relation="public-inheritance">
+        </childnode>
+        <childnode id="224" relation="public-inheritance">
+        </childnode>
+        <childnode id="225" relation="public-inheritance">
+        </childnode>
+        <childnode id="226" relation="public-inheritance">
+        </childnode>
+        <childnode id="228" relation="public-inheritance">
+        </childnode>
+        <childnode id="229" relation="public-inheritance">
+        </childnode>
+        <childnode id="230" relation="public-inheritance">
+        </childnode>
+        <childnode id="233" relation="public-inheritance">
+        </childnode>
+        <childnode id="234" relation="public-inheritance">
+        </childnode>
+        <childnode id="235" relation="public-inheritance">
+        </childnode>
+        <childnode id="236" relation="public-inheritance">
+        </childnode>
+        <childnode id="237" relation="public-inheritance">
+        </childnode>
+        <childnode id="238" relation="public-inheritance">
+        </childnode>
+        <childnode id="239" relation="public-inheritance">
+        </childnode>
+        <childnode id="240" relation="public-inheritance">
+        </childnode>
+        <childnode id="241" relation="public-inheritance">
+        </childnode>
+        <childnode id="244" relation="public-inheritance">
+        </childnode>
+        <childnode id="245" relation="public-inheritance">
+        </childnode>
+        <childnode id="246" relation="public-inheritance">
+        </childnode>
+        <childnode id="247" relation="public-inheritance">
+        </childnode>
+        <childnode id="248" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="232">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="229">
+        <label>sound.h</label>
+      </node>
+      <node id="242">
+        <label>Console.h</label>
+        <link id="Console_8h"/>
+        <childnode id="243" relation="public-inheritance">
+        </childnode>
+        <childnode id="232" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="233">
+        <label>console.h</label>
+      </node>
+      <node id="238">
+        <label>Obj3D.h</label>
+        <link id="Obj3D_8h-source"/>
+        <childnode id="232" relation="public-inheritance">
+        </childnode>
+        <childnode id="234" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="235">
+        <label>Obj2D.h</label>
+        <link id="Obj2D_8h-source"/>
+        <childnode id="232" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="236">
+        <label>ObjRectangle.h</label>
+        <link id="ObjRectangle_8h-source"/>
+        <childnode id="232" relation="public-inheritance">
+        </childnode>
+        <childnode id="234" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="247">
+        <label>Sprite3D.h</label>
+        <link id="Sprite3D_8h-source"/>
+        <childnode id="232" relation="public-inheritance">
+        </childnode>
+        <childnode id="241" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="239">
+        <label>Obj3DL.h</label>
+        <link id="Obj3DL_8h-source"/>
+        <childnode id="232" relation="public-inheritance">
+        </childnode>
+        <childnode id="238" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="246">
+        <label>Sprite2D.h</label>
+        <link id="Sprite2D_8h-source"/>
+        <childnode id="232" relation="public-inheritance">
+        </childnode>
+        <childnode id="242" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="234">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="232" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="237">
+        <label>ObjQuadrangle.h</label>
+        <link id="ObjQuadrangle_8h-source"/>
+        <childnode id="232" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="224">
+        <label>d3d8.h</label>
+      </node>
+      <node id="245">
+        <label>Main.h</label>
+        <link id="Main_8h-source"/>
+      </node>
+      <node id="228">
+        <label>exception.h</label>
+      </node>
+      <node id="225">
+        <label>d3dx8.h</label>
+      </node>
+      <node id="220">
+        <label>stdio.h</label>
+      </node>
+      <node id="243">
+        <label>memory</label>
+      </node>
+    </incdepgraph>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">//  Console Ae?Y\\81P\e\1?I?AAo\\81P\e\1?C?\81\91?eConsoleImpl?I?AAoEoE\81Ê?C?1!\81\92</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  Win32!\81\91ConsoleImpl8?C?AAo?\83Ê?i?T?1!\81\92</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">//  IuIo:</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// $Log: ConsoleImpl.cpp,v $</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// Revision 1.2  2001/11/06 21:27:42  fujiwara</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// AcEy11?\81EA\81\8b\D\A\\81P\\81\91\A\\81~</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// Revision 1.5  2001/07/09 20:30:08  fujiwara</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// Revision 1.4  2001/05/29 01:13:06  fujiwara</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">// \81â\81N\83Êu\-\a\e(Eo1OEa!E?IoiAR!\81\92CUAO\\81N\C\\81\92\??I\D\\81\8b??A\83Ê</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">// Revision 1.3  2001/05/17 12:34:10  fujiwara</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">// AI?aA\81N\\83Ê\o\\81~\eoiAR</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:48:13  fujiwara</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="comment">// 2001/01/29  \a\a\e!?\e!?\\81P\81C!?DIN\e\?\O\e\e?IAE2A </highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="comment">// 2001/02/18  ?\81~?e!??o?\83Ê?o?I\e\?\O\e\e?o\81â21I?E!\81\913D\1\\81~\e\?\E\81LOI\81\91?o?AAo</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor">#pragma warning( disable : 4786 4251) //STL?I\81EU1d3\81\8b?\81E</highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="34"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="35"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="sfdebug_8h">sfdebug.h</ref>&quot;</highlight></codeline>
+<linenumber line="36"/><codeline></codeline>
+<linenumber line="37"/><codeline><highlight class="comment">// SYSTEM INCLUDES</highlight></codeline>
+<linenumber line="38"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="39"/><codeline><highlight class="preprocessor">#include &lt;stdio.h&gt;</highlight></codeline>
+<linenumber line="40"/><codeline><highlight class="preprocessor">#include &lt;queue&gt;</highlight></codeline>
+<linenumber line="41"/><codeline><highlight class="preprocessor">#include &quot;windows.h&quot;</highlight></codeline>
+<linenumber line="42"/><codeline><highlight class="preprocessor">#include &quot;windowsx.h&quot;</highlight></codeline>
+<linenumber line="43"/><codeline></codeline>
+<linenumber line="44"/><codeline><highlight class="preprocessor">#include &quot;d3d8.h&quot;</highlight></codeline>
+<linenumber line="45"/><codeline><highlight class="preprocessor">#include &quot;d3dx8.h&quot;</highlight></codeline>
+<linenumber line="46"/><codeline><highlight class="preprocessor">#include &quot;dxerr8sf.h&quot;</highlight></codeline>
+<linenumber line="47"/><codeline></codeline>
+<linenumber line="48"/><codeline></codeline>
+<linenumber line="49"/><codeline><highlight class="comment">// PROJECT INCLUDES</highlight></codeline>
+<linenumber line="50"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="51"/><codeline><highlight class="preprocessor">#include &quot;exception.h&quot;</highlight></codeline>
+<linenumber line="52"/><codeline><highlight class="preprocessor">#include &quot;sound.h&quot;</highlight></codeline>
+<linenumber line="53"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="System_8h">System.h</ref>&quot;</highlight></codeline>
+<linenumber line="54"/><codeline><highlight class="preprocessor">#include &quot;console.h&quot;</highlight></codeline>
+<linenumber line="55"/><codeline><highlight class="preprocessor">#include &quot;Obj.h&quot;</highlight></codeline>
+<linenumber line="56"/><codeline><highlight class="preprocessor">#include &quot;Obj2D.h&quot;</highlight></codeline>
+<linenumber line="57"/><codeline><highlight class="preprocessor">#include &quot;ObjRectangle.h&quot;</highlight></codeline>
+<linenumber line="58"/><codeline><highlight class="preprocessor">#include &quot;ObjQuadrangle.h&quot;</highlight></codeline>
+<linenumber line="59"/><codeline><highlight class="preprocessor">#include &quot;Obj3D.h&quot;</highlight></codeline>
+<linenumber line="60"/><codeline><highlight class="preprocessor">#include &quot;Obj3DL.h&quot;</highlight></codeline>
+<linenumber line="61"/><codeline><highlight class="preprocessor">#include &quot;input.h&quot;</highlight></codeline>
+<linenumber line="62"/><codeline><highlight class="preprocessor">#include &quot;AbstractSprite.h&quot;</highlight></codeline>
+<linenumber line="63"/><codeline></codeline>
+<linenumber line="64"/><codeline></codeline>
+<linenumber line="65"/><codeline></codeline>
+<linenumber line="66"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="ConsoleImpl_8h">ConsoleImpl.h</ref>&quot;</highlight></codeline>
+<linenumber line="67"/><codeline><highlight class="preprocessor">#include &quot;Main.h&quot;</highlight></codeline>
+<linenumber line="68"/><codeline><highlight class="preprocessor">#include &quot;Sprite2D.h&quot;</highlight></codeline>
+<linenumber line="69"/><codeline><highlight class="preprocessor">#include &quot;Sprite3D.h&quot;</highlight></codeline>
+<linenumber line="70"/><codeline><highlight class="preprocessor">#include &quot;SpriteMesh.h&quot;</highlight></codeline>
+<linenumber line="71"/><codeline></codeline>
+<linenumber line="72"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="73"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define new DEBUG_NEW</highlight></codeline>
+<linenumber line="74"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="75"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="76"/><codeline><highlight class="keyword">using</highlight> <highlight class="keyword">namespace </highlight>sf::system::console;</codeline>
+<linenumber line="77"/><codeline>using namespace sf::system::console::sprite;</codeline>
+<linenumber line="78"/><codeline></codeline>
+<linenumber line="79"/><codeline></codeline>
+<linenumber line="80" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1a0"/><codeline>ConsoleImpl::ConsoleImpl()</codeline>
+<linenumber line="81"/><codeline>{</codeline>
+<linenumber line="82"/><codeline>      mbD3DReady = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="83"/><codeline>      mpD3D = NULL;</codeline>
+<linenumber line="84"/><codeline>      mpD3DDevice = NULL;</codeline>
+<linenumber line="85"/><codeline>      mpD3DXSprite = NULL;</codeline>
+<linenumber line="86"/><codeline>}</codeline>
+<linenumber line="87"/><codeline></codeline>
+<linenumber line="88" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1a1"/><codeline>ConsoleImpl::ConsoleImpl(<highlight class="keyword">const</highlight> HWND hwnd,<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bWindow)</codeline>
+<linenumber line="89"/><codeline>{</codeline>
+<linenumber line="90"/><codeline>      <highlight class="comment">// HWND?I\3\O!?</highlight></codeline>
+<linenumber line="91"/><codeline>      <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o0">mhWndMain</ref> = hwnd;</codeline>
+<linenumber line="92"/><codeline>      <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o2">mbWindowed</ref> = bWindow;</codeline>
+<linenumber line="93"/><codeline></codeline>
+<linenumber line="94"/><codeline>}</codeline>
+<linenumber line="95"/><codeline></codeline>
+<linenumber line="96" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1a2"/><codeline>ConsoleImpl::~ConsoleImpl()</codeline>
+<linenumber line="97"/><codeline>{</codeline>
+<linenumber line="98"/><codeline>      <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1a5">uninitialize</ref>();</codeline>
+<linenumber line="99"/><codeline>}</codeline>
+<linenumber line="100"/><codeline></codeline>
+<linenumber line="101" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1a3"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::initialize(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="102"/><codeline>{</codeline>
+<linenumber line="103"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1a3">initialize</ref>(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o0">mhWndMain</ref>,<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o2">mbWindowed</ref>);</codeline>
+<linenumber line="104"/><codeline>};</codeline>
+<linenumber line="105"/><codeline><highlight class="comment">// ?e\81Lu2? !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="106" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1a4"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::initialize(<highlight class="keyword">const</highlight> HWND hwnd,<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bWindow)</codeline>
+<linenumber line="107"/><codeline>{</codeline>
+<linenumber line="108"/><codeline>     <highlight class="keywordtype">int</highlight> i;</codeline>
+<linenumber line="109"/><codeline>     HRESULT hr;</codeline>
+<linenumber line="110"/><codeline>                             </codeline>
+<linenumber line="111"/><codeline>     <highlight class="comment">// 3A1aIU?I\\81P\e\\81\91</highlight></codeline>
+<linenumber line="112"/><codeline>                             </codeline>
+<linenumber line="113"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3">mpD3D</ref> = NULL;</codeline>
+<linenumber line="114"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref> = NULL;</codeline>
+<linenumber line="115"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o6">mpD3DXSprite</ref> = NULL;</codeline>
+<linenumber line="116"/><codeline>     </codeline>
+<linenumber line="117"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o1">mbD3DReady</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="118"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o2">mbWindowed</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="119"/><codeline>     </codeline>
+<linenumber line="120"/><codeline>     <highlight class="keywordflow">for</highlight>(i = 0;i &lt; font::COUNT_MAX;i++)</codeline>
+<linenumber line="121"/><codeline>     {</codeline>
+<linenumber line="122"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o11">mpFontTexture</ref>[i] = NULL;</codeline>
+<linenumber line="123"/><codeline>     }</codeline>
+<linenumber line="124"/><codeline>     </codeline>
+<linenumber line="125"/><codeline>     ZeroMemory( &amp;<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>, <highlight class="keyword">sizeof</highlight>(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>) );</codeline>
+<linenumber line="126"/><codeline>     </codeline>
+<linenumber line="127"/><codeline>     <highlight class="comment">// HWND?I\3\O!?</highlight></codeline>
+<linenumber line="128"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o0">mhWndMain</ref> = hwnd;</codeline>
+<linenumber line="129"/><codeline>     </codeline>
+<linenumber line="130"/><codeline>     <highlight class="comment">// D3D Object ?IA\81CAR</highlight></codeline>
+<linenumber line="131"/><codeline>     <highlight class="keywordflow">if</highlight>( NULL == ( <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3">mpD3D</ref> = Direct3DCreate8( D3D_SDK_VERSION ) ) )</codeline>
+<linenumber line="132"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(<highlight class="stringliteral">&quot;D3D8 Create Error&quot;</highlight>,__FILE__,__LINE__);</codeline>
+<linenumber line="133"/><codeline>     </codeline>
+<linenumber line="134"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c0">checkAndSetDevice</ref>();</codeline>
+<linenumber line="135"/><codeline>     </codeline>
+<linenumber line="136"/><codeline>     <highlight class="comment">//</highlight></codeline>
+<linenumber line="137"/><codeline>     <highlight class="comment">//D3DPRESENT_PARAMETERS mD3Dpp; </highlight></codeline>
+<linenumber line="138"/><codeline>     </codeline>
+<linenumber line="139"/><codeline>     ZeroMemory(&amp;<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>,<highlight class="keyword">sizeof</highlight>(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>));</codeline>
+<linenumber line="140"/><codeline></codeline>
+<linenumber line="141"/><codeline>     <highlight class="keywordflow">if</highlight>(bWindow){</codeline>
+<linenumber line="142"/><codeline>             <highlight class="comment">//\|\\81\92\o\E\|\a!?\E!E\C\D\A\\81\8bIN!E</highlight></codeline>
+<linenumber line="143"/><codeline>             D3DDISPLAYMODE d3ddm;</codeline>
+<linenumber line="144"/><codeline>             <highlight class="keywordflow">if</highlight>( FAILED( hr = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3">mpD3D</ref>-&gt;GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &amp;d3ddm ) ) )</codeline>
+<linenumber line="145"/><codeline>             {       <highlight class="keywordflow">throw</highlight> FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);  }</codeline>
+<linenumber line="146"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>.Windowed = TRUE;</codeline>
+<linenumber line="147"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>.BackBufferFormat = d3ddm.Format;</codeline>
+<linenumber line="148"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o7">mD3DFormat</ref> = d3ddm.Format;</codeline>
+<linenumber line="149"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>.SwapEffect = D3DSWAPEFFECT_COPY;</codeline>
+<linenumber line="150"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o2">mbWindowed</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="151"/><codeline>     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="152"/><codeline>             <highlight class="comment">//\O\e\1\\81P\e!?\o\a!?\E</highlight></codeline>
+<linenumber line="153"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>.Windowed = FALSE;</codeline>
+<linenumber line="154"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>.BackBufferWidth = screen::WIDTH;</codeline>
+<linenumber line="155"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>.BackBufferHeight = screen::HEIGHT;</codeline>
+<linenumber line="156"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>.BackBufferCount = 1;</codeline>
+<linenumber line="157"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>.BackBufferFormat = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o7">mD3DFormat</ref>;</codeline>
+<linenumber line="158"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>.FullScreen_RefreshRateInHz = 0;</codeline>
+<linenumber line="159"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>.FullScreen_PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE ;</codeline>
+<linenumber line="160"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>.SwapEffect = D3DSWAPEFFECT_COPY;</codeline>
+<linenumber line="161"/><codeline><highlight class="comment">//                mD3Dpp.Flags = D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;</highlight></codeline>
+<linenumber line="162"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o2">mbWindowed</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="163"/><codeline>     }</codeline>
+<linenumber line="164"/><codeline>     </codeline>
+<linenumber line="165"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>.EnableAutoDepthStencil = TRUE;</codeline>
+<linenumber line="166"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>.AutoDepthStencilFormat = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o9">mDepthFormat</ref>;</codeline>
+<linenumber line="167"/><codeline>     <highlight class="comment">//   mD3Dpp.MultiSampleType = D3DMULTISAMPLE_NONE;</highlight></codeline>
+<linenumber line="168"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>.hDeviceWindow = hwnd;</codeline>
+<linenumber line="169"/><codeline>     </codeline>
+<linenumber line="170"/><codeline>     <highlight class="comment">//3D\C\D\?\1?I?eAA//</highlight></codeline>
+<linenumber line="171"/><codeline>     <highlight class="comment">// HAL?\81áREF?I?E?A?e?\81á?o?eAA //</highlight></codeline>
+<linenumber line="172"/><codeline>     <highlight class="keywordflow">if</highlight>( FAILED( hr = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3">mpD3D</ref>-&gt;CreateDevice( D3DADAPTER_DEFAULT, <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o4">mD3DDeviceType</ref>, hwnd,</codeline>
+<linenumber line="173"/><codeline>             D3DCREATE_SOFTWARE_VERTEXPROCESSING,</codeline>
+<linenumber line="174"/><codeline>             &amp;<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>, &amp;<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref> ) ) )</codeline>
+<linenumber line="175"/><codeline>     {</codeline>
+<linenumber line="176"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="177"/><codeline>     }</codeline>
+<linenumber line="178"/><codeline></codeline>
+<linenumber line="179"/><codeline>     <highlight class="comment">// \1\\81~\e\?\E\a\O\\81C\\81\98\\81P\E?I?e\81Lu2?</highlight></codeline>
+<linenumber line="180"/><codeline>     <highlight class="keywordflow">for</highlight>(i = 0;i &lt; sprite::MAX;i++)</codeline>
+<linenumber line="181"/><codeline>     {</codeline>
+<linenumber line="182"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o12">mpSprite</ref>[i] = NULL;</codeline>
+<linenumber line="183"/><codeline>             <highlight class="comment">//mSprite[i]-&gt;initialize(mpD3DDevice);</highlight></codeline>
+<linenumber line="184"/><codeline>     }</codeline>
+<linenumber line="185"/><codeline></codeline>
+<linenumber line="186"/><codeline>     </codeline>
+<linenumber line="187"/><codeline>     <highlight class="comment">// D3DDevice?\81ÊReset\81ât?ECE\81Lt?\81E?E?\81P?A?I???\81}?E??\a\O\\81C\\81\98\\81P\E?I?e\81Lu2?</highlight></codeline>
+<linenumber line="188"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c9">initNotManagedObjects</ref>();</codeline>
+<linenumber line="189"/><codeline>     </codeline>
+<linenumber line="190"/><codeline>     <highlight class="comment">// 2eII!|\O\a!?\Y!?\E?I\3!?\C\\81\92\I!?\E</highlight></codeline>
+<linenumber line="191"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c6">initConsoleViewStyle</ref>();</codeline>
+<linenumber line="192"/><codeline>     </codeline>
+<linenumber line="193"/><codeline>     <highlight class="comment">// \C\D\?\1?I?e\81Lu2?</highlight></codeline>
+<linenumber line="194"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c5">initDeviceStates</ref>();</codeline>
+<linenumber line="195"/><codeline>     </codeline>
+<linenumber line="196"/><codeline>     <highlight class="comment">// E\81C\81âu\O\c\o\E?I\i!?\E</highlight></codeline>
+<linenumber line="197"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c11">loadFont</ref>();</codeline>
+<linenumber line="198"/><codeline></codeline>
+<linenumber line="199"/><codeline>     <highlight class="comment">// Lock the surface and write the alpha values for the set pixels</highlight></codeline>
+<linenumber line="200"/><codeline><highlight class="preprocessor">#ifdef _DEBUG </highlight></codeline>
+<linenumber line="201"/><codeline><highlight class="preprocessor"></highlight> D3DSURFACE_DESC des;</codeline>
+<linenumber line="202"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o11">mpFontTexture</ref>[0]-&gt;GetLevelDesc(0,&amp;des);</codeline>
+<linenumber line="203"/><codeline>     <highlight class="keywordtype">char</highlight> pdebug_str[256];</codeline>
+<linenumber line="204"/><codeline>     sprintf(pdebug_str,<highlight class="stringliteral">&quot;format: %d &quot;</highlight>,des.Format);</codeline>
+<linenumber line="205"/><codeline>     OutputDebugString(pdebug_str);</codeline>
+<linenumber line="206"/><codeline><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="207"/><codeline><highlight class="preprocessor"></highlight> <highlight class="comment">//\\81P\e\A\\81~II\81\8be?o\\81P\e\\81\91//</highlight></codeline>
+<linenumber line="208"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o1">mbD3DReady</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="209"/><codeline>}<highlight class="comment">//initialize()</highlight></codeline>
+<linenumber line="210"/><codeline></codeline>
+<linenumber line="211"/><codeline><highlight class="comment">// oCA\81Ê?E\81\923\81\92A\C\D\?\1?oAA?e --------------------------------------------------</highlight></codeline>
+<linenumber line="212" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1c0"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::checkAndSetDevice(<highlight class="keyword">const</highlight> D3DDEVTYPE devtype)</codeline>
+<linenumber line="213"/><codeline>{</codeline>
+<linenumber line="214"/><codeline>     <highlight class="keywordflow">try</highlight> {</codeline>
+<linenumber line="215"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c1">checkAndSetDeviceType</ref>(devtype);</codeline>
+<linenumber line="216"/><codeline>     } <highlight class="keywordflow">catch</highlight>(RecoverbleErrorException e) {</codeline>
+<linenumber line="217"/><codeline>             <highlight class="keywordflow">if</highlight>(e.errorType() == <ref idref="classsf_1_1system_1_1Exception_1s4s1">sf::system::Exception::DEVICE_NOT_FOUND</ref>){</codeline>
+<linenumber line="218"/><codeline>                     <highlight class="keywordflow">try</highlight> {</codeline>
+<linenumber line="219"/><codeline>                             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c1">checkAndSetDeviceType</ref>(D3DDEVTYPE_REF);</codeline>
+<linenumber line="220"/><codeline>                     } <highlight class="keywordflow">catch</highlight> (RecoverbleErrorException e){</codeline>
+<linenumber line="221"/><codeline>                             <highlight class="keywordflow">if</highlight>(e.errorType() == <ref idref="classsf_1_1system_1_1Exception_1s4s1">sf::system::Exception::DEVICE_NOT_FOUND</ref>){</codeline>
+<linenumber line="222"/><codeline>                                     <highlight class="keywordflow">throw</highlight> FatalErrorException(<highlight class="stringliteral">&quot;Device Not Found&quot;</highlight>,__FILE__,__LINE__,<ref idref="classsf_1_1system_1_1Exception_1s4s1">sf::system::Exception::DEVICE_NOT_FOUND</ref>);</codeline>
+<linenumber line="223"/><codeline>                             }</codeline>
+<linenumber line="224"/><codeline>                     } <highlight class="keywordflow">catch</highlight>(...) {</codeline>
+<linenumber line="225"/><codeline>                             <highlight class="keywordflow">throw</highlight>;</codeline>
+<linenumber line="226"/><codeline>                     }</codeline>
+<linenumber line="227"/><codeline>             } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="228"/><codeline>                     <highlight class="keywordflow">throw</highlight>;</codeline>
+<linenumber line="229"/><codeline>             }</codeline>
+<linenumber line="230"/><codeline>     } <highlight class="keywordflow">catch</highlight>(...){</codeline>
+<linenumber line="231"/><codeline>             <highlight class="keywordflow">throw</highlight>;</codeline>
+<linenumber line="232"/><codeline>     }</codeline>
+<linenumber line="233"/><codeline>}<highlight class="comment">// checkAndSetDevice()</highlight></codeline>
+<linenumber line="234"/><codeline></codeline>
+<linenumber line="235"/><codeline><highlight class="comment">// \C\D\?\1\?\?\\81~?o\A\1\E?1?e -------------------------------------------------</highlight></codeline>
+<linenumber line="236" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1c1"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::checkAndSetDeviceType(<highlight class="keyword">const</highlight> D3DDEVTYPE devtype)</codeline>
+<linenumber line="237"/><codeline>{</codeline>
+<linenumber line="238"/><codeline>     <highlight class="comment">// \\81\91\e\O\!\O\i\o\E\1\\81~\e\?\E?o\\83Ê\Y!?\E?\81E?A???e?a?A?E?a1aAR?E\?\?\\81~\81C!?D</highlight></codeline>
+<linenumber line="239"/><codeline>     <highlight class="comment">// ?E???A?A?aHAL?\81áREF?\81á?oAa?O?A?\81}?C?1?\81Ê...</highlight></codeline>
+<linenumber line="240"/><codeline>     <highlight class="comment">// REF?C?a\A\a?E?e\\81N\e!??C?aI\81â </highlight></codeline>
+<linenumber line="241"/><codeline>     </codeline>
+<linenumber line="242"/><codeline>     HRESULT hr = S_OK;</codeline>
+<linenumber line="243"/><codeline>     D3DCAPS8        d3dcaps8;</codeline>
+<linenumber line="244"/><codeline>     ZeroMemory(&amp;d3dcaps8,<highlight class="keyword">sizeof</highlight>(d3dcaps8));</codeline>
+<linenumber line="245"/><codeline>     </codeline>
+<linenumber line="246"/><codeline>     hr = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3">mpD3D</ref>-&gt;GetDeviceCaps(D3DADAPTER_DEFAULT,devtype,&amp;d3dcaps8);</codeline>
+<linenumber line="247"/><codeline>     <highlight class="keywordflow">if</highlight>(SUCCEEDED(hr))</codeline>
+<linenumber line="248"/><codeline>     {       </codeline>
+<linenumber line="249"/><codeline>             <highlight class="keywordflow">if</highlight>(!((d3dcaps8.SrcBlendCaps &amp; D3DPBLENDCAPS_SRCALPHA) &amp;&amp;</codeline>
+<linenumber line="250"/><codeline>                     (d3dcaps8.DestBlendCaps &amp; D3DPBLENDCAPS_INVSRCALPHA) &amp;&amp;</codeline>
+<linenumber line="251"/><codeline>                     (d3dcaps8.TextureFilterCaps &amp; D3DPTFILTERCAPS_MAGFLINEAR ) &amp;&amp;</codeline>
+<linenumber line="252"/><codeline>                     (d3dcaps8.TextureOpCaps &amp; D3DTEXOPCAPS_MODULATE )</codeline>
+<linenumber line="253"/><codeline>                     )){</codeline>
+<linenumber line="254"/><codeline>                     <highlight class="keywordflow">throw</highlight> RecoverbleErrorException(<highlight class="stringliteral">&quot;Device Not Found&quot;</highlight>,__FILE__,__LINE__,<ref idref="classsf_1_1system_1_1Exception_1s4s1">sf::system::Exception::DEVICE_NOT_FOUND</ref>);</codeline>
+<linenumber line="255"/><codeline>             } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="256"/><codeline>                     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o4">mD3DDeviceType</ref> = devtype;</codeline>
+<linenumber line="257"/><codeline>                     </codeline>
+<linenumber line="258"/><codeline>                     <highlight class="comment">// 16bit?I\D\A\\81P\D\A\O\!?I\O\c!?\T\A\E?oAA?e</highlight></codeline>
+<linenumber line="259"/><codeline>                     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c2">checkAndSetBackBufferFormat</ref>();</codeline>
+<linenumber line="260"/><codeline>                     </codeline>
+<linenumber line="261"/><codeline>                     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c4">checkAndSetDepthFormat</ref>();</codeline>
+<linenumber line="262"/><codeline>                     </codeline>
+<linenumber line="263"/><codeline>                     <highlight class="comment">// Ac2a?eIy?\81Ê\81âEIN?C?-?e\A\\81P\1\A\a\O\c!?\T\A\E?oAA?e</highlight></codeline>
+<linenumber line="264"/><codeline>                     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c3">checkAndSetTextureFormat</ref>();</codeline>
+<linenumber line="265"/><codeline>             }</codeline>
+<linenumber line="266"/><codeline>             </codeline>
+<linenumber line="267"/><codeline>     }  </codeline>
+<linenumber line="268"/><codeline>     <highlight class="keywordflow">return</highlight>;</codeline>
+<linenumber line="269"/><codeline>}<highlight class="comment">// checkAndSetDeviceType()</highlight></codeline>
+<linenumber line="270"/><codeline>                     </codeline>
+<linenumber line="271"/><codeline><highlight class="comment">// \D\A\\81P\D\A\O\!?I\O\c!?\T\A\E?oAA?e ---------------------------------------</highlight></codeline>
+<linenumber line="272" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1c2"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::checkAndSetBackBufferFormat(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="273"/><codeline>{</codeline>
+<linenumber line="274"/><codeline>     <highlight class="comment">//oCA\81Ê?E!\81\9116bit\\81á\e!?\a!?\E?IAaAo</highlight></codeline>
+<linenumber line="275"/><codeline>     <highlight class="keywordflow">if</highlight>(SUCCEEDED(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3">mpD3D</ref>-&gt;CheckDeviceType(D3DADAPTER_DEFAULT,<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o4">mD3DDeviceType</ref> ,D3DFMT_A1R5G5B5,D3DFMT_A1R5G5B5,FALSE)))</codeline>
+<linenumber line="276"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o7">mD3DFormat</ref> = D3DFMT_A1R5G5B5;</codeline>
+<linenumber line="277"/><codeline>     <highlight class="keywordflow">else</highlight></codeline>
+<linenumber line="278"/><codeline>     {</codeline>
+<linenumber line="279"/><codeline>             <highlight class="keywordflow">if</highlight>(SUCCEEDED(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3">mpD3D</ref>-&gt;CheckDeviceType(D3DADAPTER_DEFAULT,<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o4">mD3DDeviceType</ref> ,D3DFMT_A4R4G4B4,D3DFMT_A4R4G4B4,FALSE))){</codeline>
+<linenumber line="280"/><codeline>                     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o7">mD3DFormat</ref> = D3DFMT_A4R4G4B4;</codeline>
+<linenumber line="281"/><codeline>             } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="282"/><codeline>                     <highlight class="keywordflow">if</highlight>(SUCCEEDED(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3">mpD3D</ref>-&gt;CheckDeviceType(D3DADAPTER_DEFAULT,<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o4">mD3DDeviceType</ref> ,D3DFMT_X1R5G5B5,D3DFMT_X1R5G5B5,FALSE))){</codeline>
+<linenumber line="283"/><codeline>                             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o7">mD3DFormat</ref> = D3DFMT_X1R5G5B5;</codeline>
+<linenumber line="284"/><codeline>                     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="285"/><codeline>                             <highlight class="keywordflow">if</highlight>(SUCCEEDED(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3">mpD3D</ref>-&gt;CheckDeviceType(D3DADAPTER_DEFAULT,<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o4">mD3DDeviceType</ref> ,D3DFMT_R5G6B5,D3DFMT_R5G6B5,FALSE))){</codeline>
+<linenumber line="286"/><codeline>                                     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o7">mD3DFormat</ref> = D3DFMT_R5G6B5;</codeline>
+<linenumber line="287"/><codeline>                             } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="288"/><codeline>                                     <highlight class="keywordflow">if</highlight>(SUCCEEDED(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3">mpD3D</ref>-&gt;CheckDeviceType(D3DADAPTER_DEFAULT,<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o4">mD3DDeviceType</ref> ,D3DFMT_X4R4G4B4,D3DFMT_X4R4G4B4,FALSE))){</codeline>
+<linenumber line="289"/><codeline>                                             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o7">mD3DFormat</ref> = D3DFMT_X4R4G4B4;</codeline>
+<linenumber line="290"/><codeline>                                     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="291"/><codeline>                                             <highlight class="keywordflow">throw</highlight> RecoverbleErrorException(<highlight class="stringliteral">&quot;Back Buffer Format Not Found&quot;</highlight>,__FILE__,__LINE__,<ref idref="classsf_1_1system_1_1Exception_1s4s1">sf::system::Exception::DEVICE_NOT_FOUND</ref>);</codeline>
+<linenumber line="292"/><codeline>                                     }</codeline>
+<linenumber line="293"/><codeline>                             }</codeline>
+<linenumber line="294"/><codeline>                     }</codeline>
+<linenumber line="295"/><codeline>             }</codeline>
+<linenumber line="296"/><codeline>     }</codeline>
+<linenumber line="297"/><codeline>}<highlight class="comment">// checkAndSetBackBufferFormat()</highlight></codeline>
+<linenumber line="298"/><codeline>                     </codeline>
+<linenumber line="299"/><codeline><highlight class="comment">// \A\\81P\1\A\a\\83Ê!?\O\\81\98!?\1?I\O\c!?\T\A\E?o?eAA?1?e -----------------------------</highlight></codeline>
+<linenumber line="300" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1c3"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::checkAndSetTextureFormat(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="301"/><codeline>{</codeline>
+<linenumber line="302"/><codeline>     <highlight class="comment">// |A\O\A\E?o?a?A\A\\81P\1\A\a!?\O\c!?\T\A\E?oA\83Ê?1 </highlight></codeline>
+<linenumber line="303"/><codeline>     <highlight class="keywordflow">if</highlight>(SUCCEEDED(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3">mpD3D</ref>-&gt;CheckDeviceFormat(D3DADAPTER_DEFAULT,<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o4">mD3DDeviceType</ref>,<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o7">mD3DFormat</ref>,0,D3DRTYPE_TEXTURE,D3DFMT_A1R5G5B5))){</codeline>
+<linenumber line="304"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o8">mTextureFormat</ref> = D3DFMT_A1R5G5B5;</codeline>
+<linenumber line="305"/><codeline>     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="306"/><codeline>             <highlight class="keywordflow">if</highlight>(SUCCEEDED(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3">mpD3D</ref>-&gt;CheckDeviceFormat(D3DADAPTER_DEFAULT,<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o4">mD3DDeviceType</ref>,<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o7">mD3DFormat</ref>,0,D3DRTYPE_TEXTURE,D3DFMT_A4R4G4B4))){</codeline>
+<linenumber line="307"/><codeline>                     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o8">mTextureFormat</ref> = D3DFMT_A4R4G4B4;</codeline>
+<linenumber line="308"/><codeline>             } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="309"/><codeline>                     <highlight class="keywordflow">if</highlight>(SUCCEEDED(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3">mpD3D</ref>-&gt;CheckDeviceFormat(D3DADAPTER_DEFAULT,<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o4">mD3DDeviceType</ref>,<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o7">mD3DFormat</ref>,0,D3DRTYPE_TEXTURE,D3DFMT_A8R3G3B2))){</codeline>
+<linenumber line="310"/><codeline>                             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o8">mTextureFormat</ref> = D3DFMT_A8R3G3B2;</codeline>
+<linenumber line="311"/><codeline>                     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="312"/><codeline>                             <highlight class="keywordflow">throw</highlight> RecoverbleErrorException(<highlight class="stringliteral">&quot;Texture Format Not Found&quot;</highlight>,__FILE__,__LINE__,<ref idref="classsf_1_1system_1_1Exception_1s4s1">sf::system::Exception::DEVICE_NOT_FOUND</ref>);</codeline>
+<linenumber line="313"/><codeline>                     }</codeline>
+<linenumber line="314"/><codeline>             }</codeline>
+<linenumber line="315"/><codeline>     }</codeline>
+<linenumber line="316"/><codeline>}<highlight class="comment">// checkAndSerTextureFormat()</highlight></codeline>
+<linenumber line="317"/><codeline></codeline>
+<linenumber line="318"/><codeline><highlight class="comment">// ??AU\D\A\O\!?I\O\c!?\T\A\E?oAA?e ------------------------------------------</highlight></codeline>
+<linenumber line="319" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1c4"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::checkAndSetDepthFormat()</codeline>
+<linenumber line="320"/><codeline>{</codeline>
+<linenumber line="321"/><codeline>     <highlight class="keywordflow">if</highlight>(SUCCEEDED(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3">mpD3D</ref>-&gt;CheckDeviceFormat(D3DADAPTER_DEFAULT,<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o4">mD3DDeviceType</ref>,<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o7">mD3DFormat</ref>,D3DUSAGE_DEPTHSTENCIL,D3DRTYPE_SURFACE,D3DFMT_D16))){</codeline>
+<linenumber line="322"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o9">mDepthFormat</ref> = D3DFMT_D16;</codeline>
+<linenumber line="323"/><codeline>     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="324"/><codeline>             <highlight class="keywordflow">if</highlight>(SUCCEEDED(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3">mpD3D</ref>-&gt;CheckDeviceFormat(D3DADAPTER_DEFAULT,<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o4">mD3DDeviceType</ref>,<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o7">mD3DFormat</ref>,D3DUSAGE_DEPTHSTENCIL,D3DRTYPE_SURFACE,D3DFMT_D16_LOCKABLE))){</codeline>
+<linenumber line="325"/><codeline>                     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o9">mDepthFormat</ref> = D3DFMT_D16_LOCKABLE;</codeline>
+<linenumber line="326"/><codeline>             } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="327"/><codeline>                     <highlight class="keywordflow">throw</highlight> RecoverbleErrorException(<highlight class="stringliteral">&quot;Depth Format Not Found&quot;</highlight>,__FILE__,__LINE__,<ref idref="classsf_1_1system_1_1Exception_1s4s1">sf::system::Exception::DEVICE_NOT_FOUND</ref>);</codeline>
+<linenumber line="328"/><codeline>             }</codeline>
+<linenumber line="329"/><codeline>     }</codeline>
+<linenumber line="330"/><codeline>}<highlight class="comment">// checkAndSetDepthFormat()</highlight></codeline>
+<linenumber line="331"/><codeline></codeline>
+<linenumber line="332"/><codeline><highlight class="comment">// \i\o\A\e\o\\81\8b\1\A!?\E!\81\91\A\\81P\1\A\a\1\A!?\\81C\1\A!?\E?I?e\81Lu2? --------------------</highlight></codeline>
+<linenumber line="333" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1c5"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::initDeviceStates(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="334"/><codeline>{</codeline>
+<linenumber line="335"/><codeline>     HRESULT hr;</codeline>
+<linenumber line="336"/><codeline>     </codeline>
+<linenumber line="337"/><codeline>     hr = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetRenderState(D3DRS_SPECULARENABLE,    TRUE);</codeline>
+<linenumber line="338"/><codeline>     <highlight class="keywordflow">if</highlight> (FAILED(hr)){</codeline>
+<linenumber line="339"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="340"/><codeline>     }</codeline>
+<linenumber line="341"/><codeline>     </codeline>
+<linenumber line="342"/><codeline>     <highlight class="comment">//D3D\C\D\?\1?I\i\o\A\e\o\\81\8b\1\A!?\E?IAsAe//////////////////////</highlight></codeline>
+<linenumber line="343"/><codeline>     </codeline>
+<linenumber line="344"/><codeline>     <highlight class="comment">//\e\?\A\\81\92\o\\81\8b</highlight></codeline>
+<linenumber line="345"/><codeline>     hr = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetRenderState(D3DRS_LIGHTING,            TRUE);</codeline>
+<linenumber line="346"/><codeline>     <highlight class="keywordflow">if</highlight> (FAILED(hr)){</codeline>
+<linenumber line="347"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="348"/><codeline>     }</codeline>
+<linenumber line="349"/><codeline></codeline>
+<linenumber line="350"/><codeline>     <highlight class="comment">//Z\D\A\O\!</highlight></codeline>
+<linenumber line="351"/><codeline>     hr = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetRenderState(D3DRS_ZENABLE,             TRUE);</codeline>
+<linenumber line="352"/><codeline>     <highlight class="keywordflow">if</highlight> (FAILED(hr)){</codeline>
+<linenumber line="353"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="354"/><codeline>     }</codeline>
+<linenumber line="355"/><codeline><highlight class="comment">//        hr = mpD3DDevice-&gt;SetRenderState(D3DRS_ZWRITEENABLE,                   TRUE);</highlight></codeline>
+<linenumber line="356"/><codeline>     </codeline>
+<linenumber line="357"/><codeline>     <highlight class="comment">// Enable vertices to have colors </highlight></codeline>
+<linenumber line="358"/><codeline></codeline>
+<linenumber line="359"/><codeline>     hr = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetRenderState(D3DRS_COLORVERTEX,         TRUE);</codeline>
+<linenumber line="360"/><codeline>     <highlight class="keywordflow">if</highlight> (FAILED(hr)){</codeline>
+<linenumber line="361"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="362"/><codeline>     }</codeline>
+<linenumber line="363"/><codeline>     </codeline>
+<linenumber line="364"/><codeline>     <highlight class="comment">// Enable vertices to have colors </highlight></codeline>
+<linenumber line="365"/><codeline><highlight class="comment">/*        hr = mpD3DDevice-&gt;SetRenderState(D3DRS_CULLMODE ,      D3DCULL_NONE  );</highlight></codeline>
+<linenumber line="366"/><codeline><highlight class="comment">  if (FAILED(hr)){</highlight></codeline>
+<linenumber line="367"/><codeline><highlight class="comment">          system::Factory::getInstance()-&gt;errorTerminate(DXGetErrorString8(hr));</highlight></codeline>
+<linenumber line="368"/><codeline><highlight class="comment">          return false;</highlight></codeline>
+<linenumber line="369"/><codeline><highlight class="comment">  }</highlight></codeline>
+<linenumber line="370"/><codeline><highlight class="comment">*/</highlight></codeline>
+<linenumber line="371"/><codeline>     <highlight class="comment">// \\81P\e\A\O\o\\81\8b</highlight></codeline>
+<linenumber line="372"/><codeline>     hr = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetRenderState( D3DRS_CLIPPING,        TRUE);</codeline>
+<linenumber line="373"/><codeline>     <highlight class="keywordflow">if</highlight> (FAILED(hr)){</codeline>
+<linenumber line="374"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="375"/><codeline>     }</codeline>
+<linenumber line="376"/><codeline>     </codeline>
+<linenumber line="377"/><codeline><highlight class="comment">/*        hr = mpD3DDevice-&gt;SetRenderState(D3DRS_DIFFUSEMATERIALSOURCE,          TRUE);</highlight></codeline>
+<linenumber line="378"/><codeline><highlight class="comment">  if (FAILED(hr)){</highlight></codeline>
+<linenumber line="379"/><codeline><highlight class="comment">          system::Factory::getInstance()-&gt;errorTerminate(DXGetErrorString8(hr));</highlight></codeline>
+<linenumber line="380"/><codeline><highlight class="comment">          return false;</highlight></codeline>
+<linenumber line="381"/><codeline><highlight class="comment">  }</highlight></codeline>
+<linenumber line="382"/><codeline><highlight class="comment">*/</highlight></codeline>
+<linenumber line="383"/><codeline>     hr = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetRenderState(D3DRS_AMBIENT,     0xFF808080);</codeline>
+<linenumber line="384"/><codeline>     <highlight class="keywordflow">if</highlight> (FAILED(hr)){</codeline>
+<linenumber line="385"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="386"/><codeline>     }</codeline>
+<linenumber line="387"/><codeline></codeline>
+<linenumber line="388"/><codeline></codeline>
+<linenumber line="389"/><codeline>     <highlight class="comment">//                   hr = mpD3DDevice-&gt;SetRenderState(D3DRS_COLORKEYENABLE,                TRUE);</highlight></codeline>
+<linenumber line="390"/><codeline>     <highlight class="comment">//                   if (FAILED(hr))</highlight></codeline>
+<linenumber line="391"/><codeline>     <highlight class="comment">//                           return false;                   </highlight></codeline>
+<linenumber line="392"/><codeline>     </codeline>
+<linenumber line="393"/><codeline>     <highlight class="comment">//   hr = mpD3DDevice-&gt;SetRenderState( D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL);</highlight></codeline>
+<linenumber line="394"/><codeline>     <highlight class="comment">//   if (FAILED(hr))</highlight></codeline>
+<linenumber line="395"/><codeline>     <highlight class="comment">//           return hr;</highlight></codeline>
+<linenumber line="396"/><codeline>     </codeline>
+<linenumber line="397"/><codeline>     </codeline>
+<linenumber line="398"/><codeline>     <highlight class="comment">//   hr = mpD3DDevice-&gt;SetRenderState(    D3DRS_ALPHATESTENABLE   , TRUE);</highlight></codeline>
+<linenumber line="399"/><codeline>     <highlight class="comment">//   if (FAILED(hr))</highlight></codeline>
+<linenumber line="400"/><codeline>     <highlight class="comment">//           return hr;</highlight></codeline>
+<linenumber line="401"/><codeline>     </codeline>
+<linenumber line="402"/><codeline>     <highlight class="comment">//   hr = mpD3DDevice-&gt;SetRenderState( D3DRS_ALPHAREF, 0xff);</highlight></codeline>
+<linenumber line="403"/><codeline>     <highlight class="comment">//   if (FAILED(hr))</highlight></codeline>
+<linenumber line="404"/><codeline>     <highlight class="comment">//           return hr;</highlight></codeline>
+<linenumber line="405"/><codeline>     </codeline>
+<linenumber line="406"/><codeline>     </codeline>
+<linenumber line="407"/><codeline>     <highlight class="comment">// hr = mpD3DDevice-&gt;SetRenderState(D3DRS_DITHERENABLE,      TRUE);</highlight></codeline>
+<linenumber line="408"/><codeline>     <highlight class="comment">//                   hr = mpD3DDevice-&gt;SetRenderState(D3DRS_ANTIALIAS,       D3DANTIALIAS_NONE );</highlight></codeline>
+<linenumber line="409"/><codeline>     <highlight class="comment">//                   if (FAILED(hr))</highlight></codeline>
+<linenumber line="410"/><codeline>     <highlight class="comment">//                           return false;                   </highlight></codeline>
+<linenumber line="411"/><codeline>     </codeline>
+<linenumber line="412"/><codeline><highlight class="comment">//        hr = mpD3DDevice-&gt;SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT);</highlight></codeline>
+<linenumber line="413"/><codeline><highlight class="comment">//        if (FAILED(hr)){</highlight></codeline>
+<linenumber line="414"/><codeline><highlight class="comment">//                system::Factory::getInstance()-&gt;errorTerminate(DXGetErrorString8(hr));</highlight></codeline>
+<linenumber line="415"/><codeline><highlight class="comment">//                return false;</highlight></codeline>
+<linenumber line="416"/><codeline><highlight class="comment">//        }</highlight></codeline>
+<linenumber line="417"/><codeline>     </codeline>
+<linenumber line="418"/><codeline>     hr = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetRenderState(D3DRS_ALPHABLENDENABLE,  TRUE);  </codeline>
+<linenumber line="419"/><codeline>     <highlight class="keywordflow">if</highlight> (FAILED(hr)){</codeline>
+<linenumber line="420"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="421"/><codeline>     }</codeline>
+<linenumber line="422"/><codeline>     </codeline>
+<linenumber line="423"/><codeline>     hr = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);</codeline>
+<linenumber line="424"/><codeline>     <highlight class="keywordflow">if</highlight> (FAILED(hr)){</codeline>
+<linenumber line="425"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="426"/><codeline>     }</codeline>
+<linenumber line="427"/><codeline>     </codeline>
+<linenumber line="428"/><codeline>     hr = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);</codeline>
+<linenumber line="429"/><codeline>     <highlight class="keywordflow">if</highlight> (FAILED(hr)){</codeline>
+<linenumber line="430"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="431"/><codeline>     }</codeline>
+<linenumber line="432"/><codeline>     </codeline>
+<linenumber line="433"/><codeline>     <highlight class="comment">// \A\\81P\1\A\a\1\A!?\\81C\1\A!?\E?IAsAe //</highlight></codeline>
+<linenumber line="434"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetTextureStageState( 0, D3DTSS_COLOROP,   D3DTOP_MODULATE );</codeline>
+<linenumber line="435"/><codeline>     </codeline>
+<linenumber line="436"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );</codeline>
+<linenumber line="437"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );</codeline>
+<linenumber line="438"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetTextureStageState( 0, D3DTSS_ALPHAOP,   D3DTOP_MODULATE );</codeline>
+<linenumber line="439"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );</codeline>
+<linenumber line="440"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetTextureStageState( 0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE );</codeline>
+<linenumber line="441"/><codeline>     </codeline>
+<linenumber line="442"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetTextureStageState( 0, D3DTSS_MINFILTER, D3DTEXF_POINT );</codeline>
+<linenumber line="443"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetTextureStageState( 0, D3DTSS_MAGFILTER, D3DTEXF_POINT );</codeline>
+<linenumber line="444"/><codeline></codeline>
+<linenumber line="445"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetTextureStageState( 0, D3DTSS_MIPFILTER, D3DTEXF_NONE );</codeline>
+<linenumber line="446"/><codeline></codeline>
+<linenumber line="447"/><codeline><highlight class="comment">/*        mpD3DDevice-&gt;SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, 0 );</highlight></codeline>
+<linenumber line="448"/><codeline><highlight class="comment">  mpD3DDevice-&gt;SetTextureStageState( 0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_DISABLE );</highlight></codeline>
+<linenumber line="449"/><codeline><highlight class="comment">*/</highlight></codeline>
+<linenumber line="450"/><codeline></codeline>
+<linenumber line="451"/><codeline>}<highlight class="comment">// initDeviceStates()</highlight></codeline>
+<linenumber line="452"/><codeline></codeline>
+<linenumber line="453"/><codeline><highlight class="comment">// 2eII?I?e\81Lu2?\O\a!?\Y!?\E?IAsAe?E?E ------------------------------------------</highlight></codeline>
+<linenumber line="454" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1c6"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::initConsoleViewStyle(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="455"/><codeline>{</codeline>
+<linenumber line="456"/><codeline></codeline>
+<linenumber line="457"/><codeline>     HRESULT hr = E_FAIL;</codeline>
+<linenumber line="458"/><codeline></codeline>
+<linenumber line="459"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c7">initLight</ref>(); </codeline>
+<linenumber line="460"/><codeline></codeline>
+<linenumber line="461"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;BeginScene();</codeline>
+<linenumber line="462"/><codeline></codeline>
+<linenumber line="463"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c8">initMatrix</ref>();</codeline>
+<linenumber line="464"/><codeline></codeline>
+<linenumber line="465"/><codeline></codeline>
+<linenumber line="466"/><codeline>     </codeline>
+<linenumber line="467"/><codeline>     <highlight class="comment">//2eII\\81P\e\\81\91//</highlight></codeline>
+<linenumber line="468"/><codeline></codeline>
+<linenumber line="469"/><codeline>     </codeline>
+<linenumber line="470"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;Clear(0,NULL,D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,D3DCOLOR_COLORVALUE(0.0f,0.5f,0.0f,0.0f),0.0f,0);</codeline>
+<linenumber line="471"/><codeline>     </codeline>
+<linenumber line="472"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;EndScene();</codeline>
+<linenumber line="473"/><codeline>     </codeline>
+<linenumber line="474"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;Present(NULL,NULL,NULL,NULL);</codeline>
+<linenumber line="475"/><codeline>     </codeline>
+<linenumber line="476"/><codeline>     <highlight class="comment">//\O\a!?\Y!?\E?IAsAe//</highlight></codeline>
+<linenumber line="477"/><codeline>     </codeline>
+<linenumber line="478"/><codeline>     D3DVIEWPORT8 d3dv;</codeline>
+<linenumber line="479"/><codeline>     </codeline>
+<linenumber line="480"/><codeline>     d3dv.X = viewport::X;</codeline>
+<linenumber line="481"/><codeline>     d3dv.Y = viewport::Y;</codeline>
+<linenumber line="482"/><codeline>     d3dv.Width = viewport::WIDTH;</codeline>
+<linenumber line="483"/><codeline>     d3dv.Height = viewport::HEIGHT;</codeline>
+<linenumber line="484"/><codeline>     d3dv.MinZ = viewport::Z_MIN;</codeline>
+<linenumber line="485"/><codeline>     d3dv.MaxZ = viewport::Z_MAX;</codeline>
+<linenumber line="486"/><codeline>     </codeline>
+<linenumber line="487"/><codeline>     hr = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetViewport(&amp;d3dv);</codeline>
+<linenumber line="488"/><codeline>     <highlight class="keywordflow">if</highlight>(FAILED(hr)){</codeline>
+<linenumber line="489"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="490"/><codeline>     }</codeline>
+<linenumber line="491"/><codeline>     </codeline>
+<linenumber line="492"/><codeline>     <highlight class="comment">//!!\O\a!?\Y!?\EAa?I\\81P\e\\81\91</highlight></codeline>
+<linenumber line="493"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;BeginScene();</codeline>
+<linenumber line="494"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1a6">clearScreen</ref>();</codeline>
+<linenumber line="495"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;EndScene();</codeline>
+<linenumber line="496"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;Present(NULL,NULL,NULL,NULL);</codeline>
+<linenumber line="497"/><codeline>}<highlight class="comment">//initConsoleViewStyle();</highlight></codeline>
+<linenumber line="498"/><codeline></codeline>
+<linenumber line="499"/><codeline><highlight class="comment">// \e\?\E?I?e\81Lu2? !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="500" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1c7"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::initLight()</codeline>
+<linenumber line="501"/><codeline>{</codeline>
+<linenumber line="502"/><codeline>     D3DLIGHT8 light;</codeline>
+<linenumber line="503"/><codeline>     ZeroMemory(&amp;light, <highlight class="keyword">sizeof</highlight>(D3DLIGHT8));</codeline>
+<linenumber line="504"/><codeline>     light.Type = D3DLIGHT_DIRECTIONAL;</codeline>
+<linenumber line="505"/><codeline>     light.Diffuse.r = 1.0f;</codeline>
+<linenumber line="506"/><codeline>     light.Diffuse.g = 1.0f;</codeline>
+<linenumber line="507"/><codeline>     light.Diffuse.b = 1.0f;</codeline>
+<linenumber line="508"/><codeline>     D3DXVECTOR3 v(0.7f, -0.8f, 0.1f);</codeline>
+<linenumber line="509"/><codeline>     D3DXVec3Normalize((D3DXVECTOR3 *)&amp;light.Direction, &amp;v);</codeline>
+<linenumber line="510"/><codeline>     light.Range = 100.0f;</codeline>
+<linenumber line="511"/><codeline>     </codeline>
+<linenumber line="512"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetLight(0, &amp;light);</codeline>
+<linenumber line="513"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;LightEnable(0, TRUE);</codeline>
+<linenumber line="514"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetRenderState(D3DRS_LIGHTING, TRUE);</codeline>
+<linenumber line="515"/><codeline>}</codeline>
+<linenumber line="516"/><codeline></codeline>
+<linenumber line="517"/><codeline><highlight class="comment">// 1OIo?I?e\81Lu2? !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="518" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1c8"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::initMatrix()</codeline>
+<linenumber line="519"/><codeline>{</codeline>
+<linenumber line="520"/><codeline>             <highlight class="comment">// 3D View ?IAsAe(\81â21I!\81\98?\81~?e!??o?\83Ê?o?I\e\?\O\e\e) </highlight></codeline>
+<linenumber line="521"/><codeline>     <highlight class="comment">// ?U?E?o?E!\81\91???I?T?T?C?1!\81\92</highlight></codeline>
+<linenumber line="522"/><codeline></codeline>
+<linenumber line="523"/><codeline>     <highlight class="comment">//\81LdEUAIAsAe</highlight></codeline>
+<linenumber line="524"/><codeline>     <highlight class="keywordtype">float</highlight> aspect = (float) screen::WIDTH / screen::HEIGHT;           <highlight class="comment">//\\81\91\1\U\\81P\EEa(1a?\83Ê?o1?E?\81E???E?-?IEy)</highlight></codeline>
+<linenumber line="525"/><codeline>     <highlight class="keywordtype">float</highlight> aspect_v = (float) viewport::WIDTH / viewport::HEIGHT;     <highlight class="comment">//\\81\91\1\U\\81P\EEa(1a?\83Ê?o1?E?\81E???E?-?IEy)</highlight></codeline>
+<linenumber line="526"/><codeline></codeline>
+<linenumber line="527"/><codeline>     <highlight class="keywordtype">float</highlight> depth = 1.5f;                                                                          <highlight class="comment">//\81}u1O?-Z</highlight></codeline>
+<linenumber line="528"/><codeline>     <highlight class="keywordtype">float</highlight> fovy  = (float)atan(1.0f / depth) * 2.0f;                                      <highlight class="comment">//\81âeIi?oZ=0?C\C\D\?\1?IEy?E1a?\83Ê?E1c?i?\81â?e</highlight></codeline>
+<linenumber line="529"/><codeline>     </codeline>
+<linenumber line="530"/><codeline>     <highlight class="comment">//oAE\81C?oA\81E?\81N?e</highlight></codeline>
+<linenumber line="531"/><codeline>     D3DXMATRIX mat_view;</codeline>
+<linenumber line="532"/><codeline>     D3DXMatrixLookAtLH( &amp;mat_view, </codeline>
+<linenumber line="533"/><codeline>             &amp;D3DXVECTOR3( aspect, -1.0f,-depth),</codeline>
+<linenumber line="534"/><codeline>             &amp;D3DXVECTOR3( aspect, -1.0f, 0.0f),</codeline>
+<linenumber line="535"/><codeline>             &amp;D3DXVECTOR3( 0.0f, 1.0f, 0.0f ) );</codeline>
+<linenumber line="536"/><codeline></codeline>
+<linenumber line="537"/><codeline><highlight class="comment">/*        D3DXMatrixLookAtLH( &amp;mat_view, &amp;D3DXVECTOR3( 0.0f, 3.0f,-5.0f ),</highlight></codeline>
+<linenumber line="538"/><codeline><highlight class="comment">                              &amp;D3DXVECTOR3( 0.0f, 0.0f, 0.0f ),</highlight></codeline>
+<linenumber line="539"/><codeline><highlight class="comment">                              &amp;D3DXVECTOR3( 0.0f, 1.0f, 0.0f ) );</highlight></codeline>
+<linenumber line="540"/><codeline><highlight class="comment">*/</highlight></codeline>
+<linenumber line="541"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetTransform( D3DTS_VIEW, &amp;mat_view );</codeline>
+<linenumber line="542"/><codeline></codeline>
+<linenumber line="543"/><codeline>     <highlight class="comment">//\81}u1O?-?EAD?1?eEaI\81N?oA\81LA\81\8b</highlight></codeline>
+<linenumber line="544"/><codeline>     D3DXMATRIX mat_proj;</codeline>
+<linenumber line="545"/><codeline><highlight class="comment">//        D3DXMatrixPerspectiveFovLH( &amp;mat_proj, D3DX_PI/4, aspect_v, 1.0f, 100.0f );</highlight></codeline>
+<linenumber line="546"/><codeline></codeline>
+<linenumber line="547"/><codeline>     D3DXMatrixPerspectiveFovLH( &amp;mat_proj,fovy, aspect_v, 1.0f, 100.0f );</codeline>
+<linenumber line="548"/><codeline></codeline>
+<linenumber line="549"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetTransform( D3DTS_PROJECTION, &amp;mat_proj );</codeline>
+<linenumber line="550"/><codeline>     </codeline>
+<linenumber line="551"/><codeline>     <highlight class="comment">// </highlight></codeline>
+<linenumber line="552"/><codeline></codeline>
+<linenumber line="553"/><codeline>}<highlight class="comment">//initMatrix()</highlight></codeline>
+<linenumber line="554"/><codeline></codeline>
+<linenumber line="555"/><codeline><highlight class="comment">// create\81ât?a?e?Oreset\81ât?IoA?e\81Lu2?---------------------------------------------</highlight></codeline>
+<linenumber line="556" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1c9"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::initNotManagedObjects(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="557"/><codeline>{</codeline>
+<linenumber line="558"/><codeline>     HRESULT hr;</codeline>
+<linenumber line="559"/><codeline></codeline>
+<linenumber line="560"/><codeline>     <highlight class="comment">//\1\\81~\e\?\E\a\O\\81C\\81\98\\81P\E</highlight></codeline>
+<linenumber line="561"/><codeline>     </codeline>
+<linenumber line="562"/><codeline>     <highlight class="keywordflow">if</highlight>(FAILED(hr = D3DXCreateSprite(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>,&amp;<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o6">mpD3DXSprite</ref>)))</codeline>
+<linenumber line="563"/><codeline>     {</codeline>
+<linenumber line="564"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="565"/><codeline>     }</codeline>
+<linenumber line="566"/><codeline></codeline>
+<linenumber line="567"/><codeline>}<highlight class="comment">// initNotManagedObjects</highlight></codeline>
+<linenumber line="568"/><codeline></codeline>
+<linenumber line="569" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1c10"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::releaseNotManagedObjects(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="570"/><codeline>{</codeline>
+<linenumber line="571"/><codeline>     </codeline>
+<linenumber line="572"/><codeline>     <highlight class="keywordflow">if</highlight>(mpD3DXSprite)</codeline>
+<linenumber line="573"/><codeline>     {</codeline>
+<linenumber line="574"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o6">mpD3DXSprite</ref>-&gt;Release();</codeline>
+<linenumber line="575"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o6">mpD3DXSprite</ref> = NULL;</codeline>
+<linenumber line="576"/><codeline>     }</codeline>
+<linenumber line="577"/><codeline>     </codeline>
+<linenumber line="578"/><codeline>}<highlight class="comment">// releaseNotManagedObjects</highlight></codeline>
+<linenumber line="579"/><codeline></codeline>
+<linenumber line="580"/><codeline><highlight class="comment">// ?aI\81â?eIy -------------------------------------------------------------------</highlight></codeline>
+<linenumber line="581" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1a5"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::uninitialize(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="582"/><codeline>{</codeline>
+<linenumber line="583"/><codeline>     <highlight class="keywordtype">int</highlight> i;</codeline>
+<linenumber line="584"/><codeline>     </codeline>
+<linenumber line="585"/><codeline>     <highlight class="comment">// \O\c\o\E\A\\81P\1\A\a?I\e\e!?\1</highlight></codeline>
+<linenumber line="586"/><codeline>     <highlight class="keywordflow">for</highlight>(i = 0;i &lt; font::COUNT_MAX;i++)</codeline>
+<linenumber line="587"/><codeline>     {</codeline>
+<linenumber line="588"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o11">mpFontTexture</ref>[i]){</codeline>
+<linenumber line="589"/><codeline>                     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o11">mpFontTexture</ref>[i]-&gt;Release();</codeline>
+<linenumber line="590"/><codeline>                     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o11">mpFontTexture</ref>[i] = NULL;</codeline>
+<linenumber line="591"/><codeline>             }</codeline>
+<linenumber line="592"/><codeline>     }</codeline>
+<linenumber line="593"/><codeline>     <highlight class="comment">// \1\\81~\e\?\E\a\O\\81C\\81\98\\81P\E?I?e\81Lu2?</highlight></codeline>
+<linenumber line="594"/><codeline>     <highlight class="keywordflow">for</highlight>(i = 0;i &lt; sprite::MAX;i++)</codeline>
+<linenumber line="595"/><codeline>     {</codeline>
+<linenumber line="596"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o12">mpSprite</ref>[i]){</codeline>
+<linenumber line="597"/><codeline>                     <highlight class="keyword">delete</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o12">mpSprite</ref>[i];</codeline>
+<linenumber line="598"/><codeline>             }</codeline>
+<linenumber line="599"/><codeline>     }</codeline>
+<linenumber line="600"/><codeline></codeline>
+<linenumber line="601"/><codeline></codeline>
+<linenumber line="602"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c10">releaseNotManagedObjects</ref>();</codeline>
+<linenumber line="603"/><codeline></codeline>
+<linenumber line="604"/><codeline>     <highlight class="comment">// D3D\C\D\?\1?I\e\e!?\1</highlight></codeline>
+<linenumber line="605"/><codeline>     <highlight class="keywordflow">if</highlight>(mpD3DDevice) {</codeline>
+<linenumber line="606"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;Release();</codeline>
+<linenumber line="607"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref> = NULL;</codeline>
+<linenumber line="608"/><codeline>     }</codeline>
+<linenumber line="609"/><codeline>     </codeline>
+<linenumber line="610"/><codeline>     <highlight class="comment">// Direct3D\a\O\\81C\\81\98\\81P\E?I\e\e!?\1</highlight></codeline>
+<linenumber line="611"/><codeline>     <highlight class="keywordflow">if</highlight>(mpD3D){</codeline>
+<linenumber line="612"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3">mpD3D</ref>-&gt;Release();</codeline>
+<linenumber line="613"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3">mpD3D</ref> = NULL;</codeline>
+<linenumber line="614"/><codeline>     }</codeline>
+<linenumber line="615"/><codeline>     </codeline>
+<linenumber line="616"/><codeline>     <highlight class="comment">// text queue ?I\\81P\e\\81\91</highlight></codeline>
+<linenumber line="617"/><codeline>     </codeline>
+<linenumber line="618"/><codeline>     <highlight class="keywordflow">while</highlight>(!<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o13">mTextQueue</ref>.empty())</codeline>
+<linenumber line="619"/><codeline>     {</codeline>
+<linenumber line="620"/><codeline>             <highlight class="keyword">delete</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o13">mTextQueue</ref>.front();</codeline>
+<linenumber line="621"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o13">mTextQueue</ref>.pop();</codeline>
+<linenumber line="622"/><codeline>     }</codeline>
+<linenumber line="623"/><codeline></codeline>
+<linenumber line="624"/><codeline>}<highlight class="comment">// Uninitialize</highlight></codeline>
+<linenumber line="625"/><codeline></codeline>
+<linenumber line="626"/><codeline><highlight class="comment">// \O\c\o\E\81LOI\81\91\a\?\A\E ///////////////////////////////////////////////////////</highlight></codeline>
+<linenumber line="627"/><codeline></codeline>
+<linenumber line="628"/><codeline><highlight class="comment">// \O\c\o\E\i!?\E   -----------------------------------------------------------</highlight></codeline>
+<linenumber line="629" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1c11"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::loadFont(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="630"/><codeline>{</codeline>
+<linenumber line="631"/><codeline>     </codeline>
+<linenumber line="632"/><codeline>     HRESULT hr;</codeline>
+<linenumber line="633"/><codeline>     <highlight class="keywordflow">for</highlight>(<highlight class="keywordtype">int</highlight> i = 0;i &lt; font::COUNT_MAX;i++)</codeline>
+<linenumber line="634"/><codeline>     {</codeline>
+<linenumber line="635"/><codeline>             hr = D3DXCreateTextureFromFileExA(</codeline>
+<linenumber line="636"/><codeline>                     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>,</codeline>
+<linenumber line="637"/><codeline>                     font::FILE_PATH[i],</codeline>
+<linenumber line="638"/><codeline>                     D3DX_DEFAULT,</codeline>
+<linenumber line="639"/><codeline>                     D3DX_DEFAULT,</codeline>
+<linenumber line="640"/><codeline>                     0,</codeline>
+<linenumber line="641"/><codeline>                     0,</codeline>
+<linenumber line="642"/><codeline>                     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o8">mTextureFormat</ref>,</codeline>
+<linenumber line="643"/><codeline>                     D3DPOOL_MANAGED,</codeline>
+<linenumber line="644"/><codeline>                     D3DX_FILTER_NONE,</codeline>
+<linenumber line="645"/><codeline>                     D3DX_FILTER_NONE,</codeline>
+<linenumber line="646"/><codeline>                     0xff000000,</codeline>
+<linenumber line="647"/><codeline>                     NULL,</codeline>
+<linenumber line="648"/><codeline>                     NULL,</codeline>
+<linenumber line="649"/><codeline>                     &amp;<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o11">mpFontTexture</ref>[i]);</codeline>
+<linenumber line="650"/><codeline></codeline>
+<linenumber line="651"/><codeline>             <highlight class="keywordflow">if</highlight>(FAILED(hr))</codeline>
+<linenumber line="652"/><codeline>             {</codeline>
+<linenumber line="653"/><codeline>                     <highlight class="keywordflow">throw</highlight> FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="654"/><codeline>             }</codeline>
+<linenumber line="655"/><codeline>     }</codeline>
+<linenumber line="656"/><codeline>}<highlight class="comment">// LoadFont</highlight></codeline>
+<linenumber line="657"/><codeline></codeline>
+<linenumber line="658"/><codeline><highlight class="comment">// \-\a\e\\81P\?\A\\81P\1\A\a?o\81âEIN?\81E?A!\81\91E\81C\81âuIo?oE??\81N?1?e -----------------------</highlight></codeline>
+<linenumber line="659" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1c14"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::textDraw(<highlight class="keywordtype">int</highlight> textureNo,<highlight class="keywordtype">float</highlight> x,<highlight class="keywordtype">float</highlight> y,<highlight class="keywordtype">float</highlight> angleRad,<highlight class="keywordtype">float</highlight> scale,COLOR color,</codeline>
+<linenumber line="660"/><codeline>     <highlight class="keywordtype">char</highlight> *pBuf)</codeline>
+<linenumber line="661"/><codeline>{</codeline>
+<linenumber line="662"/><codeline></codeline>
+<linenumber line="663"/><codeline>     <highlight class="keywordtype">int</highlight> cc = text::BUFFER_LENGTH;</codeline>
+<linenumber line="664"/><codeline>     <highlight class="keywordtype">int</highlight> ncc,ix,iy;</codeline>
+<linenumber line="665"/><codeline>     </codeline>
+<linenumber line="666"/><codeline>     <highlight class="keywordtype">float</highlight> startx = x;</codeline>
+<linenumber line="667"/><codeline>     <highlight class="keywordtype">float</highlight> starty = y;</codeline>
+<linenumber line="668"/><codeline>     </codeline>
+<linenumber line="669"/><codeline>     D3DXVECTOR2 scaling,rotation_center,translation;</codeline>
+<linenumber line="670"/><codeline>     </codeline>
+<linenumber line="671"/><codeline>     <highlight class="keywordtype">float</highlight> line = 0;</codeline>
+<linenumber line="672"/><codeline>     RECT srect;</codeline>
+<linenumber line="673"/><codeline>     </codeline>
+<linenumber line="674"/><codeline>     </codeline>
+<linenumber line="675"/><codeline>     </codeline>
+<linenumber line="676"/><codeline>     <highlight class="keywordtype">float</highlight>        dx = text::COLUMN_PITCH * scale * cosf(angleRad);</codeline>
+<linenumber line="677"/><codeline>     <highlight class="keywordtype">float</highlight>        dy = text::COLUMN_PITCH * scale * sinf(angleRad);</codeline>
+<linenumber line="678"/><codeline>     </codeline>
+<linenumber line="679"/><codeline>     scaling.x = scaling.y = scale;</codeline>
+<linenumber line="680"/><codeline>     </codeline>
+<linenumber line="681"/><codeline>     rotation_center.x = font::WIDTH / 2;</codeline>
+<linenumber line="682"/><codeline>     rotation_center.y = font::HEIGHT / 2;</codeline>
+<linenumber line="683"/><codeline>     </codeline>
+<linenumber line="684"/><codeline>     <highlight class="comment">// \\81á\e!?\-!??I?O?A?\81ÊE\81L?\81}?E??\81C??Y?oEE\81âs?1?e???a</highlight></codeline>
+<linenumber line="685"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetTextureStageState(0, D3DTSS_MAGFILTER , D3DTEXF_POINT);</codeline>
+<linenumber line="686"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;SetTextureStageState(0, D3DTSS_MINFILTER , D3DTEXF_POINT);</codeline>
+<linenumber line="687"/><codeline>     </codeline>
+<linenumber line="688"/><codeline>     <highlight class="keywordflow">while</highlight>(*pBuf &amp;&amp; cc){</codeline>
+<linenumber line="689"/><codeline>             ncc = *pBuf++;</codeline>
+<linenumber line="690"/><codeline>             <highlight class="keywordflow">if</highlight> (ncc &gt; 0x1f &amp;&amp; ncc &lt; 0x80){</codeline>
+<linenumber line="691"/><codeline>                     ncc -= 0x20;</codeline>
+<linenumber line="692"/><codeline>                     </codeline>
+<linenumber line="693"/><codeline>                     ix = (ncc % 16) * font::WIDTH;</codeline>
+<linenumber line="694"/><codeline>                     iy = (ncc / 16) * font::HEIGHT;</codeline>
+<linenumber line="695"/><codeline>                     </codeline>
+<linenumber line="696"/><codeline>                     srect.top = iy;</codeline>
+<linenumber line="697"/><codeline>                     srect.left = ix;</codeline>
+<linenumber line="698"/><codeline>                     srect.right = ix + font::WIDTH; </codeline>
+<linenumber line="699"/><codeline>                     srect.bottom = iy + font::HEIGHT;</codeline>
+<linenumber line="700"/><codeline>                     </codeline>
+<linenumber line="701"/><codeline>                     translation.x = x;</codeline>
+<linenumber line="702"/><codeline>                     translation.y = y;</codeline>
+<linenumber line="703"/><codeline>                     </codeline>
+<linenumber line="704"/><codeline>                     <highlight class="comment">//                   mPointDest.z = zOrder;</highlight></codeline>
+<linenumber line="705"/><codeline>                     </codeline>
+<linenumber line="706"/><codeline>                     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o6">mpD3DXSprite</ref>-&gt;Draw(</codeline>
+<linenumber line="707"/><codeline>                             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o11">mpFontTexture</ref>[textureNo],</codeline>
+<linenumber line="708"/><codeline>                             &amp;srect,</codeline>
+<linenumber line="709"/><codeline>                             &amp;scaling,</codeline>
+<linenumber line="710"/><codeline>                             &amp;rotation_center,</codeline>
+<linenumber line="711"/><codeline>                             2 * D3DX_PI - angleRad,</codeline>
+<linenumber line="712"/><codeline>                             &amp;translation,</codeline>
+<linenumber line="713"/><codeline>                             (D3DCOLOR)color</codeline>
+<linenumber line="714"/><codeline>                             );</codeline>
+<linenumber line="715"/><codeline>                     </codeline>
+<linenumber line="716"/><codeline>                     x += dx;</codeline>
+<linenumber line="717"/><codeline>                     y += dy;</codeline>
+<linenumber line="718"/><codeline>                     </codeline>
+<linenumber line="719"/><codeline>             } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="720"/><codeline>                     </codeline>
+<linenumber line="721"/><codeline>                     <highlight class="keywordflow">if</highlight> (ncc == 0xa){<highlight class="comment">//LF</highlight></codeline>
+<linenumber line="722"/><codeline>                             line++;</codeline>
+<linenumber line="723"/><codeline>                             y = starty + line * text::LINE_PITCH * </codeline>
+<linenumber line="724"/><codeline>                                     scale * sinf((angleRad + D3DX_PI/2));</codeline>
+<linenumber line="725"/><codeline>                             x = startx + line * text::LINE_PITCH * </codeline>
+<linenumber line="726"/><codeline>                                     scale * cosf((angleRad + D3DX_PI/2 ));</codeline>
+<linenumber line="727"/><codeline>                     }</codeline>
+<linenumber line="728"/><codeline>             }</codeline>
+<linenumber line="729"/><codeline>             --cc;</codeline>
+<linenumber line="730"/><codeline>     }</codeline>
+<linenumber line="731"/><codeline>     <highlight class="keywordflow">return</highlight> ;</codeline>
+<linenumber line="732"/><codeline>     </codeline>
+<linenumber line="733"/><codeline>}<highlight class="comment">// TextDraw</highlight></codeline>
+<linenumber line="734"/><codeline></codeline>
+<linenumber line="735"/><codeline><highlight class="comment">// \A\-\1\E\-\a!??IAaIA?o?DII -----------------------------------------------</highlight></codeline>
+<linenumber line="736" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1c15"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::textOut()</codeline>
+<linenumber line="737"/><codeline>{</codeline>
+<linenumber line="738"/><codeline>     TextQueueData* text_q;  </codeline>
+<linenumber line="739"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o6">mpD3DXSprite</ref>-&gt;Begin();</codeline>
+<linenumber line="740"/><codeline>     <highlight class="keywordflow">while</highlight>(!<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o13">mTextQueue</ref>.empty())</codeline>
+<linenumber line="741"/><codeline>     {</codeline>
+<linenumber line="742"/><codeline>             text_q = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o13">mTextQueue</ref>.front();</codeline>
+<linenumber line="743"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o13">mTextQueue</ref>.pop();</codeline>
+<linenumber line="744"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c14">textDraw</ref>(text_q-&gt;textureNo(),text_q-&gt;x(),text_q-&gt;y(),text_q-&gt;angeleRad(),text_q-&gt;scale(),text_q-&gt;color(),text_q-&gt;buffer());</codeline>
+<linenumber line="745"/><codeline>             <highlight class="keyword">delete</highlight> text_q;</codeline>
+<linenumber line="746"/><codeline>     }</codeline>
+<linenumber line="747"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o6">mpD3DXSprite</ref>-&gt;End();</codeline>
+<linenumber line="748"/><codeline>}<highlight class="comment">// textOut</highlight></codeline>
+<linenumber line="749"/><codeline></codeline>
+<linenumber line="750"/><codeline><highlight class="comment">// \-\a\e\\81P\?!?\\83Ê!?\O\\81\98!?\1?o\81âEIN?\81E?A!\81\91E\81C\81âuIo?oE??\81N?1?e -----------------------</highlight></codeline>
+<linenumber line="751" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1a9"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::print(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> textureNo,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> x,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> y,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> angleRad,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> scale,<highlight class="keyword">const</highlight> COLOR color,</codeline>
+<linenumber line="752"/><codeline>     <highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> *format,...)</codeline>
+<linenumber line="753"/><codeline>{</codeline>
+<linenumber line="754"/><codeline>     va_list varl;</codeline>
+<linenumber line="755"/><codeline>     <highlight class="comment">//char buf[text::BUFFER_LENGTH];</highlight></codeline>
+<linenumber line="756"/><codeline>     </codeline>
+<linenumber line="757"/><codeline>     <highlight class="comment">/*   mAlpha = alpha;</highlight></codeline>
+<linenumber line="758"/><codeline><highlight class="comment">  mAngleRad = angleRad;</highlight></codeline>
+<linenumber line="759"/><codeline><highlight class="comment">  mScale = scale;</highlight></codeline>
+<linenumber line="760"/><codeline><highlight class="comment">  mTextureNo = textureNo;</highlight></codeline>
+<linenumber line="761"/><codeline><highlight class="comment">  mZOrder = zOrder;</highlight></codeline>
+<linenumber line="762"/><codeline><highlight class="comment">  */</highlight>  </codeline>
+<linenumber line="763"/><codeline></codeline>
+<linenumber line="764"/><codeline>     TextQueueData* ptext_q = <highlight class="keyword">new</highlight> TextQueueData(textureNo,x,y,angleRad,scale,color);</codeline>
+<linenumber line="765"/><codeline>     </codeline>
+<linenumber line="766"/><codeline>     va_start(varl,format);</codeline>
+<linenumber line="767"/><codeline>     vsprintf(ptext_q-&gt;buffer(),format,varl);</codeline>
+<linenumber line="768"/><codeline>     va_end(varl);</codeline>
+<linenumber line="769"/><codeline>     </codeline>
+<linenumber line="770"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o13">mTextQueue</ref>.push(ptext_q);</codeline>
+<linenumber line="771"/><codeline></codeline>
+<linenumber line="772"/><codeline><highlight class="comment">//        textOut(textureNo,x,y,zOrder,alpha,angleRad,scale,color,buf);</highlight></codeline>
+<linenumber line="773"/><codeline>}<highlight class="comment">// Print</highlight></codeline>
+<linenumber line="774"/><codeline></codeline>
+<linenumber line="775"/><codeline><highlight class="comment">// 2eII11?\81E ------------------------------------------------------------------</highlight></codeline>
+<linenumber line="776" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1a8"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::update(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="777"/><codeline>{</codeline>
+<linenumber line="778"/><codeline>     <highlight class="keywordflow">if</highlight>(!<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1a11">isEnabled</ref>())</codeline>
+<linenumber line="779"/><codeline>             <highlight class="keywordflow">return</highlight>;</codeline>
+<linenumber line="780"/><codeline></codeline>
+<linenumber line="781"/><codeline>     <highlight class="comment">// \D\A\\81P\D\A\O\!?IAaIA?oE??\81N</highlight></codeline>
+<linenumber line="782"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;Present(NULL,NULL,NULL,NULL);</codeline>
+<linenumber line="783"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c12">startFrame</ref>();</codeline>
+<linenumber line="784"/><codeline><highlight class="comment">//        Sleep(1);</highlight></codeline>
+<linenumber line="785"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1a6">clearScreen</ref>();</codeline>
+<linenumber line="786"/><codeline><highlight class="comment">//        Sleep(1);</highlight></codeline>
+<linenumber line="787"/><codeline>     <highlight class="comment">// \1\\81~\e\?\EEA2e</highlight></codeline>
+<linenumber line="788"/><codeline>     <highlight class="keywordflow">for</highlight>(Obj* pobj = Obj::List::moveTop();pobj != NULL;pobj = Obj::List::moveNext())</codeline>
+<linenumber line="789"/><codeline>     {</codeline>
+<linenumber line="790"/><codeline>             pobj-&gt;draw();</codeline>
+<linenumber line="791"/><codeline>     }</codeline>
+<linenumber line="792"/><codeline></codeline>
+<linenumber line="793"/><codeline>     <highlight class="comment">// \A\-\1\EEA2e</highlight></codeline>
+<linenumber line="794"/><codeline></codeline>
+<linenumber line="795"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c15">textOut</ref>();</codeline>
+<linenumber line="796"/><codeline></codeline>
+<linenumber line="797"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c13">endFrame</ref>();</codeline>
+<linenumber line="798"/><codeline></codeline>
+<linenumber line="799"/><codeline></codeline>
+<linenumber line="800"/><codeline></codeline>
+<linenumber line="801"/><codeline>}<highlight class="comment">// update()</highlight></codeline>
+<linenumber line="802"/><codeline></codeline>
+<linenumber line="803"/><codeline><highlight class="comment">// 2eII?A\83Êi ------------------------------------------------------------------</highlight></codeline>
+<linenumber line="804" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1a6"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::clearScreen(COLOR value)</codeline>
+<linenumber line="805"/><codeline>{</codeline>
+<linenumber line="806"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;Clear(0,NULL,D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER ,value,1.0f,0);</codeline>
+<linenumber line="807"/><codeline>}<highlight class="comment">// clearScreen()</highlight></codeline>
+<linenumber line="808"/><codeline><highlight class="comment">// 2eII?A\83Êi(?\81\98?CEa?a?e) -------------------------------------------------------</highlight></codeline>
+<linenumber line="809" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1a7"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::fillScreen(COLOR value)</codeline>
+<linenumber line="810"/><codeline>{</codeline>
+<linenumber line="811"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;Clear(0,NULL,D3DCLEAR_TARGET ,value,1.0f,0);</codeline>
+<linenumber line="812"/><codeline>}<highlight class="comment">// fillScreen()</highlight></codeline>
+<linenumber line="813"/><codeline></codeline>
+<linenumber line="814"/><codeline><highlight class="comment">// \O\i!?\a3\81á\81âI --------------------------------------------------------------</highlight></codeline>
+<linenumber line="815" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1c12"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::startFrame(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="816"/><codeline>{</codeline>
+<linenumber line="817"/><codeline>     <highlight class="comment">// \C\D\?\1?I?oAO?o\A\\81\98\A\\81P?1?e</highlight></codeline>
+<linenumber line="818"/><codeline>     HRESULT hr = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;TestCooperativeLevel();</codeline>
+<linenumber line="819"/><codeline>     <highlight class="keywordflow">if</highlight>(FAILED(hr)){</codeline>
+<linenumber line="820"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o1">mbD3DReady</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="821"/><codeline>             <highlight class="keywordflow">switch</highlight>(hr){</codeline>
+<linenumber line="822"/><codeline>             <highlight class="keywordflow">case</highlight> D3DERR_DEVICELOST:</codeline>
+<linenumber line="823"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="824"/><codeline><highlight class="preprocessor"></highlight>                 OutputDebugString(<highlight class="stringliteral">&quot;DEVICELOST\r\n&quot;</highlight>);</codeline>
+<linenumber line="825"/><codeline><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="826"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="827"/><codeline>                     <highlight class="keywordflow">break</highlight>;</codeline>
+<linenumber line="828"/><codeline>             <highlight class="keywordflow">case</highlight> D3DERR_DEVICENOTRESET:</codeline>
+<linenumber line="829"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="830"/><codeline><highlight class="preprocessor"></highlight>                 OutputDebugString(<highlight class="stringliteral">&quot;DEVICENOTRESET\r\n&quot;</highlight>);</codeline>
+<linenumber line="831"/><codeline><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="832"/><codeline><highlight class="preprocessor"></highlight>                 <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c10">releaseNotManagedObjects</ref>();</codeline>
+<linenumber line="833"/><codeline>                     </codeline>
+<linenumber line="834"/><codeline>                     <highlight class="keywordflow">if</highlight>(FAILED(hr = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;Reset(&amp;<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>)))</codeline>
+<linenumber line="835"/><codeline>                     {</codeline>
+<linenumber line="836"/><codeline>                             <highlight class="keywordflow">throw</highlight> FatalErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="837"/><codeline>                     }</codeline>
+<linenumber line="838"/><codeline>                     </codeline>
+<linenumber line="839"/><codeline>                     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c6">initConsoleViewStyle</ref>();</codeline>
+<linenumber line="840"/><codeline>                     </codeline>
+<linenumber line="841"/><codeline>                     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c9">initNotManagedObjects</ref>();</codeline>
+<linenumber line="842"/><codeline>                     </codeline>
+<linenumber line="843"/><codeline>                     <highlight class="comment">// \C\D\?\1?I?e\81Lu2?</highlight></codeline>
+<linenumber line="844"/><codeline>                     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c5">initDeviceStates</ref>();</codeline>
+<linenumber line="845"/><codeline>                     </codeline>
+<linenumber line="846"/><codeline>                     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o1">mbD3DReady</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="847"/><codeline>                     <highlight class="keywordflow">break</highlight>;</codeline>
+<linenumber line="848"/><codeline>             }</codeline>
+<linenumber line="849"/><codeline>     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="850"/><codeline>             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;BeginScene();</codeline>
+<linenumber line="851"/><codeline>     }</codeline>
+<linenumber line="852"/><codeline>}<highlight class="comment">// startFrame()</highlight></codeline>
+<linenumber line="853"/><codeline>                     </codeline>
+<linenumber line="854"/><codeline><highlight class="comment">// \O\i!?\a?aI\81â --------------------------------------------------------------</highlight></codeline>
+<linenumber line="855" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1c13"/><codeline><highlight class="keywordtype">void</highlight> ConsoleImpl::endFrame(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="856"/><codeline>{</codeline>
+<linenumber line="857"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>-&gt;EndScene();</codeline>
+<linenumber line="858"/><codeline>}<highlight class="comment">// endFrame()</highlight></codeline>
+<linenumber line="859"/><codeline></codeline>
+<linenumber line="860"/><codeline></codeline>
+<linenumber line="861"/><codeline><highlight class="comment">// \1\\81~\e\?\E?I\i!?\E ---------------------------------------------------------</highlight></codeline>
+<linenumber line="862"/><codeline><highlight class="comment">// 3D?I\D!?\A\A\\81P\1\D\A\O\!?IA\81CAREoE\81Ê?I!\81\91?\81~?e!??o?\83Ê?o?I\e\?\O\e\e?o\81â21I?E?\81E?A???T?1!\81\92</highlight></codeline>
+<linenumber line="863" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1a10"/><codeline>sprite::Sprite * <highlight class="keyword">const</highlight> ConsoleImpl::createSprite(<highlight class="keyword">const</highlight> sprite::Info * <highlight class="keyword">const</highlight> pInfo)</codeline>
+<linenumber line="864"/><codeline>{</codeline>
+<linenumber line="865"/><codeline>     sprite::AbstractSprite * psprite = NULL;</codeline>
+<linenumber line="866"/><codeline></codeline>
+<linenumber line="867"/><codeline>     <highlight class="keywordflow">switch</highlight> (pInfo-&gt;type)</codeline>
+<linenumber line="868"/><codeline>     {</codeline>
+<linenumber line="869"/><codeline>     <highlight class="keywordflow">case</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1sprite_1a6a3">SPRITE2D</ref>:</codeline>
+<linenumber line="870"/><codeline>             psprite = <highlight class="keyword">new</highlight> Sprite2D(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>);</codeline>
+<linenumber line="871"/><codeline>             <highlight class="keywordflow">break</highlight>;</codeline>
+<linenumber line="872"/><codeline>     <highlight class="keywordflow">case</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1sprite_1a6a4">SPRITE3D</ref>:</codeline>
+<linenumber line="873"/><codeline>             psprite = <highlight class="keyword">new</highlight> Sprite3D(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>);</codeline>
+<linenumber line="874"/><codeline>             <highlight class="keywordflow">break</highlight>;</codeline>
+<linenumber line="875"/><codeline>     <highlight class="keywordflow">case</highlight> <ref idref="namespacesf_1_1system_1_1console_1_1sprite_1a6a5">MESH</ref>:</codeline>
+<linenumber line="876"/><codeline>             psprite = <highlight class="keyword">new</highlight> SpriteMesh(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>);</codeline>
+<linenumber line="877"/><codeline>             <highlight class="keywordflow">break</highlight>;</codeline>
+<linenumber line="878"/><codeline>     };</codeline>
+<linenumber line="879"/><codeline></codeline>
+<linenumber line="880"/><codeline>     <highlight class="keywordflow">if</highlight>(NULL == psprite)</codeline>
+<linenumber line="881"/><codeline>     {</codeline>
+<linenumber line="882"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(<highlight class="stringliteral">&quot;Sprite is not created&quot;</highlight>,__FILE__,__LINE__);</codeline>
+<linenumber line="883"/><codeline>     }</codeline>
+<linenumber line="884"/><codeline></codeline>
+<linenumber line="885"/><codeline>     psprite-&gt;load(pInfo,<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o8">mTextureFormat</ref>,pInfo-&gt;transparentColor);</codeline>
+<linenumber line="886"/><codeline>     <highlight class="keywordflow">return</highlight> psprite;</codeline>
+<linenumber line="887"/><codeline>}<highlight class="comment">// createSprite()</highlight></codeline>
+<linenumber line="888"/><codeline></codeline>
+<linenumber line="889"/><codeline><highlight class="comment">//----------------------------------------------------------------------------</highlight></codeline>
+<linenumber line="890"/><codeline><highlight class="comment">// TextQueueData -------------------------------------------------------------</highlight></codeline>
+<linenumber line="891"/><codeline><highlight class="comment">//----------------------------------------------------------------------------</highlight></codeline>
+<linenumber line="892"/><codeline></codeline>
+<linenumber line="893" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a0"/><codeline>ConsoleImpl::TextQueueData::TextQueueData(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> textureNo,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> x,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> y,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> angleRad,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> scale,<highlight class="keyword">const</highlight> COLOR color,<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> *pBuffer)</codeline>
+<linenumber line="894"/><codeline>{</codeline>
+<linenumber line="895"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o0">mTextureNo</ref> = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a3">textureNo</ref>;</codeline>
+<linenumber line="896"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o1">mX</ref> = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a4">x</ref>;</codeline>
+<linenumber line="897"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o2">mY</ref> = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a5">y</ref>;</codeline>
+<linenumber line="898"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o3">mAngleRad</ref> = angleRad;</codeline>
+<linenumber line="899"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o4">mScale</ref> = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a7">scale</ref>;</codeline>
+<linenumber line="900"/><codeline>     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o5">mColor</ref> = <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a8">color</ref>;</codeline>
+<linenumber line="901"/><codeline></codeline>
+<linenumber line="902"/><codeline>     <highlight class="keywordflow">if</highlight>(pBuffer != NULL)</codeline>
+<linenumber line="903"/><codeline>             strncpy(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o6">mpBuf</ref>,pBuffer,<highlight class="keyword">sizeof</highlight>(<ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o6">mpBuf</ref>));</codeline>
+<linenumber line="904"/><codeline>}<highlight class="comment">// ConsoleImpl::TextQueueData::TextQueueData</highlight></codeline>
+<linenumber line="905"/><codeline></codeline>
+<linenumber line="906" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a1"/><codeline>ConsoleImpl::TextQueueData::~TextQueueData()</codeline>
+<linenumber line="907"/><codeline>{</codeline>
+<linenumber line="908"/><codeline>     ;</codeline>
+<linenumber line="909"/><codeline>}<highlight class="comment">// ~TextQueueData</highlight></codeline>
+<linenumber line="910"/><codeline></codeline>
+<linenumber line="911"/><codeline></codeline>
+<linenumber line="912"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/ConsoleImpl.cpp"/>
+  </compounddef>
+  <compounddef id="ConsoleImpl_8h" kind="file">
+    <compoundname>ConsoleImpl.h</compoundname>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includes id="Console_8h" local="yes">Console.h</includes>
+    <includedby id="AbstractSprite_8cpp" local="yes">AbstractSprite.cpp</includedby>
+    <includedby id="ConsoleImpl_8cpp" local="yes">ConsoleImpl.cpp</includedby>
+    <includedby id="InputImpl_8cpp" local="yes">InputImpl.cpp</includedby>
+    <includedby id="sfglib_8cpp" local="yes">sfglib.cpp</includedby>
+    <includedby id="Sprite2D_8cpp" local="yes">Sprite2D.cpp</includedby>
+    <includedby id="Sprite3D_8cpp" local="yes">Sprite3D.cpp</includedby>
+    <includedby id="System_8cpp" local="yes">System.cpp</includedby>
+    <includedby id="SystemImpl_8cpp" local="yes">SystemImpl.cpp</includedby>
+    <incdepgraph>
+      <node id="250">
+        <label>ConsoleImpl.h</label>
+        <link id="ConsoleImpl.h"/>
+        <childnode id="251" relation="public-inheritance">
+        </childnode>
+        <childnode id="252" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="251">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="252">
+        <label>Console.h</label>
+        <link id="Console_8h"/>
+        <childnode id="253" relation="public-inheritance">
+        </childnode>
+        <childnode id="251" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="253">
+        <label>memory</label>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="258">
+        <label>sfglib.cpp</label>
+        <link id="sfglib_8cpp-source"/>
+      </node>
+      <node id="259">
+        <label>Sprite2D.cpp</label>
+        <link id="Sprite2D_8cpp-source"/>
+      </node>
+      <node id="262">
+        <label>SystemImpl.cpp</label>
+        <link id="SystemImpl_8cpp-source"/>
+      </node>
+      <node id="254">
+        <label>ConsoleImpl.h</label>
+        <link id="ConsoleImpl.h"/>
+        <childnode id="255" relation="public-inheritance">
+        </childnode>
+        <childnode id="256" relation="public-inheritance">
+        </childnode>
+        <childnode id="257" relation="public-inheritance">
+        </childnode>
+        <childnode id="258" relation="public-inheritance">
+        </childnode>
+        <childnode id="259" relation="public-inheritance">
+        </childnode>
+        <childnode id="260" relation="public-inheritance">
+        </childnode>
+        <childnode id="261" relation="public-inheritance">
+        </childnode>
+        <childnode id="262" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="257">
+        <label>InputImpl.cpp</label>
+        <link id="InputImpl_8cpp-source"/>
+      </node>
+      <node id="256">
+        <label>ConsoleImpl.cpp</label>
+        <link id="ConsoleImpl_8cpp-source"/>
+      </node>
+      <node id="261">
+        <label>System.cpp</label>
+        <link id="System_8cpp-source"/>
+      </node>
+      <node id="255">
+        <label>AbstractSprite.cpp</label>
+        <link id="AbstractSprite_8cpp-source"/>
+      </node>
+      <node id="260">
+        <label>Sprite3D.cpp</label>
+        <link id="Sprite3D_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console">sf::system::console</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="ConsoleImpl_8h_1a0" virt="normal" prot="public">
+        <name>AFX_ConsoleImpl_H__B6F6F87A_C87F_40DA_8F4F_C037111CAC9D__INCLUDED_</name>
+        <briefdescription>
+<para>
+?AE\81\92\?\o\\81P\e!?\EEE\81âs\T\\81P\i. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ConsoleImpl.h" line="13" bodystart="13" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+2eIIEA2e!E\1\\81~\e\?\E!|CO\81EE2eAu!E?I?AAo?o1O?|. </para>
+    </briefdescription>
+    <detaileddescription>
+<simplesect kind="author"><title>oi?O: </title><para>
+S.F. </para>
+</simplesect><simplesect kind="version"><title>\D!?\\81C\c\o: </title><para>
+$Id:</para>
+</simplesect><para>
+Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved. </para>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline></codeline>
+<linenumber line="11"/><codeline></codeline>
+<linenumber line="12"/><codeline><highlight class="preprocessor">#if !defined(AFX_ConsoleImpl_H__B6F6F87A_C87F_40DA_8F4F_C037111CAC9D__INCLUDED_)</highlight></codeline>
+<linenumber line="13" refid="ConsoleImpl_8h_1a0"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_ConsoleImpl_H__B6F6F87A_C87F_40DA_8F4F_C037111CAC9D__INCLUDED_</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="Console_8h">Console.h</ref>&quot;</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="21"/><codeline><highlight class="keyword">namespace </highlight>sf { </codeline>
+<linenumber line="22"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="23"/><codeline>              <highlight class="keyword">namespace </highlight>console {</codeline>
+<linenumber line="25"/><codeline>                      <highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> <ref idref="namespacesf_1_1system_1_1console_1a9">VertexFVF</ref> = </codeline>
+<linenumber line="26"/><codeline>                              (D3DFVF_XYZRHW | </codeline>
+<linenumber line="27"/><codeline>                              D3DFVF_DIFFUSE | </codeline>
+<linenumber line="28"/><codeline>                              D3DFVF_SPECULAR | </codeline>
+<linenumber line="29"/><codeline>                              D3DFVF_TEX1 );</codeline>
+<linenumber line="30"/><codeline></codeline>
+<linenumber line="32" refid="structsf_1_1system_1_1console_1_1Vertex2_1"/><codeline>                   <highlight class="keyword">struct </highlight>Vertex2 {</codeline>
+<linenumber line="33" refid="structsf_1_1system_1_1console_1_1Vertex2_1m0"/><codeline>                     D3DVECTOR <ref idref="structsf_1_1system_1_1console_1_1Vertex2_1m0">position</ref>; </codeline>
+<linenumber line="34" refid="structsf_1_1system_1_1console_1_1Vertex2_1m1"/><codeline>                         <ref idref="namespacesf_1a0">DWORD</ref>   <ref idref="structsf_1_1system_1_1console_1_1Vertex2_1m1">diffuse</ref>; </codeline>
+<linenumber line="35" refid="structsf_1_1system_1_1console_1_1Vertex2_1m2"/><codeline>                         <ref idref="namespacesf_1a0">DWORD</ref>        <ref idref="structsf_1_1system_1_1console_1_1Vertex2_1m2">specular</ref>;</codeline>
+<linenumber line="36" refid="structsf_1_1system_1_1console_1_1Vertex2_1m3"/><codeline>                         <highlight class="keywordtype">float</highlight>   <ref idref="structsf_1_1system_1_1console_1_1Vertex2_1m3">tu</ref>;</codeline>
+<linenumber line="37" refid="structsf_1_1system_1_1console_1_1Vertex2_1m4"/><codeline>                         <highlight class="keywordtype">float</highlight>   <ref idref="structsf_1_1system_1_1console_1_1Vertex2_1m4">tv</ref>;</codeline>
+<linenumber line="38"/><codeline>                      };</codeline>
+<linenumber line="39"/><codeline></codeline>
+<linenumber line="41"/><codeline>                      <highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> <ref idref="namespacesf_1_1system_1_1console_1a10">Vertex2FVF</ref> = (D3DFVF_DIFFUSE |  D3DFVF_SPECULAR | D3DFVF_XYZ | D3DFVF_TEX1);</codeline>
+<linenumber line="42"/><codeline>      </codeline>
+<linenumber line="44" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1"/><codeline>                        <highlight class="keyword">class </highlight>ConsoleImpl : <highlight class="keyword">public</highlight> Console  </codeline>
+<linenumber line="45"/><codeline>                      {</codeline>
+<linenumber line="46"/><codeline>                              <highlight class="comment">// LIFECYCLE //</highlight></codeline>
+<linenumber line="47"/><codeline>                      <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="49"/><codeline>                              <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1a0">ConsoleImpl</ref>();</codeline>
+<linenumber line="53"/><codeline>                              <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1a0">ConsoleImpl</ref>(<highlight class="keyword">const</highlight> HWND hwnd,<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bWindow);</codeline>
+<linenumber line="55"/><codeline>                              <highlight class="keyword">virtual</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1a2">~ConsoleImpl</ref>();</codeline>
+<linenumber line="56"/><codeline>                              <highlight class="comment">// OPERATORS //</highlight></codeline>
+<linenumber line="57"/><codeline>                              <highlight class="comment">// OPERATIONS //</highlight></codeline>
+<linenumber line="58"/><codeline>                              <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1a3">initialize</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="62"/><codeline>                              <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1a3">initialize</ref>(<highlight class="keyword">const</highlight> HWND hwnd,<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bWindow);</codeline>
+<linenumber line="63"/><codeline></codeline>
+<linenumber line="66"/><codeline>                              <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1a5">uninitialize</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="67"/><codeline></codeline>
+<linenumber line="68"/><codeline>                              <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1a6">clearScreen</ref>(COLOR value = 0x00000000);</codeline>
+<linenumber line="69"/><codeline>                              <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1a7">fillScreen</ref>(COLOR value = 0x00000000);</codeline>
+<linenumber line="70"/><codeline>                              <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1a8">update</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="71"/><codeline>                              </codeline>
+<linenumber line="72"/><codeline>                              <highlight class="comment">// \D\A\\81P\D\A\O\!?EAsciiE\81C\81âuIo?o\81âOAe?\81E??\A\\81P\1\A\a!?EO1a?CE??\81N?1?e!\81\92</highlight></codeline>
+<linenumber line="73"/><codeline>                              <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1a9">print</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> textureNo,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> x,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> y,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> angleRad,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> scale,<highlight class="keyword">const</highlight> COLOR color,</codeline>
+<linenumber line="74"/><codeline>                                      <highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> *format,...);</codeline>
+<linenumber line="75"/><codeline>                              <highlight class="comment">// \1\\81~\e\?\E?I\i!?\E</highlight></codeline>
+<linenumber line="76"/><codeline>                              sprite::Sprite* <highlight class="keyword">const</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1a10">createSprite</ref>(<highlight class="keyword">const</highlight> sprite::Info* <highlight class="keyword">const</highlight> pInfo);</codeline>
+<linenumber line="77"/><codeline></codeline>
+<linenumber line="78"/><codeline>                              <highlight class="comment">// ACCESS //</highlight></codeline>
+<linenumber line="79"/><codeline></codeline>
+<linenumber line="80"/><codeline>                              <highlight class="comment">// INQUIRY //</highlight></codeline>
+<linenumber line="81" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1a11"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1a11">isEnabled</ref>(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o1">mbD3DReady</ref>;};</codeline>
+<linenumber line="82"/><codeline></codeline>
+<linenumber line="83"/><codeline>                      <highlight class="keyword">private</highlight>:</codeline>
+<linenumber line="86"/><codeline>                              <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c0">checkAndSetDevice</ref>(<highlight class="keyword">const</highlight> D3DDEVTYPE devtype = D3DDEVTYPE_HAL);</codeline>
+<linenumber line="87"/><codeline></codeline>
+<linenumber line="89"/><codeline>                              <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c1">checkAndSetDeviceType</ref>(<highlight class="keyword">const</highlight> D3DDEVTYPE devtype);</codeline>
+<linenumber line="90"/><codeline>      </codeline>
+<linenumber line="94"/><codeline>                              <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c2">checkAndSetBackBufferFormat</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="96"/><codeline>                              <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c3">checkAndSetTextureFormat</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="98"/><codeline>                              <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c4">checkAndSetDepthFormat</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="99"/><codeline>                              </codeline>
+<linenumber line="101"/><codeline>                             <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c5">initDeviceStates</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="102"/><codeline></codeline>
+<linenumber line="104"/><codeline>                             <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c6">initConsoleViewStyle</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="105"/><codeline>                             </codeline>
+<linenumber line="107"/><codeline>                             <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c7">initLight</ref>();</codeline>
+<linenumber line="108"/><codeline></codeline>
+<linenumber line="110"/><codeline>                             <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c8">initMatrix</ref>();</codeline>
+<linenumber line="111"/><codeline></codeline>
+<linenumber line="112"/><codeline></codeline>
+<linenumber line="114"/><codeline>                             <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c9">initNotManagedObjects</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="115"/><codeline></codeline>
+<linenumber line="117"/><codeline>                             <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c10">releaseNotManagedObjects</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="118"/><codeline>                             </codeline>
+<linenumber line="120"/><codeline>                             <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c11">loadFont</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="121"/><codeline></codeline>
+<linenumber line="123"/><codeline>                             <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c12">startFrame</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="124"/><codeline></codeline>
+<linenumber line="126"/><codeline>                             <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c13">endFrame</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="127"/><codeline></codeline>
+<linenumber line="129"/><codeline>                             <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c14">textDraw</ref>(<highlight class="keywordtype">int</highlight> textureNo,<highlight class="keywordtype">float</highlight> x,<highlight class="keywordtype">float</highlight> y,<highlight class="keywordtype">float</highlight> angleRad,<highlight class="keywordtype">float</highlight> scale,COLOR color,<highlight class="keywordtype">char</highlight> *pBuf);</codeline>
+<linenumber line="130"/><codeline></codeline>
+<linenumber line="132"/><codeline>                             <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1c15">textOut</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="133"/><codeline></codeline>
+<linenumber line="134" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1o0"/><codeline>                             HWND    <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o0">mhWndMain</ref>;</codeline>
+<linenumber line="135"/><codeline>                             </codeline>
+<linenumber line="136" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1o1"/><codeline>                             <highlight class="keywordtype">bool</highlight>                                 <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o1">mbD3DReady</ref>;</codeline>
+<linenumber line="137" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1o2"/><codeline>                             <highlight class="keywordtype">bool</highlight>                                 <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o2">mbWindowed</ref>;  </codeline>
+<linenumber line="138"/><codeline>                             </codeline>
+<linenumber line="139" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3"/><codeline>                             LPDIRECT3D8                             <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o3">mpD3D</ref>;</codeline>
+<linenumber line="140" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1o4"/><codeline>                             D3DDEVTYPE                              <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o4">mD3DDeviceType</ref>;</codeline>
+<linenumber line="141"/><codeline>                             </codeline>
+<linenumber line="142" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5"/><codeline>                             LPDIRECT3DDEVICE8               <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o5">mpD3DDevice</ref>;</codeline>
+<linenumber line="143" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1o6"/><codeline>                             LPD3DXSPRITE                    <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o6">mpD3DXSprite</ref>;</codeline>
+<linenumber line="144"/><codeline>                             </codeline>
+<linenumber line="145" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1o7"/><codeline>                             D3DFORMAT                               <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o7">mD3DFormat</ref>;</codeline>
+<linenumber line="146" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1o8"/><codeline>                             D3DFORMAT                               <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o8">mTextureFormat</ref>;</codeline>
+<linenumber line="147" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1o9"/><codeline>                             D3DFORMAT                               <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o9">mDepthFormat</ref>;</codeline>
+<linenumber line="148" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10"/><codeline>                            D3DPRESENT_PARAMETERS   <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o10">mD3Dpp</ref>;</codeline>
+<linenumber line="149"/><codeline>                             </codeline>
+<linenumber line="150" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1o11"/><codeline>                            IDirect3DTexture8*              <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o11">mpFontTexture</ref>[font::COUNT_MAX];</codeline>
+<linenumber line="151" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1o12"/><codeline>                            sprite::AbstractSprite* <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o12">mpSprite</ref>[sprite::MAX];</codeline>
+<linenumber line="152"/><codeline>                             </codeline>
+<linenumber line="154" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1"/><codeline>                              <highlight class="keyword">class </highlight>TextQueueData{</codeline>
+<linenumber line="155"/><codeline>                             <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="164"/><codeline>                                     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a0">TextQueueData</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a3">textureNo</ref>,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a4">x</ref>,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a5">y</ref>,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> angleRad,<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a7">scale</ref>,<highlight class="keyword">const</highlight> COLOR <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a8">color</ref>,<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> *pBuffer = NULL);</codeline>
+<linenumber line="166"/><codeline>                                     <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a1">~TextQueueData</ref>();</codeline>
+<linenumber line="167"/><codeline>                                     <highlight class="comment">// ACCESS </highlight></codeline>
+<linenumber line="170" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a2"/><codeline><highlight class="comment"></highlight>                                     <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a2">buffer</ref>(<highlight class="keywordtype">void</highlight>) { <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o6">mpBuf</ref>;};</codeline>
+<linenumber line="171"/><codeline>                                     </codeline>
+<linenumber line="174" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a3"/><codeline>                                    <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a3">textureNo</ref>()<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o0">mTextureNo</ref>;};</codeline>
+<linenumber line="175"/><codeline>                                     </codeline>
+<linenumber line="178" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a4"/><codeline>                                    <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a4">x</ref>()<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o1">mX</ref>;};</codeline>
+<linenumber line="179"/><codeline></codeline>
+<linenumber line="182" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a5"/><codeline>                                    <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a5">y</ref>()<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o2">mY</ref>;};</codeline>
+<linenumber line="183"/><codeline></codeline>
+<linenumber line="186" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a6"/><codeline>                                    <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a6">angeleRad</ref>()<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o3">mAngleRad</ref>;};</codeline>
+<linenumber line="187"/><codeline></codeline>
+<linenumber line="190" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a7"/><codeline>                                    <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a7">scale</ref>()<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o4">mScale</ref>;};</codeline>
+<linenumber line="191"/><codeline></codeline>
+<linenumber line="194" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a8"/><codeline>                                    <highlight class="keyword">const</highlight> COLOR <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1a8">color</ref>()<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o5">mColor</ref>;};</codeline>
+<linenumber line="195"/><codeline>                             <highlight class="keyword">private</highlight>:</codeline>
+<linenumber line="196" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o0"/><codeline>                                    <highlight class="keywordtype">int</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o0">mTextureNo</ref>;</codeline>
+<linenumber line="197" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o1"/><codeline>                                    <highlight class="keywordtype">float</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o1">mX</ref>;</codeline>
+<linenumber line="198" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o2"/><codeline>                                    <highlight class="keywordtype">float</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o2">mY</ref>;</codeline>
+<linenumber line="199" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o3"/><codeline>                                    <highlight class="keywordtype">float</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o3">mAngleRad</ref>;</codeline>
+<linenumber line="200" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o4"/><codeline>                                    <highlight class="keywordtype">float</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o4">mScale</ref>;</codeline>
+<linenumber line="201" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o5"/><codeline>                                    COLOR <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o5">mColor</ref>;</codeline>
+<linenumber line="202" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o6"/><codeline>                                    <highlight class="keywordtype">char</highlight> <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1_1TextQueueData_1o6">mpBuf</ref>[text::BUFFER_LENGTH];</codeline>
+<linenumber line="203"/><codeline>                             };</codeline>
+<linenumber line="204"/><codeline></codeline>
+<linenumber line="206" refid="classsf_1_1system_1_1console_1_1ConsoleImpl_1o13"/><codeline>                            std::queue&lt;TextQueueData *&gt; <ref idref="classsf_1_1system_1_1console_1_1ConsoleImpl_1o13">mTextQueue</ref>;</codeline>
+<linenumber line="207"/><codeline></codeline>
+<linenumber line="208"/><codeline>                     }; <highlight class="comment">// ConsoleImpl</highlight></codeline>
+<linenumber line="209"/><codeline>             } <highlight class="comment">// namespace console</highlight></codeline>
+<linenumber line="210"/><codeline>     } <highlight class="comment">// namespace system</highlight></codeline>
+<linenumber line="211"/><codeline>} <highlight class="comment">// namespace sf</highlight></codeline>
+<linenumber line="212"/><codeline>}</codeline>
+<linenumber line="213"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_ConsoleImpl_H__B6F6F87A_C87F_40DA_8F4F_C037111CAC9D__INCLUDED_)</highlight></codeline>
+<linenumber line="214"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/ConsoleImpl.h"/>
+  </compounddef>
+  <compounddef id="dxerr8sf_8h" kind="file">
+    <compoundname>dxerr8sf.h</compoundname>
+    <includes local="yes">dxerr8.h</includes>
+    <includedby id="AbstractSprite_8cpp" local="yes">AbstractSprite.cpp</includedby>
+    <includedby id="ConsoleImpl_8cpp" local="yes">ConsoleImpl.cpp</includedby>
+    <includedby id="InputImpl_8cpp" local="yes">InputImpl.cpp</includedby>
+    <includedby id="sfglib_8cpp" local="yes">sfglib.cpp</includedby>
+    <includedby id="SoundImpl_8cpp" local="yes">SoundImpl.cpp</includedby>
+    <includedby id="Sprite2D_8cpp" local="yes">Sprite2D.cpp</includedby>
+    <includedby id="Sprite3D_8cpp" local="yes">Sprite3D.cpp</includedby>
+    <includedby id="SpriteMesh_8cpp" local="yes">SpriteMesh.cpp</includedby>
+    <includedby id="SystemImpl_8cpp" local="yes">SystemImpl.cpp</includedby>
+    <incdepgraph>
+      <node id="264">
+        <label>dxerr8.h</label>
+      </node>
+      <node id="263">
+        <label>dxerr8sf.h</label>
+        <link id="dxerr8sf.h"/>
+        <childnode id="264" relation="public-inheritance">
+        </childnode>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="269">
+        <label>sfglib.cpp</label>
+        <link id="sfglib_8cpp-source"/>
+      </node>
+      <node id="270">
+        <label>SoundImpl.cpp</label>
+        <link id="SoundImpl_8cpp-source"/>
+      </node>
+      <node id="271">
+        <label>Sprite2D.cpp</label>
+        <link id="Sprite2D_8cpp-source"/>
+      </node>
+      <node id="274">
+        <label>SystemImpl.cpp</label>
+        <link id="SystemImpl_8cpp-source"/>
+      </node>
+      <node id="268">
+        <label>InputImpl.cpp</label>
+        <link id="InputImpl_8cpp-source"/>
+      </node>
+      <node id="265">
+        <label>dxerr8sf.h</label>
+        <link id="dxerr8sf.h"/>
+        <childnode id="266" relation="public-inheritance">
+        </childnode>
+        <childnode id="267" relation="public-inheritance">
+        </childnode>
+        <childnode id="268" relation="public-inheritance">
+        </childnode>
+        <childnode id="269" relation="public-inheritance">
+        </childnode>
+        <childnode id="270" relation="public-inheritance">
+        </childnode>
+        <childnode id="271" relation="public-inheritance">
+        </childnode>
+        <childnode id="272" relation="public-inheritance">
+        </childnode>
+        <childnode id="273" relation="public-inheritance">
+        </childnode>
+        <childnode id="274" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="267">
+        <label>ConsoleImpl.cpp</label>
+        <link id="ConsoleImpl_8cpp-source"/>
+      </node>
+      <node id="273">
+        <label>SpriteMesh.cpp</label>
+        <link id="SpriteMesh_8cpp-source"/>
+      </node>
+      <node id="266">
+        <label>AbstractSprite.cpp</label>
+        <link id="AbstractSprite_8cpp-source"/>
+      </node>
+      <node id="272">
+        <label>Sprite3D.cpp</label>
+        <link id="Sprite3D_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">//  DX\\81N\e!?E??\81NIN</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  \U!?\e\o\E\3\o\N\?\e?EAD\81}t!c</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// $Log: dxerr8sf.h,v $</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:36  fujiwara</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:50:48  fujiwara</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="preprocessor">#ifndef _BORLAND</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">  #include &quot;dxerr8.h&quot;</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="preprocessor">#else</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="preprocessor"></highlight><highlight class="comment">//     #include &quot;dxerr8.h&quot;</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="preprocessor">      #define DXGetErrorString8(X) &quot;error occured!&quot;</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif </highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/dxerr8sf.h"/>
+  </compounddef>
+  <compounddef id="Exception_8cpp" kind="file">
+    <compoundname>Exception.cpp</compoundname>
+    <includes id="sfdebug_8h" local="yes">sfdebug.h</includes>
+    <includes local="no">string</includes>
+    <includes local="no">strstream</includes>
+    <includes id="Exception_8h" local="yes">Exception.h</includes>
+    <incdepgraph>
+      <node id="279">
+        <label>Exception.h</label>
+        <link id="Exception_8h"/>
+        <childnode id="280" relation="public-inheritance">
+        </childnode>
+        <childnode id="277" relation="public-inheritance">
+        </childnode>
+        <childnode id="278" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="278">
+        <label>strstream</label>
+      </node>
+      <node id="277">
+        <label>string</label>
+      </node>
+      <node id="276">
+        <label>sfdebug.h</label>
+        <link id="sfdebug_8h"/>
+      </node>
+      <node id="280">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="275">
+        <label>Exception.cpp</label>
+        <link id="Exception.cpp"/>
+        <childnode id="276" relation="public-inheritance">
+        </childnode>
+        <childnode id="277" relation="public-inheritance">
+        </childnode>
+        <childnode id="278" relation="public-inheritance">
+        </childnode>
+        <childnode id="279" relation="public-inheritance">
+        </childnode>
+      </node>
+    </incdepgraph>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">// Exception.cpp: Exception \\81P\e\1?I\?\o\\81~\e\a\o\A!?\\81E\c\o</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">//  IuIo!\81\98</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// $Log: Exception.cpp,v $</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// Revision 1.2  2001/11/06 21:27:42  fujiwara</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// AcEy11?\81EA\81\8b\D\A\\81P\\81\91\A\\81~</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">// Revision 1.3  2001/07/09 20:30:08  fujiwara</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">// Revision 1.2  2001/07/01 21:30:33  fujiwara</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">// \a\a\e\e!?\\81P\A\\81\98\A\\81P\81C\81áA??\81E</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">// Revision 1.1  2001/07/01 01:03:44  fujiwara</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment">// const ?I\81C\81áA??\81E</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment">// CUAO\\81N\C\\81\92\??IAOAa\81ED2a</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="sfdebug_8h">sfdebug.h</ref>&quot;</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="preprocessor">#include &lt;string&gt;</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor">#include &lt;strstream&gt;</highlight></codeline>
+<linenumber line="31"/><codeline></codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define new DEBUG_NEW</highlight></codeline>
+<linenumber line="34"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="35"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="36"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="Exception_8h">Exception.h</ref>&quot;</highlight></codeline>
+<linenumber line="37"/><codeline></codeline>
+<linenumber line="38"/><codeline></codeline>
+<linenumber line="39"/><codeline></codeline>
+<linenumber line="41"/><codeline><highlight class="comment">// 1?AU/?AIC</highlight></codeline>
+<linenumber line="43"/><codeline><highlight class="comment">using namespace sf::system;</highlight></codeline>
+<linenumber line="44"/><codeline></codeline>
+<linenumber line="45"/><codeline><highlight class="comment">//std::string Exception::msErrTypeStr = &quot;Basic Error&quot;;</highlight></codeline>
+<linenumber line="46"/><codeline></codeline>
+<linenumber line="47"/><codeline></codeline>
+<linenumber line="48"/><codeline></codeline>
+<linenumber line="49"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Exception.cpp"/>
+  </compounddef>
+  <compounddef id="Exception_8h" kind="file">
+    <compoundname>Exception.h</compoundname>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includes local="no">string</includes>
+    <includes local="no">strstream</includes>
+    <includedby id="Exception_8cpp" local="yes">Exception.cpp</includedby>
+    <incdepgraph>
+      <node id="282">
+        <label>Exception.h</label>
+        <link id="Exception.h"/>
+        <childnode id="283" relation="public-inheritance">
+        </childnode>
+        <childnode id="284" relation="public-inheritance">
+        </childnode>
+        <childnode id="285" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="285">
+        <label>strstream</label>
+      </node>
+      <node id="284">
+        <label>string</label>
+      </node>
+      <node id="283">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="286">
+        <label>Exception.h</label>
+        <link id="Exception.h"/>
+        <childnode id="287" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="287">
+        <label>Exception.cpp</label>
+        <link id="Exception_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="Exception_8h_1a0" virt="normal" prot="public">
+        <name>AFX_EXCEPTION_H__F0B6B43A_53BE_4C53_AB43_D64FED220C3B__INCLUDED_</name>
+        <briefdescription>
+<para>
+?AE\81\92\?\o\\81P\e!?\EEE\81âs\T\\81P\i. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Exception.h" line="12" bodystart="12" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+Ia3\81\8b?IAe\83ÊA?o1O?|. </para>
+    </briefdescription>
+    <detaileddescription>
+<simplesect kind="author"><title>oi?O: </title><para>
+S.F. </para>
+</simplesect><simplesect kind="version"><title>\D!?\\81C\c\o: </title><para>
+$Id:</para>
+</simplesect><para>
+Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved. </para>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline></codeline>
+<linenumber line="10"/><codeline></codeline>
+<linenumber line="11"/><codeline><highlight class="preprocessor">#if !defined(AFX_EXCEPTION_H__F0B6B43A_53BE_4C53_AB43_D64FED220C3B__INCLUDED_)</highlight></codeline>
+<linenumber line="12" refid="Exception_8h_1a0"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_EXCEPTION_H__F0B6B43A_53BE_4C53_AB43_D64FED220C3B__INCLUDED_</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="preprocessor">#include &lt;string&gt;</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="preprocessor">#include &lt;strstream&gt;</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="21"/><codeline><highlight class="keyword">namespace </highlight>sf {</codeline>
+<linenumber line="22"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="24" refid="classsf_1_1system_1_1Exception_1"/><codeline><highlight class="keyword">class  </highlight>Exception {</codeline>
+<linenumber line="25"/><codeline>      <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="27" refid="classsf_1_1system_1_1Exception_1s4"/><codeline>   <highlight class="keyword">enum</highlight> <ref idref="classsf_1_1system_1_1Exception_1s4">ERROR_TYPE</ref>{</codeline>
+<linenumber line="28"/><codeline>              <ref idref="classsf_1_1system_1_1Exception_1s4s0">DEFAULT</ref>,</codeline>
+<linenumber line="29"/><codeline>              <ref idref="classsf_1_1system_1_1Exception_1s4s1">DEVICE_NOT_FOUND</ref>,</codeline>
+<linenumber line="30"/><codeline>              <ref idref="classsf_1_1system_1_1Exception_1s4s2">BUFFER_IS_FULL</ref>,</codeline>
+<linenumber line="31"/><codeline>              <ref idref="classsf_1_1system_1_1Exception_1s4s3">SCENE_IS_EMPTY</ref></codeline>
+<linenumber line="32"/><codeline>      };</codeline>
+<linenumber line="33"/><codeline></codeline>
+<linenumber line="35" refid="classsf_1_1system_1_1Exception_1a0"/><codeline>   <ref idref="classsf_1_1system_1_1Exception_1a0">Exception::Exception</ref>()</codeline>
+<linenumber line="36"/><codeline>      {</codeline>
+<linenumber line="37"/><codeline>              <ref idref="classsf_1_1system_1_1Exception_1o4">mErrID</ref> = <ref idref="classsf_1_1system_1_1Exception_1s4s0">DEFAULT</ref>;</codeline>
+<linenumber line="38"/><codeline>      };</codeline>
+<linenumber line="39"/><codeline></codeline>
+<linenumber line="45" refid="classsf_1_1system_1_1Exception_1a1"/><codeline>   Exception(<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> pValue,<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> fileName,<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> line,<highlight class="keyword">const</highlight> ERROR_TYPE err = DEFAULT)</codeline>
+<linenumber line="46"/><codeline>              {mErrString = pValue; mFileName = fileName;mLineNumber = line; mErrID = err;};</codeline>
+<linenumber line="52" refid="classsf_1_1system_1_1Exception_1a2"/><codeline>   Exception(std::string &amp; value,<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> fileName,<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> line,<highlight class="keyword">const</highlight> ERROR_TYPE err = DEFAULT)</codeline>
+<linenumber line="53"/><codeline>              {mErrString = value;mFileName = fileName ; mLineNumber = line; mErrID = err;};</codeline>
+<linenumber line="55" refid="classsf_1_1system_1_1Exception_1a3"/><codeline>   <highlight class="keyword">virtual</highlight> ~Exception(){};</codeline>
+<linenumber line="56"/><codeline>      </codeline>
+<linenumber line="59" refid="classsf_1_1system_1_1Exception_1a4"/><codeline>   <highlight class="keyword">virtual</highlight> std::string &amp; reason(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="60"/><codeline>      {<highlight class="keywordflow">return</highlight> mErrString;};</codeline>
+<linenumber line="61"/><codeline>      </codeline>
+<linenumber line="64" refid="classsf_1_1system_1_1Exception_1a5"/><codeline>   <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> reason(<highlight class="keyword">const</highlight> std::string&amp; value){mErrString = value;};</codeline>
+<linenumber line="65"/><codeline>      </codeline>
+<linenumber line="68" refid="classsf_1_1system_1_1Exception_1a6"/><codeline>   <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> reason(<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> pValue){mErrString = pValue;};</codeline>
+<linenumber line="69"/><codeline>      </codeline>
+<linenumber line="72" refid="classsf_1_1system_1_1Exception_1a7"/><codeline>   <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> sourceFileName(<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> pValue){mFileName = pValue;};</codeline>
+<linenumber line="73"/><codeline>      </codeline>
+<linenumber line="76" refid="classsf_1_1system_1_1Exception_1a8"/><codeline>   <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> std::string  sourceFileName(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mFileName;};</codeline>
+<linenumber line="77"/><codeline></codeline>
+<linenumber line="80" refid="classsf_1_1system_1_1Exception_1a9"/><codeline>   <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> lineNumber(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> value){mLineNumber = value;};</codeline>
+<linenumber line="81"/><codeline>      </codeline>
+<linenumber line="84" refid="classsf_1_1system_1_1Exception_1a10"/><codeline>  <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> lineNumber(<highlight class="keywordtype">void</highlight>){<highlight class="keywordflow">return</highlight> mLineNumber;};</codeline>
+<linenumber line="85"/><codeline>      </codeline>
+<linenumber line="88" refid="classsf_1_1system_1_1Exception_1a11"/><codeline>  <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> errorType(<highlight class="keyword">const</highlight> ERROR_TYPE value){mErrID = value;};</codeline>
+<linenumber line="89"/><codeline>      </codeline>
+<linenumber line="92" refid="classsf_1_1system_1_1Exception_1a12"/><codeline>  <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> ERROR_TYPE errorType(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mErrID;};</codeline>
+<linenumber line="93"/><codeline></codeline>
+<linenumber line="96" refid="classsf_1_1system_1_1Exception_1a13"/><codeline>  <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> Exception::getDefaultMessage(<highlight class="keywordtype">void</highlight>){</codeline>
+<linenumber line="97"/><codeline>              <highlight class="keywordtype">char</highlight> tmp1[512];</codeline>
+<linenumber line="98"/><codeline>              std::strstream tmp(tmp1,510,std::ios::in | std::ios::out);</codeline>
+<linenumber line="99"/><codeline>              tmp &lt;&lt; <ref idref="classsf_1_1system_1_1Exception_1a4">reason</ref>()  &lt;&lt; std::endl &lt;&lt; <ref idref="classsf_1_1system_1_1Exception_1a8">sourceFileName</ref>() &lt;&lt; <highlight class="stringliteral">&quot;:line&quot;</highlight> &lt;&lt; <ref idref="classsf_1_1system_1_1Exception_1a10">lineNumber</ref>() &lt;&lt; std::ends;</codeline>
+<linenumber line="100"/><codeline>             <ref idref="classsf_1_1system_1_1Exception_1o2">mDefaultMessage</ref> = tmp.str();</codeline>
+<linenumber line="101"/><codeline>             <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1Exception_1o2">mDefaultMessage</ref>.c_str();</codeline>
+<linenumber line="102"/><codeline>     }<highlight class="comment">// getDefaultMessage()              </highlight></codeline>
+<linenumber line="103"/><codeline></codeline>
+<linenumber line="104"/><codeline><highlight class="keyword">private</highlight>:</codeline>
+<linenumber line="105" refid="classsf_1_1system_1_1Exception_1o0"/><codeline>  std::string mErrString;</codeline>
+<linenumber line="106" refid="classsf_1_1system_1_1Exception_1o1"/><codeline>  std::string mFileName;</codeline>
+<linenumber line="107" refid="classsf_1_1system_1_1Exception_1o2"/><codeline>  std::string mDefaultMessage;</codeline>
+<linenumber line="108" refid="classsf_1_1system_1_1Exception_1o3"/><codeline>  <highlight class="keywordtype">int</highlight> mLineNumber;</codeline>
+<linenumber line="109" refid="classsf_1_1system_1_1Exception_1o4"/><codeline>  ERROR_TYPE mErrID;</codeline>
+<linenumber line="110"/><codeline>};</codeline>
+<linenumber line="111"/><codeline></codeline>
+<linenumber line="113" refid="classsf_1_1system_1_1FatalErrorException_1"/><codeline><highlight class="keyword">class </highlight>FatalErrorException : <highlight class="keyword">public</highlight> Exception {</codeline>
+<linenumber line="114"/><codeline><highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="120" refid="classsf_1_1system_1_1FatalErrorException_1a0"/><codeline>                FatalErrorException(<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> pValue,<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> fileName,<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> line,<highlight class="keyword">const</highlight> ERROR_TYPE err = DEFAULT)</codeline>
+<linenumber line="121"/><codeline>                     : Exception(pValue,fileName,line)</codeline>
+<linenumber line="122"/><codeline>                     {;};</codeline>
+<linenumber line="128" refid="classsf_1_1system_1_1FatalErrorException_1a1"/><codeline>                FatalErrorException(std::string &amp; value,<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> fileName,<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> line,<highlight class="keyword">const</highlight> ERROR_TYPE err = DEFAULT)</codeline>
+<linenumber line="129"/><codeline>                     : Exception(value,fileName,line)</codeline>
+<linenumber line="130"/><codeline>                     {;};</codeline>
+<linenumber line="131"/><codeline>};</codeline>
+<linenumber line="132"/><codeline></codeline>
+<linenumber line="134" refid="classsf_1_1system_1_1RecoverbleErrorException_1"/><codeline><highlight class="keyword">class </highlight>RecoverbleErrorException : <highlight class="keyword">public</highlight> Exception {</codeline>
+<linenumber line="135"/><codeline><highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="141" refid="classsf_1_1system_1_1RecoverbleErrorException_1a0"/><codeline>           RecoverbleErrorException(<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> pValue,<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> fileName,<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> line,<highlight class="keyword">const</highlight> ERROR_TYPE err = DEFAULT)</codeline>
+<linenumber line="142"/><codeline>                     : Exception(pValue,fileName,line)</codeline>
+<linenumber line="143"/><codeline>                     {;};</codeline>
+<linenumber line="149" refid="classsf_1_1system_1_1RecoverbleErrorException_1a1"/><codeline>           RecoverbleErrorException(std::string &amp; value,<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> fileName,<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> line,<highlight class="keyword">const</highlight> ERROR_TYPE err = DEFAULT)</codeline>
+<linenumber line="150"/><codeline>                     : Exception(value,fileName,line)</codeline>
+<linenumber line="151"/><codeline>                     {;};</codeline>
+<linenumber line="152"/><codeline></codeline>
+<linenumber line="153"/><codeline>};</codeline>
+<linenumber line="154"/><codeline>     }<highlight class="comment">// system</highlight></codeline>
+<linenumber line="155"/><codeline>}<highlight class="comment">// sf</highlight></codeline>
+<linenumber line="156"/><codeline>}</codeline>
+<linenumber line="157"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_EXCEPTION_H__F0B6B43A_53BE_4C53_AB43_D64FED220C3B__INCLUDED_)</highlight></codeline>
+<linenumber line="158"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Exception.h"/>
+  </compounddef>
+  <compounddef id="Input_8cpp" kind="file">
+    <compoundname>Input.cpp</compoundname>
+    <includes id="sfdebug_8h" local="yes">sfdebug.h</includes>
+    <includes local="yes">stdio.h</includes>
+    <includes local="yes">system.h</includes>
+    <includes id="Input_8h" local="yes">Input.h</includes>
+    <incdepgraph>
+      <node id="288">
+        <label>Input.cpp</label>
+        <link id="Input.cpp"/>
+        <childnode id="289" relation="public-inheritance">
+        </childnode>
+        <childnode id="290" relation="public-inheritance">
+        </childnode>
+        <childnode id="291" relation="public-inheritance">
+        </childnode>
+        <childnode id="292" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="292">
+        <label>Input.h</label>
+        <link id="Input_8h"/>
+        <childnode id="293" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="289">
+        <label>sfdebug.h</label>
+        <link id="sfdebug_8h"/>
+      </node>
+      <node id="293">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="291">
+        <label>system.h</label>
+      </node>
+      <node id="290">
+        <label>stdio.h</label>
+      </node>
+    </incdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1input">sf::system::input</innernamespace>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">//  Input Ae?Y\\81P\e\1?I\O\A\A!\81\91</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//    ?AAo?I!\81\91OS\81\8bIA\81C?I\81÷n?Y!E?AAo!E\\81P\e\1?EC??\81â?T?1!\81\92</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">//  IuIo:</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// $Log: Input.cpp,v $</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// Revision 1.3  2001/07/01 21:30:34  fujiwara</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">// \a\a\e\e!?\\81P\A\\81\98\A\\81P\81C\81áA??\81E</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:50:12  fujiwara</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// 2001/01/29 \a\a\e!?\e!?\\81P\81C!?DIN\e\?\O\e\e?IAE2A </highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="sfdebug_8h">sfdebug.h</ref>&quot;</highlight></codeline>
+<linenumber line="24"/><codeline></codeline>
+<linenumber line="25"/><codeline><highlight class="comment">// SYSTEM INCLUDES //</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor">#include &quot;stdio.h&quot;</highlight></codeline>
+<linenumber line="27"/><codeline></codeline>
+<linenumber line="28"/><codeline><highlight class="comment">// Project Includes </highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="preprocessor">#include &quot;system.h&quot;</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define new DEBUG_NEW</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;<ref idref="Input_8h">Input.h</ref>&quot;</highlight></codeline>
+<linenumber line="34"/><codeline></codeline>
+<linenumber line="36"/><codeline><highlight class="comment">// 1?AU/?AIC</highlight></codeline>
+<linenumber line="38"/><codeline><highlight class="comment">namespace sf {</highlight></codeline>
+<linenumber line="39"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="40" refid="namespacesf_1_1system_1_1input_1"/><codeline>             <highlight class="keyword">namespace </highlight>input {</codeline>
+<linenumber line="41"/><codeline>                      </codeline>
+<linenumber line="42"/><codeline>                      Input::Input()</codeline>
+<linenumber line="43"/><codeline>                      {</codeline>
+<linenumber line="44"/><codeline>                              </codeline>
+<linenumber line="45"/><codeline>                      }</codeline>
+<linenumber line="46"/><codeline>                      </codeline>
+<linenumber line="47"/><codeline>                      Input::~Input()</codeline>
+<linenumber line="48"/><codeline>                      {</codeline>
+<linenumber line="49"/><codeline>                              </codeline>
+<linenumber line="50"/><codeline>                      }</codeline>
+<linenumber line="51"/><codeline>              } <highlight class="comment">// namespace input </highlight></codeline>
+<linenumber line="52"/><codeline>      } <highlight class="comment">// namespace system</highlight></codeline>
+<linenumber line="53"/><codeline>} <highlight class="comment">// namespace sf</highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Input.cpp"/>
+  </compounddef>
+  <compounddef id="Input_8h" kind="file">
+    <compoundname>Input.h</compoundname>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includedby id="Input_8cpp" local="yes">Input.cpp</includedby>
+    <includedby id="InputImpl_8h" local="yes">InputImpl.h</includedby>
+    <includedby id="SoundImpl_8cpp" local="yes">SoundImpl.cpp</includedby>
+    <incdepgraph>
+      <node id="295">
+        <label>Input.h</label>
+        <link id="Input.h"/>
+        <childnode id="296" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="296">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="301">
+        <label>sfglib.cpp</label>
+        <link id="sfglib_8cpp-source"/>
+      </node>
+      <node id="298">
+        <label>Input.cpp</label>
+        <link id="Input_8cpp-source"/>
+      </node>
+      <node id="304">
+        <label>SoundImpl.cpp</label>
+        <link id="SoundImpl_8cpp-source"/>
+      </node>
+      <node id="297">
+        <label>Input.h</label>
+        <link id="Input.h"/>
+        <childnode id="298" relation="public-inheritance">
+        </childnode>
+        <childnode id="299" relation="public-inheritance">
+        </childnode>
+        <childnode id="304" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="303">
+        <label>SystemImpl.cpp</label>
+        <link id="SystemImpl_8cpp-source"/>
+      </node>
+      <node id="300">
+        <label>InputImpl.cpp</label>
+        <link id="InputImpl_8cpp-source"/>
+      </node>
+      <node id="299">
+        <label>InputImpl.h</label>
+        <link id="InputImpl_8h"/>
+        <childnode id="300" relation="public-inheritance">
+        </childnode>
+        <childnode id="301" relation="public-inheritance">
+        </childnode>
+        <childnode id="302" relation="public-inheritance">
+        </childnode>
+        <childnode id="303" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="302">
+        <label>System.cpp</label>
+        <link id="System_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1input">sf::system::input</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1input_1_1keyboard">sf::system::input::keyboard</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1input_1_1mouse">sf::system::input::mouse</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="Input_8h_1a0" virt="normal" prot="public">
+        <name>AFX_INPUT_H__D4B94DF3_02D8_42CE_AC7A_A98CCC9D0115__INCLUDED_</name>
+        <briefdescription>
+<para>
+Ao?AAE?s1t?sEE\81âs\T\\81P\i. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Input.h" line="14" bodystart="14" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+AtII!E\-!?\U!?\E!|\T\|\1!|\\81C\c\?\1\A\\81\92\A\\81P!E?I\?\o\?!?\O\\81\98!?\1!\81\91Ae?oAe\83ÊA?E?E?o1O?|. ?AoY?I?eIy?I!\81\91OS\81\8bIA\81C?I?AAo\\81P\e\1?EC??\81â?T?1!\81\92. </para>
+    </briefdescription>
+    <detaileddescription>
+<simplesect kind="author"><title>oi?O: </title><para>
+S.F. </para>
+</simplesect><simplesect kind="version"><title>\D!?\\81C\c\o: </title><para>
+$Id:</para>
+</simplesect><para>
+Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved. </para>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline></codeline>
+<linenumber line="12"/><codeline></codeline>
+<linenumber line="13"/><codeline><highlight class="preprocessor">#if !defined(AFX_INPUT_H__D4B94DF3_02D8_42CE_AC7A_A98CCC9D0115__INCLUDED_)</highlight></codeline>
+<linenumber line="14" refid="Input_8h_1a0"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_INPUT_H__D4B94DF3_02D8_42CE_AC7A_A98CCC9D0115__INCLUDED_</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="22"/><codeline><highlight class="keyword">namespace </highlight>sf{</codeline>
+<linenumber line="23"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="25"/><codeline>              <highlight class="keyword">namespace </highlight>input {</codeline>
+<linenumber line="27" refid="namespacesf_1_1system_1_1input_1_1mouse_1"/><codeline>                    <highlight class="keyword">namespace </highlight>mouse {</codeline>
+<linenumber line="29"/><codeline>                              <highlight class="keyword">enum</highlight> <ref idref="namespacesf_1_1system_1_1input_1_1mouse_1a5">MKEY_CODE</ref> {</codeline>
+<linenumber line="30"/><codeline>                                      <ref idref="namespacesf_1_1system_1_1input_1_1mouse_1a5a0">MKEY_CONTROL</ref> = 0x1,</codeline>
+<linenumber line="31"/><codeline>                                      <ref idref="namespacesf_1_1system_1_1input_1_1mouse_1a5a1">MKEY_LBUTTON</ref> = 0x2,</codeline>
+<linenumber line="32"/><codeline>                                      <ref idref="namespacesf_1_1system_1_1input_1_1mouse_1a5a2">MKEY_RBUTTON</ref> = 0x4,</codeline>
+<linenumber line="33"/><codeline>                                      <ref idref="namespacesf_1_1system_1_1input_1_1mouse_1a5a3">MKEY_SHIFT</ref> = 0x8,</codeline>
+<linenumber line="34"/><codeline>                                      <ref idref="namespacesf_1_1system_1_1input_1_1mouse_1a5a4">WHEEL_MASK</ref> = 0xffff0000</codeline>
+<linenumber line="35"/><codeline>                              };</codeline>
+<linenumber line="36"/><codeline></codeline>
+<linenumber line="43" refid="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1"/><codeline>                            <highlight class="keyword">class </highlight>Listener </codeline>
+<linenumber line="44"/><codeline>                              {</codeline>
+<linenumber line="45"/><codeline>                              <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="46"/><codeline></codeline>
+<linenumber line="52"/><codeline>                                      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a0">leftButtonDown</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> screenX,<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> screenY,<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> mkey) = 0;</codeline>
+<linenumber line="53"/><codeline></codeline>
+<linenumber line="59"/><codeline>                                      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a1">leftButtonUp</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> screenX,<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> screenY,<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> mkey) = 0;</codeline>
+<linenumber line="60"/><codeline></codeline>
+<linenumber line="66"/><codeline>                                      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a2">leftButtonDoubleClick</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> screenX,<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> screenY,<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> mkey) = 0;</codeline>
+<linenumber line="67"/><codeline></codeline>
+<linenumber line="73"/><codeline>                                      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a3">rightButtonDown</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> screenX,<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> screenY,<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> mkey) = 0;</codeline>
+<linenumber line="74"/><codeline>                              </codeline>
+<linenumber line="80"/><codeline>                                      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a4">rightButtonUp</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> screenX,<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> screenY,<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> mkey) = 0;</codeline>
+<linenumber line="81"/><codeline></codeline>
+<linenumber line="87"/><codeline>                                      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a5">rightButtonDoubleClick</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> screenX,<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> screenY,<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> mkey) = 0;</codeline>
+<linenumber line="88"/><codeline></codeline>
+<linenumber line="94"/><codeline>                                      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a6">mouseMove</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> screenX,<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> screenY,<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> mkey) = 0;</codeline>
+<linenumber line="95"/><codeline></codeline>
+<linenumber line="101"/><codeline>                                     <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a7">mouseWheel</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> screenX,<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> screenY,<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> mkey) = 0;</codeline>
+<linenumber line="102"/><codeline>                                     </codeline>
+<linenumber line="106"/><codeline>                                     <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a8">isListeningMouse</ref>(<highlight class="keywordtype">void</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="107"/><codeline></codeline>
+<linenumber line="111"/><codeline>                                     <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1mouse_1_1Listener_1a9">mouseTalkerIsDeleted</ref>(<highlight class="keywordtype">void</highlight>) = 0;</codeline>
+<linenumber line="112"/><codeline>                             };</codeline>
+<linenumber line="113"/><codeline>                     };</codeline>
+<linenumber line="114"/><codeline></codeline>
+<linenumber line="116" refid="namespacesf_1_1system_1_1input_1_1keyboard_1"/><codeline>                        <highlight class="keyword">namespace </highlight>keyboard {</codeline>
+<linenumber line="118"/><codeline>                             <highlight class="keyword">enum</highlight> <ref idref="namespacesf_1_1system_1_1input_1_1keyboard_1a6">EXTEND_KEYCODE</ref> {</codeline>
+<linenumber line="119"/><codeline>                                     <ref idref="namespacesf_1_1system_1_1input_1_1keyboard_1a6a0">CONTROL</ref> = 0x1,</codeline>
+<linenumber line="120"/><codeline>                                     <ref idref="namespacesf_1_1system_1_1input_1_1keyboard_1a6a1">SHIFT</ref>   = 0x8</codeline>
+<linenumber line="121"/><codeline>                             };</codeline>
+<linenumber line="122"/><codeline></codeline>
+<linenumber line="124"/><codeline>                             <highlight class="keyword">enum</highlight> <ref idref="namespacesf_1_1system_1_1input_1_1keyboard_1a7">VIRTUAL_KEYCODE</ref> {</codeline>
+<linenumber line="125"/><codeline>                                     <ref idref="namespacesf_1_1system_1_1input_1_1keyboard_1a7a2">VKEY_LEFT</ref> = 0x25,</codeline>
+<linenumber line="126"/><codeline>                                     <ref idref="namespacesf_1_1system_1_1input_1_1keyboard_1a7a3">VKEY_UP</ref> = 0x26,</codeline>
+<linenumber line="127"/><codeline>                                     <ref idref="namespacesf_1_1system_1_1input_1_1keyboard_1a7a4">VKEY_RIGHT</ref> = 0x27,</codeline>
+<linenumber line="128"/><codeline>                                     <ref idref="namespacesf_1_1system_1_1input_1_1keyboard_1a7a5">VKEY_DOWN</ref> = 0x28</codeline>
+<linenumber line="129"/><codeline>                             };</codeline>
+<linenumber line="130"/><codeline></codeline>
+<linenumber line="134" refid="classsf_1_1system_1_1input_1_1keyboard_1_1VKey_1"/><codeline>                            <highlight class="keyword">class </highlight>SFDLL VKey {</codeline>
+<linenumber line="135"/><codeline>                             <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="136" refid="classsf_1_1system_1_1input_1_1keyboard_1_1VKey_1p0"/><codeline>                                  <highlight class="keyword">static</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> UP;</codeline>
+<linenumber line="137" refid="classsf_1_1system_1_1input_1_1keyboard_1_1VKey_1p1"/><codeline>                                  <highlight class="keyword">static</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> DOWN;</codeline>
+<linenumber line="138" refid="classsf_1_1system_1_1input_1_1keyboard_1_1VKey_1p2"/><codeline>                                  <highlight class="keyword">static</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> LEFT;</codeline>
+<linenumber line="139" refid="classsf_1_1system_1_1input_1_1keyboard_1_1VKey_1p3"/><codeline>                                  <highlight class="keyword">static</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> RIGHT;</codeline>
+<linenumber line="140"/><codeline>                             };</codeline>
+<linenumber line="141"/><codeline></codeline>
+<linenumber line="147" refid="classsf_1_1system_1_1input_1_1keyboard_1_1Listener_1"/><codeline>                    <highlight class="keyword">class </highlight>Listener </codeline>
+<linenumber line="148"/><codeline>                             {</codeline>
+<linenumber line="149"/><codeline>                             <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="154"/><codeline>                                     <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener_1a0">keyDown</ref>(<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> keyCode,<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> extKeyCode) = 0;</codeline>
+<linenumber line="155"/><codeline></codeline>
+<linenumber line="160"/><codeline>                                     <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener_1a1">keyUp</ref>(<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> keyCode,<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> extKeyCode) = 0;</codeline>
+<linenumber line="161"/><codeline></codeline>
+<linenumber line="167"/><codeline>                                     <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener_1a2">isListeningKeyboard</ref>(<highlight class="keywordtype">void</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="168"/><codeline>                                     </codeline>
+<linenumber line="174"/><codeline>                                     <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1keyboard_1_1Listener_1a3">keyboardTalkerIsDeleted</ref>(<highlight class="keywordtype">void</highlight>) = 0;</codeline>
+<linenumber line="175"/><codeline>                             };</codeline>
+<linenumber line="176"/><codeline>                     };</codeline>
+<linenumber line="177"/><codeline>                     </codeline>
+<linenumber line="179"/><codeline></codeline>
+<linenumber line="180" refid="classsf_1_1system_1_1input_1_1Input_1"/><codeline>                       <highlight class="keyword">class </highlight>Input  </codeline>
+<linenumber line="181"/><codeline>                     {</codeline>
+<linenumber line="182"/><codeline>                             <highlight class="comment">// LIFECYCLE //</highlight></codeline>
+<linenumber line="183"/><codeline>                     <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="185" refid="classsf_1_1system_1_1input_1_1Input_1a0"/><codeline>                             <ref idref="classsf_1_1system_1_1input_1_1Input_1a0">Input</ref>(){};</codeline>
+<linenumber line="187" refid="classsf_1_1system_1_1input_1_1Input_1a1"/><codeline>                             <highlight class="keyword">virtual</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a1">~Input</ref>(){};</codeline>
+<linenumber line="188"/><codeline>                             <highlight class="comment">// OPERATORS //</highlight></codeline>
+<linenumber line="189"/><codeline>                             <highlight class="comment">// OPERATIONS //</highlight></codeline>
+<linenumber line="191"/><codeline><highlight class="comment">                          /*! Input\?\o\?!?\O\\81\98!?\1?I?AAo\\81P\e\1?o?e\81Lu2??1?e???a?EIN\81\8bO?\83Ê?i?A???T?1!\81\92&lt;br&gt;</highlight></codeline>
+<linenumber line="192"/><codeline>                                 AI?i\e\?\O\e\e?oIoIN?1?eA|?\81á?e?3?I\a\?\A\E?o\81CA?O?D?1?3?E?I?\81\91?e?T?\81â?o!\81\92 </codeline>
+<linenumber line="193"/><codeline>                                     @<highlight class="keywordflow">throw</highlight> FatalErrorException ?e\81Lu2??E?oCO?\81E???i1c?a?\81E?\81P?IAtII\C\D\?\1?\81Ê2??a\81C\81á?A?\81á?e?E?\81á?A???i1c */</codeline>
+<linenumber line="194"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a2">initialize</ref>(<highlight class="keywordtype">void</highlight>) = 0;</codeline>
+<linenumber line="195"/><codeline></codeline>
+<linenumber line="198"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a3">update</ref>(<highlight class="keywordtype">void</highlight>) = 0;</codeline>
+<linenumber line="199"/><codeline></codeline>
+<linenumber line="205"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a4">addMouseListener</ref>(mouse::Listener * <highlight class="keyword">const</highlight> pListener) = 0;</codeline>
+<linenumber line="206"/><codeline>                             </codeline>
+<linenumber line="211"/><codeline>                             <highlight class="keyword">virtual</highlight>  <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a5">removeMouseListener</ref>(mouse::Listener * <highlight class="keyword">const</highlight> pListener) = 0;</codeline>
+<linenumber line="212"/><codeline></codeline>
+<linenumber line="218"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a6">addKeyboardListener</ref>(keyboard::Listener * <highlight class="keyword">const</highlight> pListener) = 0;</codeline>
+<linenumber line="219"/><codeline></codeline>
+<linenumber line="224"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a7">removeKeyboardListener</ref>(keyboard::Listener * <highlight class="keyword">const</highlight> pListener) = 0;</codeline>
+<linenumber line="225"/><codeline></codeline>
+<linenumber line="226"/><codeline>                             <highlight class="comment">// ACCESS //</highlight></codeline>
+<linenumber line="227"/><codeline></codeline>
+<linenumber line="234"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a8">left</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="235"/><codeline></codeline>
+<linenumber line="242"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a9">right</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="243"/><codeline></codeline>
+<linenumber line="250"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a10">up</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="251"/><codeline></codeline>
+<linenumber line="258"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a11">down</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="259"/><codeline></codeline>
+<linenumber line="266"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a12">buttonA</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="267"/><codeline></codeline>
+<linenumber line="274"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a13">buttonB</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="275"/><codeline></codeline>
+<linenumber line="282"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a14">buttonC</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="283"/><codeline></codeline>
+<linenumber line="290"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a15">buttonD</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="291"/><codeline></codeline>
+<linenumber line="298"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a16">start</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="299"/><codeline></codeline>
+<linenumber line="306"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a17">exit</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="307"/><codeline></codeline>
+<linenumber line="309"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a18">showMouseCursor</ref>(<highlight class="keywordtype">void</highlight>) = 0;</codeline>
+<linenumber line="311"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a19">hideMouseCursor</ref>(<highlight class="keywordtype">void</highlight>) = 0; </codeline>
+<linenumber line="315"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a20">mouseCursorVisibility</ref>(<highlight class="keywordtype">void</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="316"/><codeline></codeline>
+<linenumber line="317"/><codeline>                             <highlight class="comment">// INQUIRY //</highlight></codeline>
+<linenumber line="321"/><codeline><highlight class="comment"></highlight>                              <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1Input_1a21">isEnabled</ref>(<highlight class="keywordtype">void</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="322"/><codeline>                     };</codeline>
+<linenumber line="323"/><codeline>                     <highlight class="comment">// ----------------------------------------------------------------</highlight></codeline>
+<linenumber line="325"/><codeline><highlight class="comment">                  // ----------------------------------------------------------------</highlight></codeline>
+<linenumber line="326" refid="classsf_1_1system_1_1input_1_1Listener_1"/><codeline>                    <highlight class="keyword">class </highlight>Listener</codeline>
+<linenumber line="327"/><codeline>                     {</codeline>
+<linenumber line="328"/><codeline>                     <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="329"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> deviceStateChanged(Input * <highlight class="keyword">const</highlight> pInput) = 0;</codeline>
+<linenumber line="330"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> eventTalkerIsDeleted(<highlight class="keywordtype">void</highlight>) = 0;</codeline>
+<linenumber line="331"/><codeline>                     };<highlight class="comment">// Listener</highlight></codeline>
+<linenumber line="332"/><codeline>                     </codeline>
+<linenumber line="333"/><codeline></codeline>
+<linenumber line="334"/><codeline>             }<highlight class="comment">// namespace input</highlight></codeline>
+<linenumber line="335"/><codeline>     }<highlight class="comment">// namespace system</highlight></codeline>
+<linenumber line="336"/><codeline>}<highlight class="comment">// namespace sf</highlight></codeline>
+<linenumber line="337"/><codeline>}</codeline>
+<linenumber line="338"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_INPUT_H__D4B94DF3_02D8_42CE_AC7A_A98CCC9D0115__INCLUDED_)</highlight></codeline>
+<linenumber line="339"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Input.h"/>
+  </compounddef>
+  <compounddef id="InputImpl_8cpp" kind="file">
+    <compoundname>InputImpl.cpp</compoundname>
+    <includes id="sfdebug_8h" local="yes">sfdebug.h</includes>
+    <includes local="yes">math.h</includes>
+    <includes local="no">list</includes>
+    <includes local="no">queue</includes>
+    <includes local="no">memory</includes>
+    <includes local="no">map</includes>
+    <includes local="yes">windows.h</includes>
+    <includes local="yes">windowsx.h</includes>
+    <includes local="yes">d3d8.h</includes>
+    <includes local="yes">d3dx8.h</includes>
+    <includes local="yes">dmusici.h</includes>
+    <includes local="yes">dinput.h</includes>
+    <includes id="dxerr8sf_8h" local="yes">dxerr8sf.h</includes>
+    <includes local="yes">exception.h</includes>
+    <includes id="sfglib_2resource_8h" local="yes">resource.h</includes>
+    <includes id="System_8h" local="yes">System.h</includes>
+    <includes id="Console_8h" local="yes">Console.h</includes>
+    <includes id="Obj_8h" local="yes">Obj.h</includes>
+    <includes id="singleton_8h" local="yes">singleton.h</includes>
+    <includes id="AbstractSprite_8h" local="yes">AbstractSprite.h</includes>
+    <includes id="ConsoleImpl_8h" local="yes">ConsoleImpl.h</includes>
+    <includes id="SoundImpl_8h" local="yes">SoundImpl.h</includes>
+    <includes id="InputImpl_8h" local="yes">InputImpl.h</includes>
+    <includes id="Main_8h" local="yes">Main.h</includes>
+    <includes id="SystemWin32_8h" local="yes">SystemWin32.h</includes>
+    <includes id="SystemImpl_8h" local="yes">SystemImpl.h</includes>
+    <incdepgraph>
+      <node id="308">
+        <label>list</label>
+      </node>
+      <node id="327">
+        <label>singleton.h</label>
+        <link id="singleton_8h"/>
+        <childnode id="310" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="319">
+        <label>dxerr8.h</label>
+      </node>
+      <node id="309">
+        <label>queue</label>
+      </node>
+      <node id="330">
+        <label>SoundImpl.h</label>
+        <link id="SoundImpl_8h"/>
+        <childnode id="324" relation="public-inheritance">
+        </childnode>
+        <childnode id="331" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="312">
+        <label>windows.h</label>
+      </node>
+      <node id="333">
+        <label>Input.h</label>
+        <link id="Input_8h"/>
+        <childnode id="324" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="336">
+        <label>sfinterface.h</label>
+        <link id="sfinterface_8h-source"/>
+      </node>
+      <node id="322">
+        <label>System.h</label>
+        <link id="System_8h"/>
+        <childnode id="323" relation="public-inheritance">
+        </childnode>
+        <childnode id="324" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="313">
+        <label>windowsx.h</label>
+      </node>
+      <node id="321">
+        <label>resource.h</label>
+        <link id="sfglib_2resource_8h-source"/>
+      </node>
+      <node id="316">
+        <label>dmusici.h</label>
+      </node>
+      <node id="323">
+        <label>string</label>
+      </node>
+      <node id="329">
+        <label>ConsoleImpl.h</label>
+        <link id="ConsoleImpl_8h"/>
+        <childnode id="324" relation="public-inheritance">
+        </childnode>
+        <childnode id="325" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="305">
+        <label>InputImpl.cpp</label>
+        <link id="InputImpl.cpp"/>
+        <childnode id="306" relation="public-inheritance">
+        </childnode>
+        <childnode id="307" relation="public-inheritance">
+        </childnode>
+        <childnode id="308" relation="public-inheritance">
+        </childnode>
+        <childnode id="309" relation="public-inheritance">
+        </childnode>
+        <childnode id="310" relation="public-inheritance">
+        </childnode>
+        <childnode id="311" relation="public-inheritance">
+        </childnode>
+        <childnode id="312" relation="public-inheritance">
+        </childnode>
+        <childnode id="313" relation="public-inheritance">
+        </childnode>
+        <childnode id="314" relation="public-inheritance">
+        </childnode>
+        <childnode id="315" relation="public-inheritance">
+        </childnode>
+        <childnode id="316" relation="public-inheritance">
+        </childnode>
+        <childnode id="317" relation="public-inheritance">
+        </childnode>
+        <childnode id="318" relation="public-inheritance">
+        </childnode>
+        <childnode id="320" relation="public-inheritance">
+        </childnode>
+        <childnode id="321" relation="public-inheritance">
+        </childnode>
+        <childnode id="322" relation="public-inheritance">
+        </childnode>
+        <childnode id="325" relation="public-inheritance">
+        </childnode>
+        <childnode id="326" relation="public-inheritance">
+        </childnode>
+        <childnode id="327" relation="public-inheritance">
+        </childnode>
+        <childnode id="328" relation="public-inheritance">
+        </childnode>
+        <childnode id="329" relation="public-inheritance">
+        </childnode>
+        <childnode id="330" relation="public-inheritance">
+        </childnode>
+        <childnode id="332" relation="public-inheritance">
+        </childnode>
+        <childnode id="334" relation="public-inheritance">
+        </childnode>
+        <childnode id="335" relation="public-inheritance">
+        </childnode>
+        <childnode id="337" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="318">
+        <label>dxerr8sf.h</label>
+        <link id="dxerr8sf_8h-source"/>
+        <childnode id="319" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="306">
+        <label>sfdebug.h</label>
+        <link id="sfdebug_8h"/>
+      </node>
+      <node id="311">
+        <label>map</label>
+      </node>
+      <node id="328">
+        <label>AbstractSprite.h</label>
+        <link id="AbstractSprite_8h-source"/>
+        <childnode id="324" relation="public-inheritance">
+        </childnode>
+        <childnode id="325" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="337">
+        <label>SystemImpl.h</label>
+        <link id="SystemImpl_8h-source"/>
+        <childnode id="324" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="324">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="325">
+        <label>Console.h</label>
+        <link id="Console_8h"/>
+        <childnode id="310" relation="public-inheritance">
+        </childnode>
+        <childnode id="324" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="332">
+        <label>InputImpl.h</label>
+        <link id="InputImpl_8h"/>
+        <childnode id="324" relation="public-inheritance">
+        </childnode>
+        <childnode id="333" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="331">
+        <label>Sound.h</label>
+        <link id="Sound_8h"/>
+        <childnode id="324" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="307">
+        <label>math.h</label>
+      </node>
+      <node id="335">
+        <label>SystemWin32.h</label>
+        <link id="SystemWin32_8h"/>
+        <childnode id="336" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="326">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="324" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="314">
+        <label>d3d8.h</label>
+      </node>
+      <node id="334">
+        <label>Main.h</label>
+        <link id="Main_8h-source"/>
+      </node>
+      <node id="320">
+        <label>exception.h</label>
+      </node>
+      <node id="315">
+        <label>d3dx8.h</label>
+      </node>
+      <node id="310">
+        <label>memory</label>
+      </node>
+      <node id="317">
+        <label>dinput.h</label>
+      </node>
+    </incdepgraph>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="InputImpl_8cpp_1a0" virt="normal" prot="public">
+        <name>WIN32_LEAN_AND_MEAN</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.cpp" line="36" bodystart="36" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="InputImpl_8cpp_1a1" virt="normal" prot="public">
+        <name>_WIN32_WINNT</name>
+        <initializer>0x0400</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.cpp" line="37" bodystart="37" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">//  InputImpl Ae?Y\\81P\e\1?I\81÷n?Y!E?AAo!E\\81P\e\1</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  \\83Ê\o\\81~\e?\81á?e\N\\81P\e?T?\81P?A?A?T?1!\81\92  </highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">//  IuIo:</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// $Log: InputImpl.cpp,v $</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// Revision 1.5  2001/07/09 20:30:08  fujiwara</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// Revision 1.4  2001/07/01 21:30:34  fujiwara</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">// \a\a\e\e!?\\81P\A\\81\98\A\\81P\81C\81áA??\81E</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// Revision 1.3  2001/07/01 01:03:44  fujiwara</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">// const ?I\81C\81áA??\81E</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">// CUAO\\81N\C\\81\92\??IAOAa\81ED2a</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">// Revision 1.2  2001/05/29 01:12:45  fujiwara</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment">// \81â\81N\83Êu\-\a\e(Eo1OEa!E?IoiAR!\81\92CUAO\\81N\C\\81\92\??I\D\\81\8b??A\83Ê</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="comment">// Revision 1.1  2001/05/12 01:07:33  fujiwara</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="comment">// 2001/01/29 \a\a\e!?\e!?\\81P\81C!?DIN\e\?\O\e\e?IAE2A </highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="comment">#pragma warning( disable : 4786 )  //STL?I\81EU1d3\81\8b?\81E</highlight></codeline>
+<linenumber line="32"/><codeline></codeline>
+<linenumber line="33"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="34"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="sfdebug_8h">sfdebug.h</ref>&quot;</highlight></codeline>
+<linenumber line="35"/><codeline></codeline>
+<linenumber line="36"/><codeline><highlight class="preprocessor">#define WIN32_LEAN_AND_MEAN</highlight></codeline>
+<linenumber line="37"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define _WIN32_WINNT  0x0400</highlight></codeline>
+<linenumber line="38"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;math.h&quot;</highlight></codeline>
+<linenumber line="39"/><codeline><highlight class="preprocessor">#include &lt;list&gt;</highlight></codeline>
+<linenumber line="40"/><codeline><highlight class="preprocessor">#include &lt;queue&gt;</highlight></codeline>
+<linenumber line="41"/><codeline><highlight class="preprocessor">#include &lt;memory&gt;</highlight></codeline>
+<linenumber line="42"/><codeline><highlight class="preprocessor">#include &lt;map&gt;</highlight></codeline>
+<linenumber line="43"/><codeline></codeline>
+<linenumber line="44"/><codeline><highlight class="preprocessor">#include &quot;windows.h&quot;</highlight></codeline>
+<linenumber line="45"/><codeline><highlight class="preprocessor">#include &quot;windowsx.h&quot;</highlight></codeline>
+<linenumber line="46"/><codeline><highlight class="preprocessor">#include &quot;d3d8.h&quot;</highlight></codeline>
+<linenumber line="47"/><codeline><highlight class="preprocessor">#include &quot;d3dx8.h&quot;</highlight></codeline>
+<linenumber line="48"/><codeline><highlight class="preprocessor">#include &quot;dmusici.h&quot;</highlight></codeline>
+<linenumber line="49"/><codeline><highlight class="preprocessor">#include &quot;dinput.h&quot;</highlight></codeline>
+<linenumber line="50"/><codeline><highlight class="preprocessor">#include &quot;dxerr8sf.h&quot;</highlight></codeline>
+<linenumber line="51"/><codeline></codeline>
+<linenumber line="52"/><codeline><highlight class="comment">// PROJECT INCLUDES</highlight></codeline>
+<linenumber line="53"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="54"/><codeline></codeline>
+<linenumber line="55"/><codeline><highlight class="preprocessor">#include &quot;exception.h&quot;</highlight></codeline>
+<linenumber line="56"/><codeline><highlight class="preprocessor">#include &quot;resource.h&quot;</highlight></codeline>
+<linenumber line="57"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="System_8h">System.h</ref>&quot;</highlight></codeline>
+<linenumber line="58"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="Console_8h">Console.h</ref>&quot;</highlight></codeline>
+<linenumber line="59"/><codeline><highlight class="preprocessor">#include &quot;Obj.h&quot;</highlight></codeline>
+<linenumber line="60"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="singleton_8h">singleton.h</ref>&quot;</highlight></codeline>
+<linenumber line="61"/><codeline><highlight class="preprocessor">#include &quot;AbstractSprite.h&quot;</highlight></codeline>
+<linenumber line="62"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="ConsoleImpl_8h">ConsoleImpl.h</ref>&quot;</highlight>      </codeline>
+<linenumber line="63"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="SoundImpl_8h">SoundImpl.h</ref>&quot;</highlight></codeline>
+<linenumber line="64"/><codeline></codeline>
+<linenumber line="65"/><codeline></codeline>
+<linenumber line="66"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="InputImpl_8h">InputImpl.h</ref>&quot;</highlight></codeline>
+<linenumber line="67"/><codeline><highlight class="preprocessor">#include &quot;Main.h&quot;</highlight></codeline>
+<linenumber line="68"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="SystemWin32_8h">SystemWin32.h</ref>&quot;</highlight></codeline>
+<linenumber line="69"/><codeline><highlight class="preprocessor">#include &quot;SystemImpl.h&quot;</highlight></codeline>
+<linenumber line="70"/><codeline></codeline>
+<linenumber line="71"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="72"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define new DEBUG_NEW</highlight></codeline>
+<linenumber line="73"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="74"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="76"/><codeline><highlight class="comment">// 1?AU/?AIC</highlight></codeline>
+<linenumber line="78"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="79"/><codeline><highlight class="keyword">using</highlight> <highlight class="keyword">namespace </highlight>sf::system::input;</codeline>
+<linenumber line="80"/><codeline></codeline>
+<linenumber line="81"/><codeline><highlight class="comment">// \C\O\c\e\E\3\o\1\E\e\\81P\? ---------------------------------------------------</highlight></codeline>
+<linenumber line="82" refid="classsf_1_1system_1_1input_1_1InputImpl_1a0"/><codeline>InputImpl::InputImpl()</codeline>
+<linenumber line="83"/><codeline>{</codeline>
+<linenumber line="84"/><codeline></codeline>
+<linenumber line="85"/><codeline>}</codeline>
+<linenumber line="86"/><codeline></codeline>
+<linenumber line="87"/><codeline><highlight class="comment">// \3\o\1\E\e\\81P\? -------------------------------------------------------------</highlight></codeline>
+<linenumber line="88" refid="classsf_1_1system_1_1input_1_1InputImpl_1a1"/><codeline>InputImpl::InputImpl(HWND hwnd)</codeline>
+<linenumber line="89"/><codeline>{</codeline>
+<linenumber line="90"/><codeline>      <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o8">mHWND</ref> = hwnd;</codeline>
+<linenumber line="91"/><codeline><highlight class="comment">// initialize();           </highlight></codeline>
+<linenumber line="92"/><codeline>}</codeline>
+<linenumber line="93"/><codeline></codeline>
+<linenumber line="94"/><codeline><highlight class="comment">// \C\1\E\e\\81P\? ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="95" refid="classsf_1_1system_1_1input_1_1InputImpl_1a2"/><codeline>InputImpl::~InputImpl()</codeline>
+<linenumber line="96"/><codeline>{</codeline>
+<linenumber line="97"/><codeline>      <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1c0">uninitialize</ref>();</codeline>
+<linenumber line="98"/><codeline>}<highlight class="comment">// ~InputImpl()</highlight></codeline>
+<linenumber line="99"/><codeline></codeline>
+<linenumber line="100"/><codeline><highlight class="comment">// ?e\81Lu2? ---------------------------------------------------------------------</highlight></codeline>
+<linenumber line="101" refid="classsf_1_1system_1_1input_1_1InputImpl_1a35"/><codeline><highlight class="keywordtype">void</highlight> InputImpl::initialize(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="102"/><codeline>{</codeline>
+<linenumber line="103"/><codeline></codeline>
+<linenumber line="104"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o2">mpDI</ref> = NULL;</codeline>
+<linenumber line="105"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o3">mpJoystick</ref> = NULL;</codeline>
+<linenumber line="106"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o4">mpKeyboard</ref> = NULL;</codeline>
+<linenumber line="107"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o0">mbEnabled</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="108"/><codeline>     </codeline>
+<linenumber line="109"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o15">mbLeft</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="110"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o16">mbRight</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="111"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o13">mbUp</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="112"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o14">mbDown</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="113"/><codeline></codeline>
+<linenumber line="114"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o17">mbButtonA</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="115"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o18">mbButtonB</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="116"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o19">mbButtonC</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="117"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o20">mbButtonD</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="118"/><codeline></codeline>
+<linenumber line="119"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o21">mbStart</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="120"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o22">mbExit</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="121"/><codeline></codeline>
+<linenumber line="122"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o25">mbBeforeLeft</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="123"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o26">mbBeforeRight</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="124"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o23">mbBeforeUp</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="125"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o24">mbBeforeDown</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="126"/><codeline></codeline>
+<linenumber line="127"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o27">mbBeforeButtonA</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="128"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o28">mbBeforeButtonB</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="129"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o29">mbBeforeButtonC</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="130"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o30">mbBeforeButtonD</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="131"/><codeline></codeline>
+<linenumber line="132"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o31">mbBeforeStart</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="133"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o32">mbBeforeExit</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="134"/><codeline><highlight class="comment">//        uninitialize();</highlight></codeline>
+<linenumber line="135"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o0">mbEnabled</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="136"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o1">mbMouseCursor</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="137"/><codeline></codeline>
+<linenumber line="138"/><codeline>     HRESULT hr;</codeline>
+<linenumber line="139"/><codeline></codeline>
+<linenumber line="140"/><codeline></codeline>
+<linenumber line="141"/><codeline>    <highlight class="comment">// DirectInput \a\O\\81C\\81\98\\81P\E?IA\81CAR</highlight></codeline>
+<linenumber line="142"/><codeline>     <highlight class="keywordflow">if</highlight>( FAILED( hr = DirectInput8Create( GetModuleHandle(NULL), DIRECTINPUT_VERSION, </codeline>
+<linenumber line="143"/><codeline>                                         IID_IDirectInput8, (VOID**)&amp;<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o2">mpDI</ref>, NULL ) ) )</codeline>
+<linenumber line="144"/><codeline>     {       std::string tmp(<highlight class="stringliteral">&quot;DirectInput8Create() Error : &quot;</highlight>);</codeline>
+<linenumber line="145"/><codeline>             tmp += DXGetErrorString8(hr);</codeline>
+<linenumber line="146"/><codeline>             tmp += <highlight class="stringliteral">&quot; &quot;</highlight>;</codeline>
+<linenumber line="147"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(tmp,__FILE__,__LINE__);</codeline>
+<linenumber line="148"/><codeline>     }</codeline>
+<linenumber line="149"/><codeline></codeline>
+<linenumber line="150"/><codeline>     <highlight class="comment">// Joystick?I?e\81Lu2? </highlight></codeline>
+<linenumber line="151"/><codeline>     <highlight class="keywordflow">try</highlight> {</codeline>
+<linenumber line="152"/><codeline>             <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1c1">initJoystick</ref>();</codeline>
+<linenumber line="153"/><codeline>     } <highlight class="keywordflow">catch</highlight> (RecoverbleErrorException e)</codeline>
+<linenumber line="154"/><codeline>     {</codeline>
+<linenumber line="155"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o3">mpJoystick</ref> != NULL){</codeline>
+<linenumber line="156"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o3">mpJoystick</ref>-&gt;Release();</codeline>
+<linenumber line="157"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o3">mpJoystick</ref> = NULL;</codeline>
+<linenumber line="158"/><codeline>             }</codeline>
+<linenumber line="159"/><codeline>     } <highlight class="keywordflow">catch</highlight> (...){</codeline>
+<linenumber line="160"/><codeline>             <highlight class="keywordflow">throw</highlight>;</codeline>
+<linenumber line="161"/><codeline>     }</codeline>
+<linenumber line="162"/><codeline></codeline>
+<linenumber line="163"/><codeline></codeline>
+<linenumber line="164"/><codeline>     <highlight class="comment">// KeyBoard?I?e\81Lu2?</highlight></codeline>
+<linenumber line="165"/><codeline></codeline>
+<linenumber line="166"/><codeline>     <highlight class="keywordflow">try</highlight> {</codeline>
+<linenumber line="167"/><codeline>             <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1c2">initKeyboard</ref>();</codeline>
+<linenumber line="168"/><codeline>     } <highlight class="keywordflow">catch</highlight> (RecoverbleErrorException e) {</codeline>
+<linenumber line="169"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o4">mpKeyboard</ref> != NULL)</codeline>
+<linenumber line="170"/><codeline>             {</codeline>
+<linenumber line="171"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o4">mpKeyboard</ref>-&gt;Release();</codeline>
+<linenumber line="172"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o4">mpKeyboard</ref> = NULL;</codeline>
+<linenumber line="173"/><codeline>             }</codeline>
+<linenumber line="174"/><codeline></codeline>
+<linenumber line="175"/><codeline>     } <highlight class="keywordflow">catch</highlight> (...){</codeline>
+<linenumber line="176"/><codeline>             <highlight class="keywordflow">throw</highlight>;</codeline>
+<linenumber line="177"/><codeline>     }</codeline>
+<linenumber line="178"/><codeline></codeline>
+<linenumber line="179"/><codeline>     <highlight class="comment">// AtII\C\D\?\1?\81ÊA\81Cos?\81E?E???i1c?I!\81\91\\81N\e!??C?aI\81â?1?e!\81\92</highlight></codeline>
+<linenumber line="180"/><codeline></codeline>
+<linenumber line="181"/><codeline>     <highlight class="keywordflow">if</highlight>(NULL == <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o3">mpJoystick</ref> &amp;&amp; NULL == <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o4">mpKeyboard</ref>)</codeline>
+<linenumber line="182"/><codeline>     {</codeline>
+<linenumber line="183"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(<highlight class="stringliteral">&quot;InputImpl Device Not Found\r\n&quot;</highlight>,__FILE__,__LINE__);</codeline>
+<linenumber line="184"/><codeline>     };</codeline>
+<linenumber line="185"/><codeline></codeline>
+<linenumber line="186"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a16">addWindowMessageMap</ref>();</codeline>
+<linenumber line="187"/><codeline></codeline>
+<linenumber line="188"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o0">mbEnabled</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="189"/><codeline>}<highlight class="comment">// intialize()</highlight></codeline>
+<linenumber line="190"/><codeline></codeline>
+<linenumber line="191"/><codeline><highlight class="comment">// ?aI\81â -----------------------------------------------------------------------</highlight></codeline>
+<linenumber line="192" refid="classsf_1_1system_1_1input_1_1InputImpl_1c0"/><codeline><highlight class="keywordtype">void</highlight> InputImpl::uninitialize(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="193"/><codeline>{</codeline>
+<linenumber line="194"/><codeline>     KeyboardListenerList::iterator it = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o11">mKeyboardListenerList</ref>.begin();</codeline>
+<linenumber line="195"/><codeline>     </codeline>
+<linenumber line="196"/><codeline>     <highlight class="keywordflow">while</highlight>(it != <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o11">mKeyboardListenerList</ref>.end())</codeline>
+<linenumber line="197"/><codeline>     {</codeline>
+<linenumber line="198"/><codeline>             <highlight class="keywordflow">if</highlight>(*it != NULL){</codeline>
+<linenumber line="199"/><codeline>                     (*it)-&gt;keyboardTalkerIsDeleted();</codeline>
+<linenumber line="200"/><codeline><highlight class="comment">//                        ++it;</highlight></codeline>
+<linenumber line="201"/><codeline>             }</codeline>
+<linenumber line="202"/><codeline>             it = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o11">mKeyboardListenerList</ref>.erase(it);</codeline>
+<linenumber line="203"/><codeline>     }</codeline>
+<linenumber line="204"/><codeline></codeline>
+<linenumber line="205"/><codeline>     it = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o12">mKeyboardListenerQ</ref>.begin();</codeline>
+<linenumber line="206"/><codeline>     </codeline>
+<linenumber line="207"/><codeline>     <highlight class="keywordflow">while</highlight>(it != <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o12">mKeyboardListenerQ</ref>.end())</codeline>
+<linenumber line="208"/><codeline>     {</codeline>
+<linenumber line="209"/><codeline>             <highlight class="keywordflow">if</highlight>(*it != NULL){</codeline>
+<linenumber line="210"/><codeline>                     (*it)-&gt;keyboardTalkerIsDeleted();</codeline>
+<linenumber line="211"/><codeline></codeline>
+<linenumber line="212"/><codeline>             }</codeline>
+<linenumber line="213"/><codeline>             it = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o12">mKeyboardListenerQ</ref>.erase(it);</codeline>
+<linenumber line="214"/><codeline>     }</codeline>
+<linenumber line="215"/><codeline></codeline>
+<linenumber line="216"/><codeline>     MouseListenerList::iterator itm = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o9">mMouseListenerList</ref>.begin();</codeline>
+<linenumber line="217"/><codeline></codeline>
+<linenumber line="218"/><codeline>     <highlight class="keywordflow">while</highlight>(itm != <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o9">mMouseListenerList</ref>.end())</codeline>
+<linenumber line="219"/><codeline>     {</codeline>
+<linenumber line="220"/><codeline>             <highlight class="keywordflow">if</highlight>(*itm != NULL){</codeline>
+<linenumber line="221"/><codeline>                     (*itm)-&gt;mouseTalkerIsDeleted();</codeline>
+<linenumber line="222"/><codeline><highlight class="comment">//                        ++itm;</highlight></codeline>
+<linenumber line="223"/><codeline>             }</codeline>
+<linenumber line="224"/><codeline>             itm = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o9">mMouseListenerList</ref>.erase(itm);</codeline>
+<linenumber line="225"/><codeline>     }</codeline>
+<linenumber line="226"/><codeline></codeline>
+<linenumber line="227"/><codeline>     itm = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o10">mMouseListenerQ</ref>.begin();</codeline>
+<linenumber line="228"/><codeline></codeline>
+<linenumber line="229"/><codeline>     <highlight class="keywordflow">while</highlight>(itm != <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o10">mMouseListenerQ</ref>.end())</codeline>
+<linenumber line="230"/><codeline>     {</codeline>
+<linenumber line="231"/><codeline>             <highlight class="keywordflow">if</highlight>(*itm != NULL){</codeline>
+<linenumber line="232"/><codeline>                     (*itm)-&gt;mouseTalkerIsDeleted();</codeline>
+<linenumber line="233"/><codeline><highlight class="comment">//                        ++itm;</highlight></codeline>
+<linenumber line="234"/><codeline>             }</codeline>
+<linenumber line="235"/><codeline>             itm = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o10">mMouseListenerQ</ref>.erase(itm);</codeline>
+<linenumber line="236"/><codeline>     }</codeline>
+<linenumber line="237"/><codeline></codeline>
+<linenumber line="238"/><codeline>     <highlight class="keywordflow">if</highlight>(mpJoystick){</codeline>
+<linenumber line="239"/><codeline>             <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o3">mpJoystick</ref>-&gt;Release();</codeline>
+<linenumber line="240"/><codeline>             <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o3">mpJoystick</ref> = NULL;</codeline>
+<linenumber line="241"/><codeline>     }</codeline>
+<linenumber line="242"/><codeline></codeline>
+<linenumber line="243"/><codeline>     <highlight class="keywordflow">if</highlight>(mpKeyboard){</codeline>
+<linenumber line="244"/><codeline>             <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o4">mpKeyboard</ref>-&gt;Release();</codeline>
+<linenumber line="245"/><codeline>             <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o4">mpKeyboard</ref> = NULL;</codeline>
+<linenumber line="246"/><codeline>     }</codeline>
+<linenumber line="247"/><codeline>     </codeline>
+<linenumber line="248"/><codeline>     <highlight class="keywordflow">if</highlight>(mpDI){</codeline>
+<linenumber line="249"/><codeline>             <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o2">mpDI</ref>-&gt;Release();</codeline>
+<linenumber line="250"/><codeline>             <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o2">mpDI</ref> = NULL;</codeline>
+<linenumber line="251"/><codeline>     }</codeline>
+<linenumber line="252"/><codeline></codeline>
+<linenumber line="253"/><codeline>}<highlight class="comment">// uninitialize()</highlight></codeline>
+<linenumber line="254"/><codeline></codeline>
+<linenumber line="255"/><codeline><highlight class="comment">// \\81C\c\?\1\A\\81\92\A\\81P\C\D\?\1Io\83ÊoIN\3!?\e\D\A\\81P ---------------------------------</highlight></codeline>
+<linenumber line="256" refid="classsf_1_1system_1_1input_1_1InputImpl_1c3"/><codeline>BOOL InputImpl::enumJoysticksCallback(<highlight class="keyword">const</highlight> DIDEVICEINSTANCE *pdidInstance)</codeline>
+<linenumber line="257"/><codeline>{</codeline>
+<linenumber line="258"/><codeline>    HRESULT hr;</codeline>
+<linenumber line="259"/><codeline></codeline>
+<linenumber line="260"/><codeline>    <highlight class="comment">// Obtain an interface to the enumerated joystick.</highlight></codeline>
+<linenumber line="261"/><codeline>    hr = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o2">mpDI</ref>-&gt;CreateDevice( pdidInstance-&gt;guidInstance, &amp;<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o3">mpJoystick</ref>, NULL );</codeline>
+<linenumber line="262"/><codeline></codeline>
+<linenumber line="263"/><codeline>    <highlight class="comment">// If it failed, then we can&apos;t use this joystick. (Maybe the user unplugged</highlight></codeline>
+<linenumber line="264"/><codeline>    <highlight class="comment">// it while we were in the middle of enumerating it.)</highlight></codeline>
+<linenumber line="265"/><codeline>    <highlight class="keywordflow">if</highlight>( FAILED(hr) ) </codeline>
+<linenumber line="266"/><codeline>        <highlight class="keywordflow">return</highlight> DIENUM_CONTINUE;</codeline>
+<linenumber line="267"/><codeline></codeline>
+<linenumber line="268"/><codeline>    <highlight class="comment">// Stop enumeration. Note: we&apos;re just taking the first joystick we get. You</highlight></codeline>
+<linenumber line="269"/><codeline>    <highlight class="comment">// could store all the enumerated joysticks and let the user pick.</highlight></codeline>
+<linenumber line="270"/><codeline>    <highlight class="keywordflow">return</highlight> DIENUM_STOP;</codeline>
+<linenumber line="271"/><codeline>}</codeline>
+<linenumber line="272"/><codeline></codeline>
+<linenumber line="273"/><codeline></codeline>
+<linenumber line="274"/><codeline><highlight class="comment">// \\81C\c\?\1\A\\81\92\A\\81P?I?e\81Lu2? ---------------------------------------------------</highlight></codeline>
+<linenumber line="275" refid="classsf_1_1system_1_1input_1_1InputImpl_1c1"/><codeline><highlight class="keywordtype">void</highlight> InputImpl::initJoystick(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="276"/><codeline>{</codeline>
+<linenumber line="277"/><codeline></codeline>
+<linenumber line="278"/><codeline>     HRESULT hr = E_FAIL;</codeline>
+<linenumber line="279"/><codeline></codeline>
+<linenumber line="280"/><codeline>     <highlight class="comment">// DirectInput\C\D\?\1?IIo\83Êo</highlight></codeline>
+<linenumber line="281"/><codeline>    <highlight class="keywordflow">if</highlight>( FAILED(hr = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o2">mpDI</ref>-&gt;EnumDevices( DI8DEVCLASS_GAMECTRL, </codeline>
+<linenumber line="282"/><codeline>                                         <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1d0">enumJoysticksCallback</ref>,</codeline>
+<linenumber line="283"/><codeline>                                         (VOID*)<highlight class="keyword">this</highlight>, DIEDFL_ATTACHEDONLY ) ) )</codeline>
+<linenumber line="284"/><codeline>     {       </codeline>
+<linenumber line="285"/><codeline>             <highlight class="keywordflow">throw</highlight> RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="286"/><codeline>     }</codeline>
+<linenumber line="287"/><codeline></codeline>
+<linenumber line="288"/><codeline>    <highlight class="comment">// Make sure we got a joystick</highlight></codeline>
+<linenumber line="289"/><codeline>    <highlight class="keywordflow">if</highlight>( NULL == <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o3">mpJoystick</ref> )</codeline>
+<linenumber line="290"/><codeline>     {       <highlight class="keywordflow">throw</highlight> RecoverbleErrorException(<highlight class="stringliteral">&quot; NULL == mpJoystick&quot;</highlight>,__FILE__,__LINE__);}</codeline>
+<linenumber line="291"/><codeline></codeline>
+<linenumber line="292"/><codeline>    <highlight class="keywordflow">if</highlight>( FAILED(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o3">mpJoystick</ref>-&gt;SetDataFormat( &amp;c_dfDIJoystick2 ) ) )</codeline>
+<linenumber line="293"/><codeline>     {       </codeline>
+<linenumber line="294"/><codeline>             <highlight class="keywordflow">throw</highlight> RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="295"/><codeline>     }</codeline>
+<linenumber line="296"/><codeline></codeline>
+<linenumber line="297"/><codeline>    <highlight class="comment">// Set the cooperative level to let DInputImpl know how this device should</highlight></codeline>
+<linenumber line="298"/><codeline>    <highlight class="comment">// interact with the system and with other DInputImpl applications.</highlight></codeline>
+<linenumber line="299"/><codeline>    <highlight class="keywordflow">if</highlight>( FAILED(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o3">mpJoystick</ref>-&gt;SetCooperativeLevel( <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o8">mHWND</ref>, DISCL_EXCLUSIVE | </codeline>
+<linenumber line="300"/><codeline>                                                             DISCL_FOREGROUND ) ) )</codeline>
+<linenumber line="301"/><codeline>     {       </codeline>
+<linenumber line="302"/><codeline>             <highlight class="keywordflow">throw</highlight> RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);}</codeline>
+<linenumber line="303"/><codeline></codeline>
+<linenumber line="304"/><codeline>    <highlight class="comment">// Determine how many axis the joystick has (so we don&apos;t error out setting</highlight></codeline>
+<linenumber line="305"/><codeline>    <highlight class="comment">// properties for unavailable axis)</highlight></codeline>
+<linenumber line="306"/><codeline>    <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o5">mDIJoystickDevCaps</ref>.dwSize = <highlight class="keyword">sizeof</highlight>(DIDEVCAPS);</codeline>
+<linenumber line="307"/><codeline>    <highlight class="keywordflow">if</highlight> ( FAILED(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o3">mpJoystick</ref>-&gt;GetCapabilities(&amp;<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o5">mDIJoystickDevCaps</ref>) ) )</codeline>
+<linenumber line="308"/><codeline>     {       </codeline>
+<linenumber line="309"/><codeline>             <highlight class="keywordflow">throw</highlight> RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="310"/><codeline>     </codeline>
+<linenumber line="311"/><codeline>     }</codeline>
+<linenumber line="312"/><codeline></codeline>
+<linenumber line="313"/><codeline>     </codeline>
+<linenumber line="314"/><codeline>    <highlight class="comment">// Enumerate the axes of the joyctick and set the range of each axis. Note:</highlight></codeline>
+<linenumber line="315"/><codeline>    <highlight class="comment">// we could just use the defaults, but we&apos;re just trying to show an example</highlight></codeline>
+<linenumber line="316"/><codeline>    <highlight class="comment">// of enumerating device objects (axes, buttons, etc.).</highlight></codeline>
+<linenumber line="317"/><codeline>    <highlight class="keywordflow">if</highlight> ( FAILED(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o3">mpJoystick</ref>-&gt;EnumObjects( <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1d1">enumAxesCallback</ref>, </codeline>
+<linenumber line="318"/><codeline>                                                (VOID*)<highlight class="keyword">this</highlight>, DIDFT_AXIS ) ) )</codeline>
+<linenumber line="319"/><codeline>     {       </codeline>
+<linenumber line="320"/><codeline>             <highlight class="keywordflow">throw</highlight> RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="321"/><codeline>     </codeline>
+<linenumber line="322"/><codeline>     }</codeline>
+<linenumber line="323"/><codeline>}<highlight class="comment">// InitJoystick()</highlight></codeline>
+<linenumber line="324"/><codeline></codeline>
+<linenumber line="325"/><codeline><highlight class="comment">// \\81C\c\?\1\A\\81\92\A\\81P?IAsAe\3!?\e\D\A\\81P!!-------------------------------------------------</highlight></codeline>
+<linenumber line="326" refid="classsf_1_1system_1_1input_1_1InputImpl_1c4"/><codeline>BOOL InputImpl::enumAxesCallback( <highlight class="keyword">const</highlight> DIDEVICEOBJECTINSTANCE* pdidoi)</codeline>
+<linenumber line="327"/><codeline>{</codeline>
+<linenumber line="328"/><codeline></codeline>
+<linenumber line="329"/><codeline>    DIPROPRANGE diprg; </codeline>
+<linenumber line="330"/><codeline>    diprg.diph.dwSize       = <highlight class="keyword">sizeof</highlight>(DIPROPRANGE); </codeline>
+<linenumber line="331"/><codeline>    diprg.diph.dwHeaderSize = <highlight class="keyword">sizeof</highlight>(DIPROPHEADER); </codeline>
+<linenumber line="332"/><codeline>    diprg.diph.dwHow        = DIPH_BYID; </codeline>
+<linenumber line="333"/><codeline>    diprg.diph.dwObj        = pdidoi-&gt;dwType; <highlight class="comment">// Specify the enumerated axis</highlight></codeline>
+<linenumber line="334"/><codeline>    diprg.lMin              = -1000; </codeline>
+<linenumber line="335"/><codeline>    diprg.lMax              = +1000; </codeline>
+<linenumber line="336"/><codeline>    </codeline>
+<linenumber line="337"/><codeline>     <highlight class="comment">// Set the range for the axis</highlight></codeline>
+<linenumber line="338"/><codeline>     <highlight class="keywordflow">if</highlight>( FAILED( <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o3">mpJoystick</ref>-&gt;SetProperty( DIPROP_RANGE, &amp;diprg.diph ) ) )</codeline>
+<linenumber line="339"/><codeline>     {</codeline>
+<linenumber line="340"/><codeline>             <highlight class="keywordflow">return</highlight> DIENUM_STOP;</codeline>
+<linenumber line="341"/><codeline>     }</codeline>
+<linenumber line="342"/><codeline></codeline>
+<linenumber line="343"/><codeline>    <highlight class="keywordflow">return</highlight> DIENUM_CONTINUE;</codeline>
+<linenumber line="344"/><codeline>}<highlight class="comment">// enumAxesCallback </highlight></codeline>
+<linenumber line="345"/><codeline></codeline>
+<linenumber line="346"/><codeline><highlight class="comment">// \-!?\U!?\E\C\D\?\1?I?e\81Lu2? -------------------------------------------------</highlight></codeline>
+<linenumber line="347" refid="classsf_1_1system_1_1input_1_1InputImpl_1c2"/><codeline><highlight class="keywordtype">void</highlight> InputImpl::initKeyboard(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="348"/><codeline>{</codeline>
+<linenumber line="349"/><codeline>    HRESULT hr = E_FAIL;</codeline>
+<linenumber line="350"/><codeline></codeline>
+<linenumber line="351"/><codeline>     <highlight class="comment">// \-!?\U!?\E\C\D\?\1?IoiAR</highlight></codeline>
+<linenumber line="352"/><codeline>     <highlight class="keywordflow">if</highlight>( FAILED( hr = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o2">mpDI</ref>-&gt;CreateDevice( GUID_SysKeyboard, &amp;<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o4">mpKeyboard</ref>, NULL ) ) )</codeline>
+<linenumber line="353"/><codeline>     {       <highlight class="comment">//system::Factory::getInstance()-&gt;outputError(DXGetErrorString8(hr));</highlight></codeline>
+<linenumber line="354"/><codeline>             <highlight class="keywordflow">throw</highlight> RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="355"/><codeline>     }</codeline>
+<linenumber line="356"/><codeline>    </codeline>
+<linenumber line="357"/><codeline>     <highlight class="keywordflow">if</highlight>( FAILED( hr = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o4">mpKeyboard</ref>-&gt;SetDataFormat( &amp;c_dfDIKeyboard ) ) )</codeline>
+<linenumber line="358"/><codeline>     {</codeline>
+<linenumber line="359"/><codeline>             <highlight class="comment">//system::Factory::getInstance()-&gt;outputError(DXGetErrorString8(hr));</highlight></codeline>
+<linenumber line="360"/><codeline>             <highlight class="keywordflow">throw</highlight> RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="361"/><codeline>     }</codeline>
+<linenumber line="362"/><codeline>    </codeline>
+<linenumber line="363"/><codeline>    <highlight class="comment">// \81÷\81NA\81L\i\U\e?IAsAe </highlight></codeline>
+<linenumber line="364"/><codeline>    <highlight class="keywordflow">if</highlight>(FAILED(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o4">mpKeyboard</ref>-&gt;SetCooperativeLevel( <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o8">mHWND</ref>, DISCL_NONEXCLUSIVE | DISCL_FOREGROUND )))</codeline>
+<linenumber line="365"/><codeline>    {</codeline>
+<linenumber line="366"/><codeline>             <highlight class="keywordflow">throw</highlight> RecoverbleErrorException(DXGetErrorString8(hr),__FILE__,__LINE__);</codeline>
+<linenumber line="367"/><codeline>    }</codeline>
+<linenumber line="368"/><codeline></codeline>
+<linenumber line="369"/><codeline>    <highlight class="comment">// Acquire the newly created device</highlight></codeline>
+<linenumber line="370"/><codeline>    <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o4">mpKeyboard</ref>-&gt;Acquire();</codeline>
+<linenumber line="371"/><codeline>}<highlight class="comment">// initKeyboard</highlight></codeline>
+<linenumber line="372"/><codeline></codeline>
+<linenumber line="373"/><codeline><highlight class="comment">// \-!?\U!?\E!|\\81C\c\?\1\A\\81\92\A\\81P?I\81C?os?I?oAO?o?eAA -----------------------------</highlight></codeline>
+<linenumber line="374" refid="classsf_1_1system_1_1input_1_1InputImpl_1a3"/><codeline><highlight class="keywordtype">void</highlight> InputImpl::update(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="375"/><codeline>{</codeline>
+<linenumber line="376"/><codeline>     HRESULT hr = E_FAIL;</codeline>
+<linenumber line="377"/><codeline>     <highlight class="keywordtype">bool</highlight> b_joystick = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="378"/><codeline>     <highlight class="keywordtype">bool</highlight> b_keyboard = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="379"/><codeline>     </codeline>
+<linenumber line="380"/><codeline>     <highlight class="comment">// \\81C\c\?\1\A\\81\92\A\\81P?I\81C?os?oAO?o?eAA //</highlight></codeline>
+<linenumber line="381"/><codeline>     <highlight class="keywordflow">if</highlight>(mpJoystick){</codeline>
+<linenumber line="382"/><codeline>             <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o3">mpJoystick</ref>-&gt;Poll();</codeline>
+<linenumber line="383"/><codeline>             hr = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o3">mpJoystick</ref>-&gt;GetDeviceState(<highlight class="keyword">sizeof</highlight>(DIJOYSTATE2),(LPVOID)&amp;<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o6">mDIJoyState</ref>);</codeline>
+<linenumber line="384"/><codeline>             <highlight class="keywordflow">if</highlight>(FAILED(hr)){</codeline>
+<linenumber line="385"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o3">mpJoystick</ref>-&gt;Acquire();</codeline>
+<linenumber line="386"/><codeline>                     <highlight class="keywordflow">while</highlight>( hr == DIERR_INPUTLOST ) </codeline>
+<linenumber line="387"/><codeline>                             hr = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o3">mpJoystick</ref>-&gt;Acquire();</codeline>
+<linenumber line="388"/><codeline>             } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="389"/><codeline>                     b_joystick = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="390"/><codeline>             }</codeline>
+<linenumber line="391"/><codeline>             </codeline>
+<linenumber line="392"/><codeline></codeline>
+<linenumber line="393"/><codeline>     } </codeline>
+<linenumber line="394"/><codeline></codeline>
+<linenumber line="395"/><codeline>     <highlight class="comment">// \-!?\U!?\E?I\81C?os?oAO?o?eAA //</highlight></codeline>
+<linenumber line="396"/><codeline>     <highlight class="keywordflow">if</highlight>(mpKeyboard){</codeline>
+<linenumber line="397"/><codeline><highlight class="comment">//            ZeroMemory( &amp;mDIKeys, sizeof(mDIKeys) );</highlight></codeline>
+<linenumber line="398"/><codeline>             hr = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o4">mpKeyboard</ref>-&gt;GetDeviceState(<highlight class="keyword">sizeof</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o7">mDIKeys</ref>),(LPVOID)&amp;<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o7">mDIKeys</ref>);</codeline>
+<linenumber line="399"/><codeline>             <highlight class="keywordflow">if</highlight>(FAILED(hr)){</codeline>
+<linenumber line="400"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="401"/><codeline><highlight class="preprocessor"></highlight>                 OutputDebugString(DXGetErrorString8(hr));</codeline>
+<linenumber line="402"/><codeline><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="403"/><codeline><highlight class="preprocessor"></highlight>                 <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o4">mpKeyboard</ref>-&gt;Acquire();</codeline>
+<linenumber line="404"/><codeline>                     <highlight class="keywordflow">while</highlight>( hr == DIERR_INPUTLOST ) </codeline>
+<linenumber line="405"/><codeline>                             hr = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o4">mpKeyboard</ref>-&gt;Acquire();</codeline>
+<linenumber line="406"/><codeline>             } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="407"/><codeline>                     b_keyboard = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="408"/><codeline>             }</codeline>
+<linenumber line="409"/><codeline>     }</codeline>
+<linenumber line="410"/><codeline></codeline>
+<linenumber line="411"/><codeline>     <highlight class="comment">//</highlight></codeline>
+<linenumber line="412"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o25">mbBeforeLeft</ref> = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o15">mbLeft</ref>;</codeline>
+<linenumber line="413"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o26">mbBeforeRight</ref> = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o16">mbRight</ref>;</codeline>
+<linenumber line="414"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o23">mbBeforeUp</ref> = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o13">mbUp</ref>;</codeline>
+<linenumber line="415"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o24">mbBeforeDown</ref> = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o14">mbDown</ref>;</codeline>
+<linenumber line="416"/><codeline></codeline>
+<linenumber line="417"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o27">mbBeforeButtonA</ref> = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o17">mbButtonA</ref>;</codeline>
+<linenumber line="418"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o28">mbBeforeButtonB</ref> = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o18">mbButtonB</ref>;</codeline>
+<linenumber line="419"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o29">mbBeforeButtonC</ref> = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o19">mbButtonC</ref>;</codeline>
+<linenumber line="420"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o30">mbBeforeButtonD</ref> = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o20">mbButtonD</ref>;</codeline>
+<linenumber line="421"/><codeline></codeline>
+<linenumber line="422"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o31">mbBeforeStart</ref> = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o21">mbStart</ref>;</codeline>
+<linenumber line="423"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o32">mbBeforeExit</ref> = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o22">mbExit</ref>;</codeline>
+<linenumber line="424"/><codeline></codeline>
+<linenumber line="425"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o15">mbLeft</ref> = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o16">mbRight</ref> = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o13">mbUp</ref> = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o14">mbDown</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="426"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o17">mbButtonA</ref> = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o18">mbButtonB</ref> = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o19">mbButtonC</ref> = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o20">mbButtonD</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="427"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o21">mbStart</ref> = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o22">mbExit</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="428"/><codeline>     </codeline>
+<linenumber line="429"/><codeline></codeline>
+<linenumber line="430"/><codeline>     <highlight class="keywordflow">if</highlight>(b_joystick){</codeline>
+<linenumber line="431"/><codeline>             </codeline>
+<linenumber line="432"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o6">mDIJoyState</ref>.lX &gt; 300){</codeline>
+<linenumber line="433"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o16">mbRight</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="434"/><codeline>             } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="435"/><codeline>                     <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o6">mDIJoyState</ref>.lX &lt; -300)</codeline>
+<linenumber line="436"/><codeline>                     {</codeline>
+<linenumber line="437"/><codeline></codeline>
+<linenumber line="438"/><codeline>                             <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o15">mbLeft</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="439"/><codeline>                     }</codeline>
+<linenumber line="440"/><codeline>             }</codeline>
+<linenumber line="441"/><codeline>                     </codeline>
+<linenumber line="442"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o6">mDIJoyState</ref>.lY &gt; 300)</codeline>
+<linenumber line="443"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o14">mbDown</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="444"/><codeline>             <highlight class="keywordflow">else</highlight> </codeline>
+<linenumber line="445"/><codeline>                     <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o6">mDIJoyState</ref>.lY &lt; -300)</codeline>
+<linenumber line="446"/><codeline>                             <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o13">mbUp</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="447"/><codeline></codeline>
+<linenumber line="448"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o6">mDIJoyState</ref>.rgbButtons[0])</codeline>
+<linenumber line="449"/><codeline>             {</codeline>
+<linenumber line="450"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o17">mbButtonA</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="451"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o21">mbStart</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="452"/><codeline>             }</codeline>
+<linenumber line="453"/><codeline></codeline>
+<linenumber line="454"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o6">mDIJoyState</ref>.rgbButtons[1])</codeline>
+<linenumber line="455"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o18">mbButtonB</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="456"/><codeline>             </codeline>
+<linenumber line="457"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o6">mDIJoyState</ref>.rgbButtons[2])</codeline>
+<linenumber line="458"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o19">mbButtonC</ref> =  <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="459"/><codeline>             </codeline>
+<linenumber line="460"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o6">mDIJoyState</ref>.rgbButtons[3])</codeline>
+<linenumber line="461"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o20">mbButtonD</ref> =  <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="462"/><codeline>     }</codeline>
+<linenumber line="463"/><codeline></codeline>
+<linenumber line="464"/><codeline>     <highlight class="keywordflow">if</highlight>(b_keyboard){</codeline>
+<linenumber line="465"/><codeline>             </codeline>
+<linenumber line="466"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o7">mDIKeys</ref>[DIK_LEFT] &amp; 0x80)</codeline>
+<linenumber line="467"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o15">mbLeft</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="468"/><codeline></codeline>
+<linenumber line="469"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o7">mDIKeys</ref>[DIK_RIGHT] &amp; 0x80)</codeline>
+<linenumber line="470"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o16">mbRight</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="471"/><codeline></codeline>
+<linenumber line="472"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o7">mDIKeys</ref>[DIK_UP] &amp; 0x80)</codeline>
+<linenumber line="473"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o13">mbUp</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="474"/><codeline></codeline>
+<linenumber line="475"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o7">mDIKeys</ref>[DIK_DOWN] &amp; 0x80)</codeline>
+<linenumber line="476"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o14">mbDown</ref> =  <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="477"/><codeline></codeline>
+<linenumber line="478"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o7">mDIKeys</ref>[DIK_Z] &amp; 0x80)</codeline>
+<linenumber line="479"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o17">mbButtonA</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="480"/><codeline>             </codeline>
+<linenumber line="481"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o7">mDIKeys</ref>[DIK_X] &amp; 0x80)</codeline>
+<linenumber line="482"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o18">mbButtonB</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="483"/><codeline>             </codeline>
+<linenumber line="484"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o7">mDIKeys</ref>[DIK_C] &amp; 0x80)</codeline>
+<linenumber line="485"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o19">mbButtonC</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="486"/><codeline>             </codeline>
+<linenumber line="487"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o7">mDIKeys</ref>[DIK_V] &amp; 0x80)</codeline>
+<linenumber line="488"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o20">mbButtonD</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="489"/><codeline>             </codeline>
+<linenumber line="490"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o7">mDIKeys</ref>[DIK_SPACE] &amp; 0x80)</codeline>
+<linenumber line="491"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o21">mbStart</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="492"/><codeline></codeline>
+<linenumber line="493"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o7">mDIKeys</ref>[DIK_ESCAPE] &amp; 0x80)</codeline>
+<linenumber line="494"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o22">mbExit</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="495"/><codeline></codeline>
+<linenumber line="496"/><codeline>     }</codeline>
+<linenumber line="497"/><codeline></codeline>
+<linenumber line="498"/><codeline>     <highlight class="comment">// \?\U\o\E\e\1\E!?Q\81\91a\?\U\o\E\e\1\E!?\e\1\E?O //</highlight></codeline>
+<linenumber line="499"/><codeline>     MouseListenerList::iterator it = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o10">mMouseListenerQ</ref>.begin();</codeline>
+<linenumber line="500"/><codeline>     </codeline>
+<linenumber line="501"/><codeline>     <highlight class="keywordflow">while</highlight>(it != <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o10">mMouseListenerQ</ref>.end())</codeline>
+<linenumber line="502"/><codeline>     {</codeline>
+<linenumber line="503"/><codeline>             <highlight class="keywordflow">if</highlight>(*it != NULL){</codeline>
+<linenumber line="504"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o9">mMouseListenerList</ref>.push_back(*it);</codeline>
+<linenumber line="505"/><codeline>             }</codeline>
+<linenumber line="506"/><codeline>             it = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o10">mMouseListenerQ</ref>.erase(it);</codeline>
+<linenumber line="507"/><codeline></codeline>
+<linenumber line="508"/><codeline>     }</codeline>
+<linenumber line="509"/><codeline></codeline>
+<linenumber line="510"/><codeline>     KeyboardListenerList::iterator itk = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o12">mKeyboardListenerQ</ref>.begin();</codeline>
+<linenumber line="511"/><codeline></codeline>
+<linenumber line="512"/><codeline>     <highlight class="keywordflow">while</highlight>(itk != <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o12">mKeyboardListenerQ</ref>.end())</codeline>
+<linenumber line="513"/><codeline>     {</codeline>
+<linenumber line="514"/><codeline>             <highlight class="keywordflow">if</highlight>(*itk != NULL){</codeline>
+<linenumber line="515"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o11">mKeyboardListenerList</ref>.push_back(*itk);</codeline>
+<linenumber line="516"/><codeline>             }</codeline>
+<linenumber line="517"/><codeline>             itk = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o12">mKeyboardListenerQ</ref>.erase(itk);</codeline>
+<linenumber line="518"/><codeline>     }</codeline>
+<linenumber line="519"/><codeline>}<highlight class="comment">// update() </highlight></codeline>
+<linenumber line="520"/><codeline></codeline>
+<linenumber line="521" refid="classsf_1_1system_1_1input_1_1InputImpl_1a12"/><codeline>LRESULT         InputImpl::onSetCursor(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam)</codeline>
+<linenumber line="522"/><codeline>{</codeline>
+<linenumber line="523"/><codeline>     <highlight class="keywordflow">if</highlight>(system::instance()-&gt;isActive() &amp;&amp; !<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a33">mouseCursorVisibility</ref>())</codeline>
+<linenumber line="524"/><codeline>     {</codeline>
+<linenumber line="525"/><codeline>             SetCursor(NULL);<highlight class="comment">//\T\|\1\\81á!?\?\e?o?A?1!\81\92</highlight></codeline>
+<linenumber line="526"/><codeline>             <highlight class="keywordflow">return</highlight> 0;</codeline>
+<linenumber line="527"/><codeline>     }</codeline>
+<linenumber line="528"/><codeline>     <highlight class="keywordflow">return</highlight> DefWindowProc (hwnd, WM_SETCURSOR,wParam, lParam);</codeline>
+<linenumber line="529"/><codeline>}<highlight class="comment">// onSetCursor()</highlight></codeline>
+<linenumber line="530"/><codeline></codeline>
+<linenumber line="531"/><codeline><highlight class="comment">// \T\|\1?Io\81C\U\?\o?\81Ê2!?\83Ê?i?? !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="532" refid="classsf_1_1system_1_1input_1_1InputImpl_1a4"/><codeline>LRESULT          InputImpl::onLButtonDown(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam)</codeline>
+<linenumber line="533"/><codeline>{</codeline>
+<linenumber line="534"/><codeline>     <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a13">callMouseListenerMethod</ref>(hwnd,wParam,lParam,input::mouse::Listener::leftButtonDown);</codeline>
+<linenumber line="535"/><codeline>}<highlight class="comment">// onLButtonDown()</highlight></codeline>
+<linenumber line="536"/><codeline></codeline>
+<linenumber line="537"/><codeline><highlight class="comment">// \T\|\1?Io\81C\U\?\o?\81ÊI\?\83Ê?i?? !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="538" refid="classsf_1_1system_1_1input_1_1InputImpl_1a6"/><codeline>LRESULT          InputImpl::onLButtonUp(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam)</codeline>
+<linenumber line="539"/><codeline>{</codeline>
+<linenumber line="540"/><codeline>     <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a13">callMouseListenerMethod</ref>(hwnd,wParam,lParam,input::mouse::Listener::leftButtonUp);</codeline>
+<linenumber line="541"/><codeline>}<highlight class="comment">// onLButtonUp()</highlight></codeline>
+<linenumber line="542"/><codeline></codeline>
+<linenumber line="543"/><codeline><highlight class="comment">// \T\|\1?Io\81C\U\?\o?\81Ê\A\O\e\\81P\e\A\\81P?\83Ê?i??!!!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="544" refid="classsf_1_1system_1_1input_1_1InputImpl_1a5"/><codeline>LRESULT          InputImpl::onLButtonDoubleClick(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam)</codeline>
+<linenumber line="545"/><codeline>{</codeline>
+<linenumber line="546"/><codeline>     <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a13">callMouseListenerMethod</ref>(hwnd,wParam,lParam,input::mouse::Listener::leftButtonDoubleClick);</codeline>
+<linenumber line="547"/><codeline>}<highlight class="comment">// onLButtonDoubleClick()</highlight></codeline>
+<linenumber line="548"/><codeline></codeline>
+<linenumber line="549"/><codeline><highlight class="comment">// \T\|\1?I\81}|\U\?\o?\81ÊI\?\83Ê?i?? !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="550" refid="classsf_1_1system_1_1input_1_1InputImpl_1a8"/><codeline>LRESULT          InputImpl::onRButtonDown(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam)</codeline>
+<linenumber line="551"/><codeline>{</codeline>
+<linenumber line="552"/><codeline>     <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a13">callMouseListenerMethod</ref>(hwnd,wParam,lParam,input::mouse::Listener::rightButtonDown);</codeline>
+<linenumber line="553"/><codeline>}<highlight class="comment">// onRButtonDown()</highlight></codeline>
+<linenumber line="554"/><codeline></codeline>
+<linenumber line="555"/><codeline><highlight class="comment">// \T\|\1?I\81}|\U\?\o?\81Ê2!?\83Ê?i?? !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="556" refid="classsf_1_1system_1_1input_1_1InputImpl_1a9"/><codeline>LRESULT          InputImpl::onRButtonUp(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam)</codeline>
+<linenumber line="557"/><codeline>{</codeline>
+<linenumber line="558"/><codeline>     <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a13">callMouseListenerMethod</ref>(hwnd,wParam,lParam,input::mouse::Listener::rightButtonUp);</codeline>
+<linenumber line="559"/><codeline>}<highlight class="comment">// onRButtonUp()</highlight></codeline>
+<linenumber line="560"/><codeline></codeline>
+<linenumber line="561"/><codeline><highlight class="comment">// \T\|\1?I\81}|\U\?\o?\81Ê\A\O\e\\81P\e\A\\81P?\83Ê?i??!!!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="562" refid="classsf_1_1system_1_1input_1_1InputImpl_1a7"/><codeline>LRESULT          InputImpl::onRButtonDoubleClick(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam)</codeline>
+<linenumber line="563"/><codeline>{</codeline>
+<linenumber line="564"/><codeline>     <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a13">callMouseListenerMethod</ref>(hwnd,wParam,lParam,input::mouse::Listener::rightButtonDoubleClick);</codeline>
+<linenumber line="565"/><codeline>}<highlight class="comment">// onRButtonDoubleClick()</highlight></codeline>
+<linenumber line="566"/><codeline></codeline>
+<linenumber line="567"/><codeline><highlight class="comment">// \T\|\1?\81ÊA\81\8b????!!!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="568" refid="classsf_1_1system_1_1input_1_1InputImpl_1a10"/><codeline>LRESULT         InputImpl::onMouseMove(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam)</codeline>
+<linenumber line="569"/><codeline>{</codeline>
+<linenumber line="570"/><codeline>     <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a13">callMouseListenerMethod</ref>(hwnd,wParam,lParam,input::mouse::Listener::mouseMove);</codeline>
+<linenumber line="571"/><codeline>}<highlight class="comment">// onMouseMove()</highlight></codeline>
+<linenumber line="572"/><codeline></codeline>
+<linenumber line="573"/><codeline><highlight class="comment">// \U\?!?\e?\81ÊA\81\8b????!!!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="574" refid="classsf_1_1system_1_1input_1_1InputImpl_1a11"/><codeline>LRESULT         InputImpl::onMouseWheel(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam)</codeline>
+<linenumber line="575"/><codeline>{</codeline>
+<linenumber line="576"/><codeline>     <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a13">callMouseListenerMethod</ref>(hwnd,wParam,lParam,input::mouse::Listener::mouseWheel);</codeline>
+<linenumber line="577"/><codeline>}<highlight class="comment">// onMouseWheel()</highlight></codeline>
+<linenumber line="578"/><codeline></codeline>
+<linenumber line="579"/><codeline><highlight class="comment">// MouseListener?I\a\?\A\E?o\81CA?O?D?1 !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="580"/><codeline>LRESULT InputImpl::callMouseListenerMethod(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam,<highlight class="keywordtype">void</highlight>(mouse::Listener::* pMethod)(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight>,<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight>,<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref>))</codeline>
+<linenumber line="581"/><codeline>{</codeline>
+<linenumber line="582"/><codeline>     <highlight class="keyword">using</highlight> <highlight class="keyword">namespace </highlight>sf::system::input;</codeline>
+<linenumber line="583"/><codeline></codeline>
+<linenumber line="584"/><codeline>     if(<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o9">mMouseListenerList</ref>.size() == 0)</codeline>
+<linenumber line="585"/><codeline>             return 0;</codeline>
+<linenumber line="586"/><codeline></codeline>
+<linenumber line="587"/><codeline>     POINT pt;</codeline>
+<linenumber line="588"/><codeline>     </codeline>
+<linenumber line="589"/><codeline>     pt.x = LOWORD(lParam);</codeline>
+<linenumber line="590"/><codeline>     pt.y = HIWORD(lParam);</codeline>
+<linenumber line="591"/><codeline>     </codeline>
+<linenumber line="592"/><codeline>     ClientToScreen(hwnd,&amp;pt);</codeline>
+<linenumber line="593"/><codeline></codeline>
+<linenumber line="594"/><codeline>     <ref idref="namespacesf_1a0">DWORD</ref> mkey = 0;</codeline>
+<linenumber line="595"/><codeline></codeline>
+<linenumber line="596"/><codeline>     if(MK_CONTROL &amp; wParam)</codeline>
+<linenumber line="597"/><codeline>             mkey |= mouse::<ref idref="namespacesf_1_1system_1_1input_1_1mouse_1a5a0">MKEY_CONTROL</ref>;</codeline>
+<linenumber line="598"/><codeline>     </codeline>
+<linenumber line="599"/><codeline>     if(MK_SHIFT &amp; wParam)</codeline>
+<linenumber line="600"/><codeline>             mkey |= mouse::<ref idref="namespacesf_1_1system_1_1input_1_1mouse_1a5a3">MKEY_SHIFT</ref>;</codeline>
+<linenumber line="601"/><codeline></codeline>
+<linenumber line="602"/><codeline>     mkey |= (wParam &amp; 0xffff0000);</codeline>
+<linenumber line="603"/><codeline></codeline>
+<linenumber line="604"/><codeline>     </codeline>
+<linenumber line="605"/><codeline>     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1s0">MouseListenerList</ref>::iterator it = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o9">mMouseListenerList</ref>.begin();</codeline>
+<linenumber line="606"/><codeline>     </codeline>
+<linenumber line="607"/><codeline>     while(it != <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o9">mMouseListenerList</ref>.end())</codeline>
+<linenumber line="608"/><codeline>     {</codeline>
+<linenumber line="609"/><codeline>             <highlight class="keywordflow">if</highlight>(*it == NULL){</codeline>
+<linenumber line="610"/><codeline>                     it = mMouseListenerList.erase(it);</codeline>
+<linenumber line="611"/><codeline>             } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="612"/><codeline>                     <highlight class="keywordflow">if</highlight>((*it)-&gt;isListeningMouse()){</codeline>
+<linenumber line="613"/><codeline>                             ((*it)-&gt;*pMethod)(pt.x,pt.y,mkey);</codeline>
+<linenumber line="614"/><codeline>                     }</codeline>
+<linenumber line="615"/><codeline>                     ++it;</codeline>
+<linenumber line="616"/><codeline>             }</codeline>
+<linenumber line="617"/><codeline>     }</codeline>
+<linenumber line="618"/><codeline></codeline>
+<linenumber line="619"/><codeline>     <highlight class="keywordflow">return</highlight> 0;</codeline>
+<linenumber line="620"/><codeline>}<highlight class="comment">// callListener</highlight></codeline>
+<linenumber line="621"/><codeline></codeline>
+<linenumber line="622"/><codeline><highlight class="comment">// \-!?2!2?\81ât?I?eIy -----------------------------------------------------------</highlight></codeline>
+<linenumber line="623" refid="classsf_1_1system_1_1input_1_1InputImpl_1a14"/><codeline>LRESULT InputImpl::onKeyDown(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam)</codeline>
+<linenumber line="624"/><codeline>{</codeline>
+<linenumber line="625"/><codeline>     <ref idref="namespacesf_1a0">DWORD</ref> extKey = 0;</codeline>
+<linenumber line="626"/><codeline></codeline>
+<linenumber line="627"/><codeline>     <highlight class="comment">// ?E?e?\81\91?\81N?o!\81\91ESC\-!??\81Ê2!?\83Ê?i???e?aI\81â?1?e?e?|?E?\81E?A???e</highlight></codeline>
+<linenumber line="628"/><codeline>     <highlight class="keywordflow">switch</highlight>(wParam)</codeline>
+<linenumber line="629"/><codeline>     {</codeline>
+<linenumber line="630"/><codeline>     <highlight class="keywordflow">case</highlight> <highlight class="charliteral">&apos;Q&apos;</highlight>:</codeline>
+<linenumber line="631"/><codeline>             PostMessage( hwnd, WM_CLOSE, 0, 0L );</codeline>
+<linenumber line="632"/><codeline>             <highlight class="keywordflow">break</highlight>;</codeline>
+<linenumber line="633"/><codeline>     <highlight class="keywordflow">default</highlight>:</codeline>
+<linenumber line="634"/><codeline></codeline>
+<linenumber line="635"/><codeline>             <highlight class="keywordflow">if</highlight>(GetAsyncKeyState(VK_SHIFT))</codeline>
+<linenumber line="636"/><codeline>                     extKey |= keyboard::SHIFT;</codeline>
+<linenumber line="637"/><codeline></codeline>
+<linenumber line="638"/><codeline>             <highlight class="keywordflow">if</highlight>(GetAsyncKeyState(VK_CONTROL))</codeline>
+<linenumber line="639"/><codeline>                     extKey |= keyboard::CONTROL;</codeline>
+<linenumber line="640"/><codeline></codeline>
+<linenumber line="641"/><codeline>             </codeline>
+<linenumber line="642"/><codeline>             KeyboardListenerList::iterator it = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o11">mKeyboardListenerList</ref>.begin();</codeline>
+<linenumber line="643"/><codeline>     </codeline>
+<linenumber line="644"/><codeline>             <highlight class="keywordflow">while</highlight>(it != <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o11">mKeyboardListenerList</ref>.end())</codeline>
+<linenumber line="645"/><codeline>             {</codeline>
+<linenumber line="646"/><codeline>                     <highlight class="keywordflow">if</highlight>(*it == NULL){</codeline>
+<linenumber line="647"/><codeline>                             it = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o11">mKeyboardListenerList</ref>.erase(it);</codeline>
+<linenumber line="648"/><codeline>                     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="649"/><codeline>                             <highlight class="keywordflow">if</highlight>((*it)-&gt;isListeningKeyboard()){</codeline>
+<linenumber line="650"/><codeline>                                             (*it)-&gt;keyDown(wParam,extKey);</codeline>
+<linenumber line="651"/><codeline>                             }</codeline>
+<linenumber line="652"/><codeline>                             ++it;</codeline>
+<linenumber line="653"/><codeline>                     }</codeline>
+<linenumber line="654"/><codeline>             }</codeline>
+<linenumber line="655"/><codeline></codeline>
+<linenumber line="656"/><codeline>     }</codeline>
+<linenumber line="657"/><codeline>     <highlight class="keywordflow">return</highlight> 0; <highlight class="comment">// WM_KEYDOWN</highlight></codeline>
+<linenumber line="658"/><codeline>}<highlight class="comment">// onKeyDown</highlight></codeline>
+<linenumber line="659"/><codeline></codeline>
+<linenumber line="660"/><codeline><highlight class="comment">// \-!??\81ÊI\?\83Ê?i??\81ât?I?eIy -----------------------------------------------------------</highlight></codeline>
+<linenumber line="661" refid="classsf_1_1system_1_1input_1_1InputImpl_1a15"/><codeline>LRESULT InputImpl::onKeyUp(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam)</codeline>
+<linenumber line="662"/><codeline>{</codeline>
+<linenumber line="663"/><codeline>     <highlight class="keywordflow">return</highlight> 0;</codeline>
+<linenumber line="664"/><codeline>}<highlight class="comment">// onKeyUp</highlight></codeline>
+<linenumber line="665"/><codeline></codeline>
+<linenumber line="666"/><codeline><highlight class="comment">// \|\\81\92\o\E\|\a\A\\81â!?\\81C\I\o\E\e?oSystemImpl?EADI? !Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="667" refid="classsf_1_1system_1_1input_1_1InputImpl_1a16"/><codeline><highlight class="keywordtype">void</highlight> InputImpl::addWindowMessageMap()</codeline>
+<linenumber line="668"/><codeline>{</codeline>
+<linenumber line="669"/><codeline>     SystemImpl *pSys = dynamic_cast&lt;SystemImpl *&gt;(system::instance());</codeline>
+<linenumber line="670"/><codeline></codeline>
+<linenumber line="671"/><codeline>     pSys-&gt;addWindowMessage(WM_SETCURSOR, <highlight class="keyword">new</highlight> WindowMessageImpl&lt;InputImpl&gt;(<highlight class="keyword">this</highlight>,&amp;InputImpl::onSetCursor));</codeline>
+<linenumber line="672"/><codeline>     pSys-&gt;addWindowMessage(WM_LBUTTONDOWN,<highlight class="keyword">new</highlight> WindowMessageImpl&lt;InputImpl&gt;(<highlight class="keyword">this</highlight>,&amp;InputImpl::onLButtonDown));</codeline>
+<linenumber line="673"/><codeline>     pSys-&gt;addWindowMessage(WM_LBUTTONUP,<highlight class="keyword">new</highlight> WindowMessageImpl&lt;InputImpl&gt;(<highlight class="keyword">this</highlight>,&amp;InputImpl::onLButtonUp));</codeline>
+<linenumber line="674"/><codeline>     pSys-&gt;addWindowMessage(WM_LBUTTONDBLCLK,<highlight class="keyword">new</highlight> WindowMessageImpl&lt;InputImpl&gt;(<highlight class="keyword">this</highlight>,&amp;InputImpl::onLButtonDoubleClick));</codeline>
+<linenumber line="675"/><codeline></codeline>
+<linenumber line="676"/><codeline>     pSys-&gt;addWindowMessage(WM_RBUTTONDOWN,<highlight class="keyword">new</highlight> WindowMessageImpl&lt;InputImpl&gt;(<highlight class="keyword">this</highlight>,&amp;InputImpl::onRButtonDown));</codeline>
+<linenumber line="677"/><codeline>     pSys-&gt;addWindowMessage(WM_RBUTTONUP,<highlight class="keyword">new</highlight> WindowMessageImpl&lt;InputImpl&gt;(<highlight class="keyword">this</highlight>,&amp;InputImpl::onRButtonUp));</codeline>
+<linenumber line="678"/><codeline>     pSys-&gt;addWindowMessage(WM_RBUTTONDBLCLK,<highlight class="keyword">new</highlight> WindowMessageImpl&lt;InputImpl&gt;(<highlight class="keyword">this</highlight>,&amp;InputImpl::onRButtonDoubleClick));</codeline>
+<linenumber line="679"/><codeline></codeline>
+<linenumber line="680"/><codeline>     pSys-&gt;addWindowMessage(WM_MOUSEMOVE,<highlight class="keyword">new</highlight> WindowMessageImpl&lt;InputImpl&gt;(<highlight class="keyword">this</highlight>,&amp;InputImpl::onMouseMove));</codeline>
+<linenumber line="681"/><codeline>     pSys-&gt;addWindowMessage(WM_MOUSEWHEEL,<highlight class="keyword">new</highlight> WindowMessageImpl&lt;InputImpl&gt;(<highlight class="keyword">this</highlight>,&amp;InputImpl::onMouseWheel));</codeline>
+<linenumber line="682"/><codeline></codeline>
+<linenumber line="683"/><codeline>     pSys-&gt;addWindowMessage(WM_KEYDOWN,<highlight class="keyword">new</highlight> WindowMessageImpl&lt;InputImpl&gt;(<highlight class="keyword">this</highlight>,&amp;InputImpl::onKeyDown));</codeline>
+<linenumber line="684"/><codeline>     pSys-&gt;addWindowMessage(WM_KEYUP,<highlight class="keyword">new</highlight> WindowMessageImpl&lt;InputImpl&gt;(<highlight class="keyword">this</highlight>,&amp;InputImpl::onKeyUp));</codeline>
+<linenumber line="685"/><codeline></codeline>
+<linenumber line="686"/><codeline>}</codeline>
+<linenumber line="687"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/InputImpl.cpp"/>
+  </compounddef>
+  <compounddef id="InputImpl_8h" kind="file">
+    <compoundname>InputImpl.h</compoundname>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includes id="Input_8h" local="yes">Input.h</includes>
+    <includedby id="InputImpl_8cpp" local="yes">InputImpl.cpp</includedby>
+    <includedby id="sfglib_8cpp" local="yes">sfglib.cpp</includedby>
+    <includedby id="System_8cpp" local="yes">System.cpp</includedby>
+    <includedby id="SystemImpl_8cpp" local="yes">SystemImpl.cpp</includedby>
+    <incdepgraph>
+      <node id="341">
+        <label>Input.h</label>
+        <link id="Input_8h"/>
+        <childnode id="340" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="340">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="339">
+        <label>InputImpl.h</label>
+        <link id="InputImpl.h"/>
+        <childnode id="340" relation="public-inheritance">
+        </childnode>
+        <childnode id="341" relation="public-inheritance">
+        </childnode>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="344">
+        <label>sfglib.cpp</label>
+        <link id="sfglib_8cpp-source"/>
+      </node>
+      <node id="346">
+        <label>SystemImpl.cpp</label>
+        <link id="SystemImpl_8cpp-source"/>
+      </node>
+      <node id="343">
+        <label>InputImpl.cpp</label>
+        <link id="InputImpl_8cpp-source"/>
+      </node>
+      <node id="342">
+        <label>InputImpl.h</label>
+        <link id="InputImpl.h"/>
+        <childnode id="343" relation="public-inheritance">
+        </childnode>
+        <childnode id="344" relation="public-inheritance">
+        </childnode>
+        <childnode id="345" relation="public-inheritance">
+        </childnode>
+        <childnode id="346" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="345">
+        <label>System.cpp</label>
+        <link id="System_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1input">sf::system::input</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="InputImpl_8h_1a0" virt="normal" prot="public">
+        <name>AFX_INPUTInputImpl_H__CAF65806_66F9_4CFF_89EC_66E36A0FB746__INCLUDED_</name>
+        <briefdescription>
+<para>
+Ao?A\?\o\\81P\e!?\EEE\81âs\T\\81P\i. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/InputImpl.h" line="13" bodystart="13" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+AtII!E\-!?\U!?\E!|\T\|\1!|\\81C\c\?\1\A\\81\92\A\\81P!E?I?AAo?E?\81á?\81á?i?e\\81P\e\1!\81\91Ae?oAe\83ÊA?E?E?o1O?|. </para>
+    </briefdescription>
+    <detaileddescription>
+<simplesect kind="author"><title>oi?O: </title><para>
+S.F. </para>
+</simplesect><simplesect kind="version"><title>\D!?\\81C\c\o: </title><para>
+$Id:</para>
+</simplesect><para>
+Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved. </para>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline></codeline>
+<linenumber line="11"/><codeline></codeline>
+<linenumber line="12"/><codeline><highlight class="preprocessor">#if !defined(AFX_INPUTInputImpl_H__CAF65806_66F9_4CFF_89EC_66E36A0FB746__INCLUDED_)</highlight></codeline>
+<linenumber line="13" refid="InputImpl_8h_1a0"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_INPUTInputImpl_H__CAF65806_66F9_4CFF_89EC_66E36A0FB746__INCLUDED_</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="Input_8h">Input.h</ref>&quot;</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="21"/><codeline><highlight class="keyword">namespace </highlight>sf {</codeline>
+<linenumber line="22"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="23"/><codeline>              <highlight class="keyword">namespace </highlight>input {</codeline>
+<linenumber line="24"/><codeline></codeline>
+<linenumber line="28" refid="classsf_1_1system_1_1input_1_1InputImpl_1"/><codeline><highlight class="keyword">class </highlight>InputImpl : <highlight class="keyword">public</highlight> Input  </codeline>
+<linenumber line="29"/><codeline>{</codeline>
+<linenumber line="30"/><codeline>      <highlight class="comment">// LIFECYCLE //</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="33" refid="classsf_1_1system_1_1input_1_1InputImpl_1s0"/><codeline>  <highlight class="keyword">typedef</highlight> std::vector&lt;input::mouse::Listener* &gt; <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1s0">MouseListenerList</ref>;    </codeline>
+<linenumber line="35" refid="classsf_1_1system_1_1input_1_1InputImpl_1s1"/><codeline>  <highlight class="keyword">typedef</highlight> std::vector&lt;input::keyboard::Listener*  &gt; <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1s1">KeyboardListenerList</ref>;     </codeline>
+<linenumber line="37"/><codeline>      <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a0">InputImpl</ref>();</codeline>
+<linenumber line="38"/><codeline></codeline>
+<linenumber line="41"/><codeline>      <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a0">InputImpl</ref>(HWND hwnd);</codeline>
+<linenumber line="42"/><codeline>      </codeline>
+<linenumber line="44"/><codeline>      <highlight class="keyword">virtual</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a2">~InputImpl</ref>();</codeline>
+<linenumber line="45"/><codeline>      <highlight class="comment">// OPERATORS //</highlight></codeline>
+<linenumber line="46"/><codeline>      <highlight class="comment">// OPERATIONS //</highlight></codeline>
+<linenumber line="47"/><codeline>      <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a3">update</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="48"/><codeline>      </codeline>
+<linenumber line="50"/><codeline>      <highlight class="keyword">static</highlight>   BOOL CALLBACK </codeline>
+<linenumber line="51" refid="classsf_1_1system_1_1input_1_1InputImpl_1d0"/><codeline>          <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1d0">enumJoysticksCallback</ref>( <highlight class="keyword">const</highlight> DIDEVICEINSTANCE* pdidInstance, VOID* pContext )</codeline>
+<linenumber line="52"/><codeline>      {</codeline>
+<linenumber line="53"/><codeline>              <highlight class="keywordflow">return</highlight> ((<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a0">InputImpl</ref> *)pContext)-&gt;enumJoysticksCallback(pdidInstance);</codeline>
+<linenumber line="54"/><codeline>      };</codeline>
+<linenumber line="55"/><codeline>      </codeline>
+<linenumber line="57" refid="classsf_1_1system_1_1input_1_1InputImpl_1d1"/><codeline>  <highlight class="keyword">static</highlight> BOOL CALLBACK <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1d1">enumAxesCallback</ref>( <highlight class="keyword">const</highlight> DIDEVICEOBJECTINSTANCE* pdidoi,</codeline>
+<linenumber line="58"/><codeline>                                VOID* pContext )</codeline>
+<linenumber line="59"/><codeline>      { <highlight class="keywordflow">return</highlight> ((<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a0">InputImpl</ref> *)pContext)-&gt;enumAxesCallback(pdidoi);};</codeline>
+<linenumber line="60"/><codeline>      </codeline>
+<linenumber line="66"/><codeline>      LRESULT         <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a4">onLButtonDown</ref>(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam);</codeline>
+<linenumber line="67"/><codeline>      </codeline>
+<linenumber line="73"/><codeline>      LRESULT     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a5">onLButtonDoubleClick</ref>(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam);</codeline>
+<linenumber line="74"/><codeline>      </codeline>
+<linenumber line="80"/><codeline>      LRESULT         <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a6">onLButtonUp</ref>(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam);</codeline>
+<linenumber line="81"/><codeline></codeline>
+<linenumber line="87"/><codeline>      LRESULT     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a7">onRButtonDoubleClick</ref>(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam);</codeline>
+<linenumber line="88"/><codeline>      </codeline>
+<linenumber line="94"/><codeline>      LRESULT         <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a8">onRButtonDown</ref>(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam);</codeline>
+<linenumber line="95"/><codeline>      </codeline>
+<linenumber line="101"/><codeline>     LRESULT         <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a9">onRButtonUp</ref>(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam);</codeline>
+<linenumber line="102"/><codeline>     </codeline>
+<linenumber line="108"/><codeline>     LRESULT         <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a10">onMouseMove</ref>(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam);</codeline>
+<linenumber line="109"/><codeline></codeline>
+<linenumber line="115"/><codeline>     LRESULT         <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a11">onMouseWheel</ref>(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam);</codeline>
+<linenumber line="116"/><codeline></codeline>
+<linenumber line="124"/><codeline>     LRESULT         <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a12">onSetCursor</ref>(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam);</codeline>
+<linenumber line="125"/><codeline></codeline>
+<linenumber line="132"/><codeline>     LRESULT         <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a13">callMouseListenerMethod</ref>(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam,<highlight class="keywordtype">void</highlight>(input::mouse::Listener::*pMethod)(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight>,<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight>,<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref>));</codeline>
+<linenumber line="133"/><codeline>     </codeline>
+<linenumber line="134"/><codeline>     <highlight class="comment">// \-!?\U!?\E\a\A\\81â!?\\81C\I\o\E\e</highlight></codeline>
+<linenumber line="140"/><codeline><highlight class="comment"></highlight>      LRESULT         <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a14">onKeyDown</ref>(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam);</codeline>
+<linenumber line="141"/><codeline>     </codeline>
+<linenumber line="147"/><codeline>     LRESULT         <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a15">onKeyUp</ref>(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam);</codeline>
+<linenumber line="148"/><codeline></codeline>
+<linenumber line="151"/><codeline>     <highlight class="keywordtype">void</highlight>         <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a16">addWindowMessageMap</ref>();</codeline>
+<linenumber line="152"/><codeline></codeline>
+<linenumber line="156" refid="classsf_1_1system_1_1input_1_1InputImpl_1a17"/><codeline>        <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a17">addMouseListener</ref>(input::mouse::Listener * <highlight class="keyword">const</highlight> pListener){</codeline>
+<linenumber line="157"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o10">mMouseListenerQ</ref>.push_back(pListener);                           </codeline>
+<linenumber line="158"/><codeline>     };</codeline>
+<linenumber line="159"/><codeline>     </codeline>
+<linenumber line="160"/><codeline></codeline>
+<linenumber line="163" refid="classsf_1_1system_1_1input_1_1InputImpl_1a18"/><codeline>        <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a18">removeMouseListener</ref>(input::mouse::Listener * <highlight class="keyword">const</highlight> pListener){</codeline>
+<linenumber line="164"/><codeline>             MouseListenerList::iterator it;</codeline>
+<linenumber line="165"/><codeline>             <highlight class="keywordflow">for</highlight>(it = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o9">mMouseListenerList</ref>.begin();</codeline>
+<linenumber line="166"/><codeline>                     it != <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o9">mMouseListenerList</ref>.end();it++){</codeline>
+<linenumber line="167"/><codeline>                     <highlight class="keywordflow">if</highlight>(pListener == *it){</codeline>
+<linenumber line="168"/><codeline><highlight class="comment">//                                mMouseListenerList.erase(it);</highlight></codeline>
+<linenumber line="169"/><codeline>                             *it = NULL;</codeline>
+<linenumber line="170"/><codeline>                             <highlight class="keywordflow">break</highlight>;</codeline>
+<linenumber line="171"/><codeline>                     }</codeline>
+<linenumber line="172"/><codeline>             }</codeline>
+<linenumber line="173"/><codeline></codeline>
+<linenumber line="174"/><codeline>             <highlight class="keywordflow">for</highlight>(it = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o10">mMouseListenerQ</ref>.begin();</codeline>
+<linenumber line="175"/><codeline>                     it != <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o10">mMouseListenerQ</ref>.end();it++){</codeline>
+<linenumber line="176"/><codeline>                     <highlight class="keywordflow">if</highlight>(pListener == *it){</codeline>
+<linenumber line="177"/><codeline>                             *it = NULL;</codeline>
+<linenumber line="178"/><codeline>                             <highlight class="keywordflow">return</highlight>;</codeline>
+<linenumber line="179"/><codeline>                     }</codeline>
+<linenumber line="180"/><codeline>             }</codeline>
+<linenumber line="181"/><codeline>     };</codeline>
+<linenumber line="182"/><codeline></codeline>
+<linenumber line="185" refid="classsf_1_1system_1_1input_1_1InputImpl_1a19"/><codeline>        <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a19">addKeyboardListener</ref>(input::keyboard::Listener * <highlight class="keyword">const</highlight> pListener){</codeline>
+<linenumber line="186"/><codeline>                     <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o12">mKeyboardListenerQ</ref>.push_back(pListener);                                </codeline>
+<linenumber line="187"/><codeline>     };</codeline>
+<linenumber line="188"/><codeline>     </codeline>
+<linenumber line="189"/><codeline></codeline>
+<linenumber line="192" refid="classsf_1_1system_1_1input_1_1InputImpl_1a20"/><codeline>        <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a20">removeKeyboardListener</ref>(input::keyboard::Listener * <highlight class="keyword">const</highlight> pListener){</codeline>
+<linenumber line="193"/><codeline>             KeyboardListenerList::iterator it;</codeline>
+<linenumber line="194"/><codeline>             <highlight class="keywordflow">for</highlight>(it = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o11">mKeyboardListenerList</ref>.begin();</codeline>
+<linenumber line="195"/><codeline>                     it != <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o11">mKeyboardListenerList</ref>.end();it++){</codeline>
+<linenumber line="196"/><codeline>                     <highlight class="keywordflow">if</highlight>(pListener == *it){</codeline>
+<linenumber line="197"/><codeline><highlight class="comment">//                                mKeyboardListenerList.erase(it);</highlight></codeline>
+<linenumber line="198"/><codeline>                             *it = NULL;</codeline>
+<linenumber line="199"/><codeline>                             <highlight class="keywordflow">break</highlight>;</codeline>
+<linenumber line="200"/><codeline>                     }</codeline>
+<linenumber line="201"/><codeline>             }</codeline>
+<linenumber line="202"/><codeline></codeline>
+<linenumber line="203"/><codeline>             <highlight class="keywordflow">for</highlight>(it = <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o12">mKeyboardListenerQ</ref>.begin();</codeline>
+<linenumber line="204"/><codeline>                     it != <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o12">mKeyboardListenerQ</ref>.end();it++){</codeline>
+<linenumber line="205"/><codeline>                     <highlight class="keywordflow">if</highlight>(pListener == *it){</codeline>
+<linenumber line="206"/><codeline>                             *it = NULL;</codeline>
+<linenumber line="207"/><codeline>                             <highlight class="keywordflow">return</highlight>;</codeline>
+<linenumber line="208"/><codeline>                     }</codeline>
+<linenumber line="209"/><codeline>             }</codeline>
+<linenumber line="210"/><codeline>     };</codeline>
+<linenumber line="211"/><codeline></codeline>
+<linenumber line="212"/><codeline>     <highlight class="comment">// ACCESS //</highlight></codeline>
+<linenumber line="213" refid="classsf_1_1system_1_1input_1_1InputImpl_1a21"/><codeline>        <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a21">left</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>)<highlight class="keyword"> const </highlight></codeline>
+<linenumber line="214"/><codeline><highlight class="keyword">          </highlight>{ <highlight class="keywordflow">if</highlight>(!bTrig) <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o15">mbLeft</ref>; <highlight class="keywordflow">else</highlight> <highlight class="keywordflow">return</highlight> ((<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o15">mbLeft</ref> ^ <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o25">mbBeforeLeft</ref>) &amp; <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o15">mbLeft</ref>) ;};</codeline>
+<linenumber line="215" refid="classsf_1_1system_1_1input_1_1InputImpl_1a22"/><codeline>        <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a22">right</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>)<highlight class="keyword"> const </highlight></codeline>
+<linenumber line="216"/><codeline><highlight class="keyword">          </highlight>{ <highlight class="keywordflow">if</highlight>(!bTrig) <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o16">mbRight</ref>; <highlight class="keywordflow">else</highlight> <highlight class="keywordflow">return</highlight> ((<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o16">mbRight</ref> ^ <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o26">mbBeforeRight</ref>) &amp; <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o16">mbRight</ref>) ;};</codeline>
+<linenumber line="217" refid="classsf_1_1system_1_1input_1_1InputImpl_1a23"/><codeline>        <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a23">up</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>)<highlight class="keyword"> const</highlight></codeline>
+<linenumber line="218"/><codeline><highlight class="keyword">          </highlight>{ <highlight class="keywordflow">if</highlight>(!bTrig) <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o13">mbUp</ref>; <highlight class="keywordflow">else</highlight> <highlight class="keywordflow">return</highlight> ((<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o13">mbUp</ref> ^ <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o23">mbBeforeUp</ref>) &amp; <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o13">mbUp</ref>) ;};</codeline>
+<linenumber line="219" refid="classsf_1_1system_1_1input_1_1InputImpl_1a24"/><codeline>        <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a24">down</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>)<highlight class="keyword"> const</highlight></codeline>
+<linenumber line="220"/><codeline><highlight class="keyword">          </highlight>{ <highlight class="keywordflow">if</highlight>(!bTrig) <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o14">mbDown</ref>; <highlight class="keywordflow">else</highlight> <highlight class="keywordflow">return</highlight> ((<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o14">mbDown</ref> ^ <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o24">mbBeforeDown</ref>) &amp; <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o14">mbDown</ref>) ;};</codeline>
+<linenumber line="221" refid="classsf_1_1system_1_1input_1_1InputImpl_1a25"/><codeline>        <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a25">buttonA</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>)<highlight class="keyword"> const</highlight></codeline>
+<linenumber line="222"/><codeline><highlight class="keyword">          </highlight>{ <highlight class="keywordflow">if</highlight>(!bTrig) <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o17">mbButtonA</ref>; <highlight class="keywordflow">else</highlight> <highlight class="keywordflow">return</highlight> ((<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o17">mbButtonA</ref> ^ <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o27">mbBeforeButtonA</ref>) &amp; <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o17">mbButtonA</ref>) ;};</codeline>
+<linenumber line="223" refid="classsf_1_1system_1_1input_1_1InputImpl_1a26"/><codeline>        <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a26">buttonB</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>)<highlight class="keyword"> const</highlight></codeline>
+<linenumber line="224"/><codeline><highlight class="keyword">          </highlight>{ <highlight class="keywordflow">if</highlight>(!bTrig) <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o18">mbButtonB</ref>; <highlight class="keywordflow">else</highlight> <highlight class="keywordflow">return</highlight> ((<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o18">mbButtonB</ref> ^ <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o28">mbBeforeButtonB</ref>) &amp; <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o18">mbButtonB</ref>) ;};</codeline>
+<linenumber line="225" refid="classsf_1_1system_1_1input_1_1InputImpl_1a27"/><codeline>        <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a27">buttonC</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>)<highlight class="keyword"> const</highlight></codeline>
+<linenumber line="226"/><codeline><highlight class="keyword">          </highlight>{ <highlight class="keywordflow">if</highlight>(!bTrig) <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o19">mbButtonC</ref>; <highlight class="keywordflow">else</highlight> <highlight class="keywordflow">return</highlight> ((<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o19">mbButtonC</ref> ^ <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o29">mbBeforeButtonC</ref>) &amp; <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o19">mbButtonC</ref>) ;};</codeline>
+<linenumber line="227" refid="classsf_1_1system_1_1input_1_1InputImpl_1a28"/><codeline>        <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a28">buttonD</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>)<highlight class="keyword"> const </highlight></codeline>
+<linenumber line="228"/><codeline><highlight class="keyword">          </highlight>{ <highlight class="keywordflow">if</highlight>(!bTrig) <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o20">mbButtonD</ref>; <highlight class="keywordflow">else</highlight> <highlight class="keywordflow">return</highlight> ((<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o20">mbButtonD</ref> ^ <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o30">mbBeforeButtonD</ref>) &amp; <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o20">mbButtonD</ref>) ;};</codeline>
+<linenumber line="229" refid="classsf_1_1system_1_1input_1_1InputImpl_1a29"/><codeline>        <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a29">start</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>)<highlight class="keyword"> const</highlight></codeline>
+<linenumber line="230"/><codeline><highlight class="keyword">          </highlight>{ <highlight class="keywordflow">if</highlight>(!bTrig) <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o21">mbStart</ref>; <highlight class="keywordflow">else</highlight> <highlight class="keywordflow">return</highlight> ((<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o21">mbStart</ref> ^ <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o31">mbBeforeStart</ref>) &amp; <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o21">mbStart</ref>) ;};</codeline>
+<linenumber line="231" refid="classsf_1_1system_1_1input_1_1InputImpl_1a30"/><codeline>        <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a30">exit</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bTrig = <highlight class="keyword">false</highlight>)<highlight class="keyword"> const </highlight></codeline>
+<linenumber line="232"/><codeline><highlight class="keyword">          </highlight>{ <highlight class="keywordflow">if</highlight>(!bTrig) <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o22">mbExit</ref>; <highlight class="keywordflow">else</highlight> <highlight class="keywordflow">return</highlight> ((<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o22">mbExit</ref> ^ <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o32">mbBeforeExit</ref>) &amp; <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o22">mbExit</ref>) ;};</codeline>
+<linenumber line="233"/><codeline>     </codeline>
+<linenumber line="234" refid="classsf_1_1system_1_1input_1_1InputImpl_1a31"/><codeline>        <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a31">showMouseCursor</ref>(<highlight class="keywordtype">void</highlight>){<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o1">mbMouseCursor</ref> = <highlight class="keyword">true</highlight>;};</codeline>
+<linenumber line="235" refid="classsf_1_1system_1_1input_1_1InputImpl_1a32"/><codeline>        <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a32">hideMouseCursor</ref>(<highlight class="keywordtype">void</highlight>){<ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o1">mbMouseCursor</ref> = <highlight class="keyword">false</highlight>;};</codeline>
+<linenumber line="236"/><codeline>     </codeline>
+<linenumber line="237" refid="classsf_1_1system_1_1input_1_1InputImpl_1a33"/><codeline>        <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a33">mouseCursorVisibility</ref>  (<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const</highlight>{<highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o1">mbMouseCursor</ref>;};</codeline>
+<linenumber line="238"/><codeline></codeline>
+<linenumber line="239"/><codeline>     <highlight class="comment">// INQUIRY //</highlight></codeline>
+<linenumber line="240" refid="classsf_1_1system_1_1input_1_1InputImpl_1a34"/><codeline>        <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a34">isEnabled</ref>(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o0">mbEnabled</ref>;};</codeline>
+<linenumber line="241"/><codeline></codeline>
+<linenumber line="242"/><codeline>     <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1a35">initialize</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="243"/><codeline><highlight class="keyword">private</highlight>:</codeline>
+<linenumber line="246"/><codeline>     <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1c0">uninitialize</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="249"/><codeline>     <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1c1">initJoystick</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="252"/><codeline>     <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1c2">initKeyboard</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="253"/><codeline></codeline>
+<linenumber line="255"/><codeline>     BOOL <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1d0">enumJoysticksCallback</ref>(<highlight class="keyword">const</highlight> DIDEVICEINSTANCE* pdidInstance);</codeline>
+<linenumber line="257"/><codeline>     BOOL <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1d1">enumAxesCallback</ref>( <highlight class="keyword">const</highlight> DIDEVICEOBJECTINSTANCE* pdidoi);</codeline>
+<linenumber line="258"/><codeline>     </codeline>
+<linenumber line="259"/><codeline>     </codeline>
+<linenumber line="260" refid="classsf_1_1system_1_1input_1_1InputImpl_1o0"/><codeline> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o0">mbEnabled</ref>;</codeline>
+<linenumber line="261" refid="classsf_1_1system_1_1input_1_1InputImpl_1o1"/><codeline> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o1">mbMouseCursor</ref>;</codeline>
+<linenumber line="262"/><codeline>     </codeline>
+<linenumber line="263" refid="classsf_1_1system_1_1input_1_1InputImpl_1o2"/><codeline> LPDIRECTINPUT8           <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o2">mpDI</ref>;</codeline>
+<linenumber line="264"/><codeline>     </codeline>
+<linenumber line="265" refid="classsf_1_1system_1_1input_1_1InputImpl_1o3"/><codeline> LPDIRECTINPUTDEVICE8 <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o3">mpJoystick</ref>;</codeline>
+<linenumber line="266" refid="classsf_1_1system_1_1input_1_1InputImpl_1o4"/><codeline> LPDIRECTINPUTDEVICE8 <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o4">mpKeyboard</ref>;</codeline>
+<linenumber line="267"/><codeline>     </codeline>
+<linenumber line="268" refid="classsf_1_1system_1_1input_1_1InputImpl_1o5"/><codeline> DIDEVCAPS                               <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o5">mDIJoystickDevCaps</ref>;</codeline>
+<linenumber line="269" refid="classsf_1_1system_1_1input_1_1InputImpl_1o6"/><codeline> DIJOYSTATE2                             <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o6">mDIJoyState</ref>;</codeline>
+<linenumber line="270" refid="classsf_1_1system_1_1input_1_1InputImpl_1o7"/><codeline> BYTE    <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o7">mDIKeys</ref>[256];   </codeline>
+<linenumber line="271"/><codeline></codeline>
+<linenumber line="272" refid="classsf_1_1system_1_1input_1_1InputImpl_1o8"/><codeline> HWND                                    <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o8">mHWND</ref>;</codeline>
+<linenumber line="273"/><codeline></codeline>
+<linenumber line="274"/><codeline>     <highlight class="comment">// \T\|\1\?\U\o\E\3!?\e\D\A\\81PIN</highlight></codeline>
+<linenumber line="275" refid="classsf_1_1system_1_1input_1_1InputImpl_1o9"/><codeline> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1s0">MouseListenerList</ref> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o9">mMouseListenerList</ref>;</codeline>
+<linenumber line="276" refid="classsf_1_1system_1_1input_1_1InputImpl_1o10"/><codeline>        <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1s0">MouseListenerList</ref> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o10">mMouseListenerQ</ref>;</codeline>
+<linenumber line="277"/><codeline></codeline>
+<linenumber line="278" refid="classsf_1_1system_1_1input_1_1InputImpl_1o11"/><codeline>        <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1s1">KeyboardListenerList</ref> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o11">mKeyboardListenerList</ref>;</codeline>
+<linenumber line="279" refid="classsf_1_1system_1_1input_1_1InputImpl_1o12"/><codeline>        <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1s1">KeyboardListenerList</ref> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o12">mKeyboardListenerQ</ref>;</codeline>
+<linenumber line="280"/><codeline></codeline>
+<linenumber line="281" refid="classsf_1_1system_1_1input_1_1InputImpl_1o13"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o13">mbUp</ref>;</codeline>
+<linenumber line="282" refid="classsf_1_1system_1_1input_1_1InputImpl_1o14"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o14">mbDown</ref>;</codeline>
+<linenumber line="283" refid="classsf_1_1system_1_1input_1_1InputImpl_1o15"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o15">mbLeft</ref>;</codeline>
+<linenumber line="284" refid="classsf_1_1system_1_1input_1_1InputImpl_1o16"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o16">mbRight</ref>;</codeline>
+<linenumber line="285"/><codeline>     </codeline>
+<linenumber line="286" refid="classsf_1_1system_1_1input_1_1InputImpl_1o17"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o17">mbButtonA</ref>;</codeline>
+<linenumber line="287" refid="classsf_1_1system_1_1input_1_1InputImpl_1o18"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o18">mbButtonB</ref>;</codeline>
+<linenumber line="288" refid="classsf_1_1system_1_1input_1_1InputImpl_1o19"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o19">mbButtonC</ref>;</codeline>
+<linenumber line="289" refid="classsf_1_1system_1_1input_1_1InputImpl_1o20"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o20">mbButtonD</ref>;</codeline>
+<linenumber line="290"/><codeline>     </codeline>
+<linenumber line="291" refid="classsf_1_1system_1_1input_1_1InputImpl_1o21"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o21">mbStart</ref>;</codeline>
+<linenumber line="292" refid="classsf_1_1system_1_1input_1_1InputImpl_1o22"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o22">mbExit</ref>;</codeline>
+<linenumber line="293"/><codeline></codeline>
+<linenumber line="294" refid="classsf_1_1system_1_1input_1_1InputImpl_1o23"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o23">mbBeforeUp</ref>;</codeline>
+<linenumber line="295" refid="classsf_1_1system_1_1input_1_1InputImpl_1o24"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o24">mbBeforeDown</ref>;</codeline>
+<linenumber line="296" refid="classsf_1_1system_1_1input_1_1InputImpl_1o25"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o25">mbBeforeLeft</ref>;</codeline>
+<linenumber line="297" refid="classsf_1_1system_1_1input_1_1InputImpl_1o26"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o26">mbBeforeRight</ref>;</codeline>
+<linenumber line="298"/><codeline>     </codeline>
+<linenumber line="299" refid="classsf_1_1system_1_1input_1_1InputImpl_1o27"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o27">mbBeforeButtonA</ref>;</codeline>
+<linenumber line="300" refid="classsf_1_1system_1_1input_1_1InputImpl_1o28"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o28">mbBeforeButtonB</ref>;</codeline>
+<linenumber line="301" refid="classsf_1_1system_1_1input_1_1InputImpl_1o29"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o29">mbBeforeButtonC</ref>;</codeline>
+<linenumber line="302" refid="classsf_1_1system_1_1input_1_1InputImpl_1o30"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o30">mbBeforeButtonD</ref>;</codeline>
+<linenumber line="303"/><codeline></codeline>
+<linenumber line="304" refid="classsf_1_1system_1_1input_1_1InputImpl_1o31"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o31">mbBeforeStart</ref>;</codeline>
+<linenumber line="305" refid="classsf_1_1system_1_1input_1_1InputImpl_1o32"/><codeline>        <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1input_1_1InputImpl_1o32">mbBeforeExit</ref>;</codeline>
+<linenumber line="306"/><codeline>};</codeline>
+<linenumber line="307"/><codeline>             } <highlight class="comment">// namespace input</highlight></codeline>
+<linenumber line="308"/><codeline>     } <highlight class="comment">// namespace system</highlight></codeline>
+<linenumber line="309"/><codeline>} <highlight class="comment">// namespace sf</highlight></codeline>
+<linenumber line="310"/><codeline>}</codeline>
+<linenumber line="311"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_INPUTInputImpl_H__CAF65806_66F9_4CFF_89EC_66E36A0FB746__INCLUDED_)</highlight></codeline>
+<linenumber line="312"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/InputImpl.h"/>
+  </compounddef>
+  <compounddef id="Main_8cpp" kind="file">
+    <compoundname>Main.cpp</compoundname>
+    <includes id="sfdebug_8h" local="yes">sfdebug.h</includes>
+    <includes local="no">string</includes>
+    <includes local="yes">stdio.h</includes>
+    <includes local="yes">system.h</includes>
+    <includes local="yes">console.h</includes>
+    <includes id="Main_8h" local="yes">Main.h</includes>
+    <incdepgraph>
+      <node id="349">
+        <label>string</label>
+      </node>
+      <node id="348">
+        <label>sfdebug.h</label>
+        <link id="sfdebug_8h"/>
+      </node>
+      <node id="347">
+        <label>Main.cpp</label>
+        <link id="Main.cpp"/>
+        <childnode id="348" relation="public-inheritance">
+        </childnode>
+        <childnode id="349" relation="public-inheritance">
+        </childnode>
+        <childnode id="350" relation="public-inheritance">
+        </childnode>
+        <childnode id="351" relation="public-inheritance">
+        </childnode>
+        <childnode id="352" relation="public-inheritance">
+        </childnode>
+        <childnode id="353" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="352">
+        <label>console.h</label>
+      </node>
+      <node id="353">
+        <label>Main.h</label>
+        <link id="Main_8h-source"/>
+      </node>
+      <node id="351">
+        <label>system.h</label>
+      </node>
+      <node id="350">
+        <label>stdio.h</label>
+      </node>
+    </incdepgraph>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// Main.cpp: Main \\81P\e\1?I\?\o\\81~\e\a\o\A!?\\81E\c\o</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">//  IuIo:</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// $Log: Main.cpp,v $</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// Revision 1.3  2001/07/01 21:30:34  fujiwara</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">// \a\a\e\e!?\\81P\A\\81\98\A\\81P\81C\81áA??\81E</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:49:43  fujiwara</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// 2001/01/29 \a\a\e!?\e!?\\81P\81C!?DIN\e\?\O\e\e?IAE2A </highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment">#pragma warning( disable : 4786 )  //STL?I\81EU1d3\81\8b?\81E</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="sfdebug_8h">sfdebug.h</ref>&quot;</highlight></codeline>
+<linenumber line="24"/><codeline></codeline>
+<linenumber line="25"/><codeline><highlight class="comment">// SYSTEM INCLUDES</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor">#include &lt;string&gt;</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="preprocessor">#include &quot;stdio.h&quot;</highlight></codeline>
+<linenumber line="29"/><codeline></codeline>
+<linenumber line="30"/><codeline><highlight class="comment">// PROJECT INCLUDES</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor">#include &quot;system.h&quot;</highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="preprocessor">#include  &quot;console.h&quot;</highlight></codeline>
+<linenumber line="34"/><codeline></codeline>
+<linenumber line="35"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="36"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define new DEBUG_NEW</highlight></codeline>
+<linenumber line="37"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="38"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="39"/><codeline><highlight class="preprocessor">#include &quot;Main.h&quot;</highlight></codeline>
+<linenumber line="40"/><codeline></codeline>
+<linenumber line="42"/><codeline><highlight class="comment">// 1?AU/?AIC</highlight></codeline>
+<linenumber line="44"/><codeline><highlight class="comment"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Main.cpp"/>
+  </compounddef>
+  <compounddef id="Main_8h" kind="file">
+    <compoundname>Main.h</compoundname>
+    <includedby id="AbstractSprite_8cpp" local="yes">AbstractSprite.cpp</includedby>
+    <includedby id="ConsoleImpl_8cpp" local="yes">ConsoleImpl.cpp</includedby>
+    <includedby id="InputImpl_8cpp" local="yes">InputImpl.cpp</includedby>
+    <includedby id="Main_8cpp" local="yes">Main.cpp</includedby>
+    <includedby id="sfglib_8cpp" local="yes">sfglib.cpp</includedby>
+    <includedby id="System_8cpp" local="yes">System.cpp</includedby>
+    <includedby id="SystemImpl_8cpp" local="yes">SystemImpl.cpp</includedby>
+    <invincdepgraph>
+      <node id="361">
+        <label>sfglib.cpp</label>
+        <link id="sfglib_8cpp-source"/>
+      </node>
+      <node id="363">
+        <label>SystemImpl.cpp</label>
+        <link id="SystemImpl_8cpp-source"/>
+      </node>
+      <node id="359">
+        <label>InputImpl.cpp</label>
+        <link id="InputImpl_8cpp-source"/>
+      </node>
+      <node id="360">
+        <label>Main.cpp</label>
+        <link id="Main_8cpp-source"/>
+      </node>
+      <node id="358">
+        <label>ConsoleImpl.cpp</label>
+        <link id="ConsoleImpl_8cpp-source"/>
+      </node>
+      <node id="362">
+        <label>System.cpp</label>
+        <link id="System_8cpp-source"/>
+      </node>
+      <node id="357">
+        <label>AbstractSprite.cpp</label>
+        <link id="AbstractSprite_8cpp-source"/>
+      </node>
+      <node id="356">
+        <label>Main.h</label>
+        <link id="Main.h"/>
+        <childnode id="357" relation="public-inheritance">
+        </childnode>
+        <childnode id="358" relation="public-inheritance">
+        </childnode>
+        <childnode id="359" relation="public-inheritance">
+        </childnode>
+        <childnode id="360" relation="public-inheritance">
+        </childnode>
+        <childnode id="361" relation="public-inheritance">
+        </childnode>
+        <childnode id="362" relation="public-inheritance">
+        </childnode>
+        <childnode id="363" relation="public-inheritance">
+        </childnode>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1application">sf::application</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="Main_8h_1a0" virt="normal" prot="public">
+        <name>AFX_Main_H__FFF94F56_3A52_413E_9CD2_A5E815DCFB90__INCLUDED_</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Main.h" line="22" bodystart="22" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">//  Main Ae?Y\\81P\e\1?I\O\A\A!\81\91\a\?\o\\81P\e\1?IAe\83ÊA</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  !!\a\?\o?IIR?i?o1?AU?\81E?T?1!\81\92</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">//    ?AoY?I?eIy?I!\81\91\81÷n?Y\\81P\e\1?EC??\81â?T?1!\81\92</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// $Log: Main.h,v $</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// Revision 1.3  2001/07/09 20:30:08  fujiwara</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:49:43  fujiwara</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="preprocessor">#if !defined(AFX_Main_H__FFF94F56_3A52_413E_9CD2_A5E815DCFB90__INCLUDED_)</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_Main_H__FFF94F56_3A52_413E_9CD2_A5E815DCFB90__INCLUDED_</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="keyword">namespace </highlight>sf{</codeline>
+<linenumber line="29"/><codeline>      <highlight class="keyword">namespace </highlight>application {</codeline>
+<linenumber line="30"/><codeline>              </codeline>
+<linenumber line="31"/><codeline>              <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> INIT_PLAYER = 3;</codeline>
+<linenumber line="32"/><codeline>              <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> STAGE_NUM_MAX = 1;</codeline>
+<linenumber line="33"/><codeline></codeline>
+<linenumber line="34"/><codeline>              <highlight class="keyword">class </highlight>Main  </codeline>
+<linenumber line="35"/><codeline>              {</codeline>
+<linenumber line="36"/><codeline>                      <highlight class="comment">// LIFECYCLE //</highlight></codeline>
+<linenumber line="37"/><codeline>              <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="38"/><codeline>                      Main(){;};</codeline>
+<linenumber line="39"/><codeline>                      <highlight class="keyword">virtual</highlight> ~Main(){;};</codeline>
+<linenumber line="40"/><codeline>                      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> initialize(<highlight class="keywordtype">void</highlight>) = 0;</codeline>
+<linenumber line="41"/><codeline>                      <highlight class="comment">// OPERATORS //</highlight></codeline>
+<linenumber line="42"/><codeline>                      <highlight class="comment">// OPERATIONS //</highlight></codeline>
+<linenumber line="43"/><codeline>                      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> run() = 0;</codeline>
+<linenumber line="44"/><codeline>                      <highlight class="keyword">virtual</highlight> <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite">sf::system::console::sprite::Sprite</ref> * <highlight class="keyword">const</highlight> getBlankSprite() = 0;</codeline>
+<linenumber line="45"/><codeline></codeline>
+<linenumber line="46"/><codeline>                      <highlight class="comment">// INQUIRY //</highlight></codeline>
+<linenumber line="47"/><codeline>                      <highlight class="keyword">static</highlight> Main * <ref idref="namespacesf_1_1system_1a4">instance</ref>();</codeline>
+<linenumber line="48"/><codeline>              };<highlight class="comment">// Main</highlight></codeline>
+<linenumber line="49"/><codeline>      }<highlight class="comment">// application</highlight></codeline>
+<linenumber line="50"/><codeline>}<highlight class="comment">// sf</highlight></codeline>
+<linenumber line="51"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_Main_H__FFF94F56_3A52_413E_9CD2_A5E815DCFB90__INCLUDED_)</highlight></codeline>
+<linenumber line="52"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Main.h"/>
+  </compounddef>
+  <compounddef id="Obj_8cpp" kind="file">
+    <compoundname>Obj.cpp</compoundname>
+    <includes local="no">string</includes>
+    <includes local="yes">stdio.h</includes>
+    <includes local="yes">system.h</includes>
+    <includes local="yes">console.h</includes>
+    <includes id="Obj_8h" local="yes">Obj.h</includes>
+    <incdepgraph>
+      <node id="365">
+        <label>string</label>
+      </node>
+      <node id="364">
+        <label>Obj.cpp</label>
+        <link id="Obj.cpp"/>
+        <childnode id="365" relation="public-inheritance">
+        </childnode>
+        <childnode id="366" relation="public-inheritance">
+        </childnode>
+        <childnode id="367" relation="public-inheritance">
+        </childnode>
+        <childnode id="368" relation="public-inheritance">
+        </childnode>
+        <childnode id="369" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="370">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="368">
+        <label>console.h</label>
+      </node>
+      <node id="369">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="370" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="367">
+        <label>system.h</label>
+      </node>
+      <node id="366">
+        <label>stdio.h</label>
+      </node>
+    </incdepgraph>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">//  \1\\81~\e\?\E?dEoEY\81ây\\81P\e\1</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  IuIo:</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// $Log: Obj.cpp,v $</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// Revision 1.2  2001/10/28 21:35:56  fujiwara</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:49:33  fujiwara</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">// 2001/01/29 \a\a\e!?\e!?\\81P\81C!?DIN\e\?\O\e\e?IAE2A </highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">//  2001/05/04 \a\O\\81C\\81\98\\81P\EATAt\81ât?I\81\92A\81\92O\81\92C??A\83Ê</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#ifndef _BORLAND</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define _CRTDBG_MAP_ALLOC</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &lt;stdlib.h&gt;</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor">#include &lt;crtdbg.h&gt;</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor">#include &lt;string&gt;</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor">#include &quot;stdio.h&quot;</highlight></codeline>
+<linenumber line="33"/><codeline></codeline>
+<linenumber line="34"/><codeline><highlight class="preprocessor">#include &quot;system.h&quot;</highlight></codeline>
+<linenumber line="35"/><codeline><highlight class="preprocessor">#include &quot;console.h&quot;</highlight></codeline>
+<linenumber line="36"/><codeline></codeline>
+<linenumber line="37"/><codeline><highlight class="preprocessor">#include &quot;Obj.h&quot;</highlight></codeline>
+<linenumber line="38"/><codeline></codeline>
+<linenumber line="40"/><codeline><highlight class="comment">// 1?AU/?AIC</highlight></codeline>
+<linenumber line="42"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="43"/><codeline><highlight class="keyword">using</highlight> <highlight class="keyword">namespace </highlight>sf::system::console;</codeline>
+<linenumber line="44"/><codeline></codeline>
+<linenumber line="45"/><codeline>int Obj::List::mCount = 0;</codeline>
+<linenumber line="46"/><codeline>Obj* Obj::List::mspBottom = NULL;</codeline>
+<linenumber line="47"/><codeline>Obj* Obj::List::mspTop = NULL;</codeline>
+<linenumber line="48"/><codeline>Obj* Obj::List::mspCurrent = NULL;</codeline>
+<linenumber line="49"/><codeline></codeline>
+<linenumber line="50"/><codeline><highlight class="comment">//----------------------------------------------------------------------------</highlight></codeline>
+<linenumber line="51"/><codeline><highlight class="comment">// Obj Class</highlight></codeline>
+<linenumber line="52"/><codeline><highlight class="comment">//----------------------------------------------------------------------------</highlight></codeline>
+<linenumber line="53"/><codeline></codeline>
+<linenumber line="54"/><codeline><highlight class="comment">// \3\o\1\E\e\\81P\? -------------------------------------------------------------</highlight></codeline>
+<linenumber line="55"/><codeline>Obj::Obj()</codeline>
+<linenumber line="56"/><codeline>{</codeline>
+<linenumber line="57"/><codeline></codeline>
+<linenumber line="58"/><codeline>}<highlight class="comment">// Obj</highlight></codeline>
+<linenumber line="59"/><codeline></codeline>
+<linenumber line="60"/><codeline><highlight class="comment">// \C\1\E\e\\81P\? ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="61"/><codeline>Obj::~Obj()</codeline>
+<linenumber line="62"/><codeline>{</codeline>
+<linenumber line="63"/><codeline></codeline>
+<linenumber line="64"/><codeline>}<highlight class="comment">// Obj</highlight></codeline>
+<linenumber line="65"/><codeline></codeline>
+<linenumber line="66"/><codeline><highlight class="comment">//----------------------------------------------------------------------------</highlight></codeline>
+<linenumber line="67"/><codeline><highlight class="comment">// Obj::List Class</highlight></codeline>
+<linenumber line="68"/><codeline><highlight class="comment">//----------------------------------------------------------------------------</highlight></codeline>
+<linenumber line="69"/><codeline></codeline>
+<linenumber line="70"/><codeline><highlight class="comment">// Obj?oZAI?C\?!?\E?\81E?E?\81Ê?eATAt?1?e --------------------------------------------</highlight></codeline>
+<linenumber line="71"/><codeline><highlight class="keywordtype">void</highlight> Obj::List::insertObj(Obj *value)</codeline>
+<linenumber line="72"/><codeline>{</codeline>
+<linenumber line="73"/><codeline>      Obj *pobj = mspTop;</codeline>
+<linenumber line="74"/><codeline>      <highlight class="keywordflow">if</highlight>(mspTop == NULL){</codeline>
+<linenumber line="75"/><codeline>              mspTop = value;</codeline>
+<linenumber line="76"/><codeline>              mspCurrent = value;</codeline>
+<linenumber line="77"/><codeline>              mspBottom = value;</codeline>
+<linenumber line="78"/><codeline>              value-&gt;next(NULL);</codeline>
+<linenumber line="79"/><codeline>              value-&gt;previous(NULL);</codeline>
+<linenumber line="80"/><codeline>              mCount++;</codeline>
+<linenumber line="81"/><codeline>      } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="82"/><codeline>              <highlight class="keywordflow">while</highlight>(pobj != NULL)</codeline>
+<linenumber line="83"/><codeline>              {</codeline>
+<linenumber line="84"/><codeline>                      <highlight class="keywordflow">if</highlight>(value-&gt;z() &lt;= pobj-&gt;z())</codeline>
+<linenumber line="85"/><codeline>                      {</codeline>
+<linenumber line="86"/><codeline>                              pobj = pobj-&gt;next();</codeline>
+<linenumber line="87"/><codeline>                              </codeline>
+<linenumber line="88"/><codeline>                      } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="89"/><codeline>      </codeline>
+<linenumber line="90"/><codeline>                              value-&gt;next(pobj);</codeline>
+<linenumber line="91"/><codeline>                              </codeline>
+<linenumber line="92"/><codeline>                              <highlight class="keywordflow">if</highlight>(pobj-&gt;previous() != NULL){</codeline>
+<linenumber line="93"/><codeline>                                      value-&gt;previous(pobj-&gt;previous());</codeline>
+<linenumber line="94"/><codeline>                                      value-&gt;previous()-&gt;next(value);</codeline>
+<linenumber line="95"/><codeline>                                      pobj-&gt;previous(value);</codeline>
+<linenumber line="96"/><codeline>                              } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="97"/><codeline>                                      value-&gt;previous(NULL);</codeline>
+<linenumber line="98"/><codeline>                                      mspTop = value; </codeline>
+<linenumber line="99"/><codeline>                                      pobj-&gt;previous(value);</codeline>
+<linenumber line="100"/><codeline>                             }</codeline>
+<linenumber line="101"/><codeline></codeline>
+<linenumber line="102"/><codeline>                             mCount++;</codeline>
+<linenumber line="103"/><codeline>                             <highlight class="keywordflow">return</highlight>;</codeline>
+<linenumber line="104"/><codeline>                     }</codeline>
+<linenumber line="105"/><codeline></codeline>
+<linenumber line="106"/><codeline>             }</codeline>
+<linenumber line="107"/><codeline></codeline>
+<linenumber line="108"/><codeline>             mspBottom-&gt;next(value);</codeline>
+<linenumber line="109"/><codeline>             value-&gt;previous(mspBottom);</codeline>
+<linenumber line="110"/><codeline>             value-&gt;next(NULL);</codeline>
+<linenumber line="111"/><codeline>             mspBottom = value;</codeline>
+<linenumber line="112"/><codeline>             mCount++;</codeline>
+<linenumber line="113"/><codeline>     }</codeline>
+<linenumber line="114"/><codeline>}<highlight class="comment">// insertObj()</highlight></codeline>
+<linenumber line="115"/><codeline></codeline>
+<linenumber line="116"/><codeline><highlight class="comment">// Obj?ooi?u?1?e --------------------------------------------------------------</highlight></codeline>
+<linenumber line="117"/><codeline><highlight class="keywordtype">void</highlight> Obj::List::deleteObj(Obj *value)</codeline>
+<linenumber line="118"/><codeline>{</codeline>
+<linenumber line="119"/><codeline>     <highlight class="keywordflow">if</highlight>(value-&gt;next() != NULL)</codeline>
+<linenumber line="120"/><codeline>     {</codeline>
+<linenumber line="121"/><codeline>             <highlight class="keywordflow">if</highlight>(value-&gt;previous() != NULL)</codeline>
+<linenumber line="122"/><codeline>             {</codeline>
+<linenumber line="123"/><codeline>                     value-&gt;previous()-&gt;next(value-&gt;next());</codeline>
+<linenumber line="124"/><codeline>                     value-&gt;next()-&gt;previous(value-&gt;previous());</codeline>
+<linenumber line="125"/><codeline>                     value-&gt;next(NULL);</codeline>
+<linenumber line="126"/><codeline>                     value-&gt;previous(NULL);</codeline>
+<linenumber line="127"/><codeline>             } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="128"/><codeline>                     mspTop = value-&gt;next();</codeline>
+<linenumber line="129"/><codeline>                     value-&gt;next()-&gt;previous(NULL);</codeline>
+<linenumber line="130"/><codeline>                     value-&gt;next(NULL);</codeline>
+<linenumber line="131"/><codeline>             }</codeline>
+<linenumber line="132"/><codeline>     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="133"/><codeline>             <highlight class="keywordflow">if</highlight>(value-&gt;previous() != NULL){</codeline>
+<linenumber line="134"/><codeline>                     mspBottom = value-&gt;previous();</codeline>
+<linenumber line="135"/><codeline>                     value-&gt;previous()-&gt;next(NULL);</codeline>
+<linenumber line="136"/><codeline>                     value-&gt;previous(NULL);</codeline>
+<linenumber line="137"/><codeline>             } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="138"/><codeline>                     value-&gt;next(NULL);</codeline>
+<linenumber line="139"/><codeline>                     value-&gt;previous(NULL);</codeline>
+<linenumber line="140"/><codeline>                     mspBottom = NULL;</codeline>
+<linenumber line="141"/><codeline>                     mspTop = NULL;</codeline>
+<linenumber line="142"/><codeline>             }</codeline>
+<linenumber line="143"/><codeline>     }</codeline>
+<linenumber line="144"/><codeline>     mCount --;</codeline>
+<linenumber line="145"/><codeline>} <highlight class="comment">// deleteObj()</highlight></codeline>
+<linenumber line="146"/><codeline></codeline>
+<linenumber line="147"/><codeline>Obj * Obj::List::moveNext()</codeline>
+<linenumber line="148"/><codeline>{</codeline>
+<linenumber line="149"/><codeline>     <highlight class="keywordflow">if</highlight>(mspCurrent != NULL)</codeline>
+<linenumber line="150"/><codeline>             mspCurrent = mspCurrent-&gt;next();</codeline>
+<linenumber line="151"/><codeline>     <highlight class="keywordflow">return</highlight> mspCurrent;</codeline>
+<linenumber line="152"/><codeline>};</codeline>
+<linenumber line="153"/><codeline></codeline>
+<linenumber line="154"/><codeline>Obj * Obj::List::movePrevious()</codeline>
+<linenumber line="155"/><codeline>{    <highlight class="keywordflow">if</highlight>(mspCurrent != NULL)</codeline>
+<linenumber line="156"/><codeline>             mspCurrent = mspCurrent-&gt;previous();</codeline>
+<linenumber line="157"/><codeline>     <highlight class="keywordflow">return</highlight> mspCurrent;</codeline>
+<linenumber line="158"/><codeline>};</codeline>
+<linenumber line="159"/><codeline></codeline>
+<linenumber line="160"/><codeline>Obj * Obj::List::moveTop(){mspCurrent = mspTop ; <highlight class="keywordflow">return</highlight> mspTop ;};</codeline>
+<linenumber line="161"/><codeline>Obj * Obj::List::moveBottom(){mspCurrent = mspBottom ; <highlight class="keywordflow">return</highlight>  mspBottom;};</codeline>
+<linenumber line="162"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Obj.cpp"/>
+  </compounddef>
+  <compounddef id="Obj_8h" kind="file">
+    <compoundname>Obj.h</compoundname>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includedby id="AbstractSprite_8cpp" local="yes">AbstractSprite.cpp</includedby>
+    <includedby id="ObjRectangle_8h" local="yes">ObjRectangle.h</includedby>
+    <includedby id="Obj3D_8h" local="yes">Obj3D.h</includedby>
+    <includedby id="BackGround_8cpp" local="yes">BackGround.cpp</includedby>
+    <includedby id="ConsoleImpl_8cpp" local="yes">ConsoleImpl.cpp</includedby>
+    <includedby id="InputImpl_8cpp" local="yes">InputImpl.cpp</includedby>
+    <includedby id="Obj_8cpp" local="yes">Obj.cpp</includedby>
+    <includedby id="Obj2D_8cpp" local="yes">Obj2D.cpp</includedby>
+    <includedby id="ObjQuadrangle_8cpp" local="yes">ObjQuadrangle.cpp</includedby>
+    <includedby id="ObjRectangle_8cpp" local="yes">ObjRectangle.cpp</includedby>
+    <includedby id="sfglib_8cpp" local="yes">sfglib.cpp</includedby>
+    <includedby id="Sprite2D_8cpp" local="yes">Sprite2D.cpp</includedby>
+    <includedby id="Sprite3D_8cpp" local="yes">Sprite3D.cpp</includedby>
+    <includedby id="SpriteMesh_8cpp" local="yes">SpriteMesh.cpp</includedby>
+    <includedby id="System_8cpp" local="yes">System.cpp</includedby>
+    <includedby id="SystemImpl_8cpp" local="yes">SystemImpl.cpp</includedby>
+    <incdepgraph>
+      <node id="373">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="372">
+        <label>Obj.h</label>
+        <link id="Obj.h"/>
+        <childnode id="373" relation="public-inheritance">
+        </childnode>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="391">
+        <label>sfglib.cpp</label>
+        <link id="sfglib_8cpp-source"/>
+      </node>
+      <node id="379">
+        <label>ObjRectangle.cpp</label>
+        <link id="ObjRectangle_8cpp-source"/>
+      </node>
+      <node id="380">
+        <label>Sprite2D.cpp</label>
+        <link id="Sprite2D_8cpp-source"/>
+      </node>
+      <node id="377">
+        <label>BackGround.cpp</label>
+        <link id="BackGround_8cpp-source"/>
+      </node>
+      <node id="393">
+        <label>SystemImpl.cpp</label>
+        <link id="SystemImpl_8cpp-source"/>
+      </node>
+      <node id="387">
+        <label>InputImpl.cpp</label>
+        <link id="InputImpl_8cpp-source"/>
+      </node>
+      <node id="388">
+        <label>Obj.cpp</label>
+        <link id="Obj_8cpp-source"/>
+      </node>
+      <node id="378">
+        <label>ConsoleImpl.cpp</label>
+        <link id="ConsoleImpl_8cpp-source"/>
+      </node>
+      <node id="390">
+        <label>ObjQuadrangle.cpp</label>
+        <link id="ObjQuadrangle_8cpp-source"/>
+      </node>
+      <node id="385">
+        <label>SpriteMesh.cpp</label>
+        <link id="SpriteMesh_8cpp-source"/>
+      </node>
+      <node id="392">
+        <label>System.cpp</label>
+        <link id="System_8cpp-source"/>
+      </node>
+      <node id="381">
+        <label>Obj3D.h</label>
+        <link id="Obj3D_8h-source"/>
+        <childnode id="375" relation="public-inheritance">
+        </childnode>
+        <childnode id="382" relation="public-inheritance">
+        </childnode>
+        <childnode id="378" relation="public-inheritance">
+        </childnode>
+        <childnode id="386" relation="public-inheritance">
+        </childnode>
+        <childnode id="383" relation="public-inheritance">
+        </childnode>
+        <childnode id="384" relation="public-inheritance">
+        </childnode>
+        <childnode id="385" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="376">
+        <label>ObjRectangle.h</label>
+        <link id="ObjRectangle_8h-source"/>
+        <childnode id="375" relation="public-inheritance">
+        </childnode>
+        <childnode id="377" relation="public-inheritance">
+        </childnode>
+        <childnode id="378" relation="public-inheritance">
+        </childnode>
+        <childnode id="379" relation="public-inheritance">
+        </childnode>
+        <childnode id="380" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="382">
+        <label>Obj3DL.h</label>
+        <link id="Obj3DL_8h-source"/>
+        <childnode id="375" relation="public-inheritance">
+        </childnode>
+        <childnode id="378" relation="public-inheritance">
+        </childnode>
+        <childnode id="383" relation="public-inheritance">
+        </childnode>
+        <childnode id="384" relation="public-inheritance">
+        </childnode>
+        <childnode id="385" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="386">
+        <label>Obj3D.cpp</label>
+        <link id="Obj3D_8cpp-source"/>
+      </node>
+      <node id="374">
+        <label>Obj.h</label>
+        <link id="Obj.h"/>
+        <childnode id="375" relation="public-inheritance">
+        </childnode>
+        <childnode id="376" relation="public-inheritance">
+        </childnode>
+        <childnode id="381" relation="public-inheritance">
+        </childnode>
+        <childnode id="377" relation="public-inheritance">
+        </childnode>
+        <childnode id="378" relation="public-inheritance">
+        </childnode>
+        <childnode id="387" relation="public-inheritance">
+        </childnode>
+        <childnode id="388" relation="public-inheritance">
+        </childnode>
+        <childnode id="389" relation="public-inheritance">
+        </childnode>
+        <childnode id="390" relation="public-inheritance">
+        </childnode>
+        <childnode id="379" relation="public-inheritance">
+        </childnode>
+        <childnode id="391" relation="public-inheritance">
+        </childnode>
+        <childnode id="380" relation="public-inheritance">
+        </childnode>
+        <childnode id="384" relation="public-inheritance">
+        </childnode>
+        <childnode id="385" relation="public-inheritance">
+        </childnode>
+        <childnode id="392" relation="public-inheritance">
+        </childnode>
+        <childnode id="393" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="383">
+        <label>Obj3DL.cpp</label>
+        <link id="Obj3DL_8cpp-source"/>
+      </node>
+      <node id="375">
+        <label>AbstractSprite.cpp</label>
+        <link id="AbstractSprite_8cpp-source"/>
+      </node>
+      <node id="384">
+        <label>Sprite3D.cpp</label>
+        <link id="Sprite3D_8cpp-source"/>
+      </node>
+      <node id="389">
+        <label>Obj2D.cpp</label>
+        <link id="Obj2D_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console">sf::system::console</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="Obj_8h_1a0" virt="normal" prot="public">
+        <name>AFX_OBJ_H__848EAA84_F65D_4C04_982A_EC1A7484C2E7__INCLUDED_</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj.h" line="24" bodystart="24" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// Obj.h: Obj \\81P\e\1?I\?\o\?!?\O\\81\98\?\1</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  IuIo!\81\98</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// $Log: Obj.h,v $</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// Revision 1.2  2001/10/28 21:35:56  fujiwara</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// Revision 1.3  2001/07/09 20:30:09  fujiwara</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:49:33  fujiwara</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor">#if !defined(AFX_OBJ_H__848EAA84_F65D_4C04_982A_EC1A7484C2E7__INCLUDED_)</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_OBJ_H__848EAA84_F65D_4C04_982A_EC1A7484C2E7__INCLUDED_</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="32"/><codeline><highlight class="keyword">namespace </highlight>sf {</codeline>
+<linenumber line="33"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="34"/><codeline>              <highlight class="keyword">namespace </highlight>console {</codeline>
+<linenumber line="35"/><codeline></codeline>
+<linenumber line="36"/><codeline><highlight class="keyword">typedef</highlight>        <highlight class="keywordtype">int</highlight> OBJNO;</codeline>
+<linenumber line="37"/><codeline></codeline>
+<linenumber line="38"/><codeline><highlight class="comment">// Obj ------------------------------------------------------------------------</highlight></codeline>
+<linenumber line="39"/><codeline><highlight class="keyword">class </highlight>SFDLL Obj</codeline>
+<linenumber line="40"/><codeline>{</codeline>
+<linenumber line="41"/><codeline><highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="42"/><codeline>      Obj();</codeline>
+<linenumber line="43"/><codeline>      <highlight class="keyword">virtual</highlight> ~Obj();</codeline>
+<linenumber line="44"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> draw() = 0;</codeline>
+<linenumber line="45"/><codeline></codeline>
+<linenumber line="46"/><codeline>      <highlight class="comment">// ACCESS //</highlight></codeline>
+<linenumber line="47"/><codeline></codeline>
+<linenumber line="48"/><codeline>      <highlight class="comment">// \1\\81~\e\?\E?I\\81\91\E\i\1 //</highlight></codeline>
+<linenumber line="49"/><codeline>      <highlight class="keyword">virtual</highlight> sprite::Sprite * <highlight class="keyword">const</highlight> sprite() <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="50"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> sprite(sprite::Sprite* <highlight class="keyword">const</highlight> value) = 0;</codeline>
+<linenumber line="51"/><codeline></codeline>
+<linenumber line="52"/><codeline>      <highlight class="comment">// \?\o\C\A\\81P\1//</highlight></codeline>
+<linenumber line="53"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> index() <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="54"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> index(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> value) = 0;</codeline>
+<linenumber line="55"/><codeline></codeline>
+<linenumber line="56"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> visibility() <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="57"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> visibility(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> value) = 0;</codeline>
+<linenumber line="58"/><codeline></codeline>
+<linenumber line="59"/><codeline>      <highlight class="keyword">virtual</highlight> Obj * <highlight class="keyword">const</highlight> previous() <highlight class="keyword">const</highlight>  = 0;</codeline>
+<linenumber line="60"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> previous(Obj * <highlight class="keyword">const</highlight> value) = 0;</codeline>
+<linenumber line="61"/><codeline>      </codeline>
+<linenumber line="62"/><codeline>      <highlight class="keyword">virtual</highlight> Obj * <highlight class="keyword">const</highlight> next() <highlight class="keyword">const</highlight>  = 0;</codeline>
+<linenumber line="63"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> next(Obj * <highlight class="keyword">const</highlight> value) = 0;</codeline>
+<linenumber line="64"/><codeline></codeline>
+<linenumber line="65"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> z() <highlight class="keyword">const</highlight>  = 0;</codeline>
+<linenumber line="66"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight>  z(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value) = 0;</codeline>
+<linenumber line="67"/><codeline></codeline>
+<linenumber line="68"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> drawMode(<highlight class="keyword">const</highlight> <ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref> value) = 0;</codeline>
+<linenumber line="69"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref> drawMode() <highlight class="keyword">const</highlight>  = 0;</codeline>
+<linenumber line="70"/><codeline></codeline>
+<linenumber line="71"/><codeline>      <highlight class="comment">//ADEy\81Ct\e\1\E?oEY\81ây?1?e\\81P\e\1 --------------------------------------------</highlight></codeline>
+<linenumber line="72"/><codeline>      <highlight class="keyword">class </highlight>SFDLL List</codeline>
+<linenumber line="73"/><codeline>      {</codeline>
+<linenumber line="74"/><codeline>      <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="75"/><codeline>              <highlight class="keyword">static</highlight> <highlight class="keywordtype">void</highlight> insertObj(Obj *value);</codeline>
+<linenumber line="76"/><codeline>              <highlight class="keyword">static</highlight> <highlight class="keywordtype">void</highlight> deleteObj(Obj *value);</codeline>
+<linenumber line="77"/><codeline>              </codeline>
+<linenumber line="78"/><codeline>              <highlight class="keyword">static</highlight> Obj * moveTop();</codeline>
+<linenumber line="79"/><codeline>              <highlight class="keyword">static</highlight> Obj * moveBottom();</codeline>
+<linenumber line="80"/><codeline>              </codeline>
+<linenumber line="81"/><codeline>              <highlight class="keyword">static</highlight> Obj * moveNext();</codeline>
+<linenumber line="82"/><codeline>              <highlight class="keyword">static</highlight> Obj * movePrevious();</codeline>
+<linenumber line="83"/><codeline>              </codeline>
+<linenumber line="84"/><codeline>      <highlight class="keyword">private</highlight>:</codeline>
+<linenumber line="85"/><codeline>              </codeline>
+<linenumber line="86"/><codeline>              <highlight class="keyword">static</highlight> Obj* mspCurrent;</codeline>
+<linenumber line="87"/><codeline>              <highlight class="keyword">static</highlight> Obj* mspTop;</codeline>
+<linenumber line="88"/><codeline>              <highlight class="keyword">static</highlight> Obj* mspBottom;</codeline>
+<linenumber line="89"/><codeline>              <highlight class="keyword">static</highlight> <highlight class="keywordtype">int</highlight> mCount;</codeline>
+<linenumber line="90"/><codeline>              </codeline>
+<linenumber line="91"/><codeline>      };<highlight class="comment">// List</highlight></codeline>
+<linenumber line="92"/><codeline></codeline>
+<linenumber line="93"/><codeline>};<highlight class="comment">// Obj</highlight></codeline>
+<linenumber line="94"/><codeline></codeline>
+<linenumber line="95"/><codeline></codeline>
+<linenumber line="96"/><codeline>              }</codeline>
+<linenumber line="97"/><codeline>      }</codeline>
+<linenumber line="98"/><codeline>}</codeline>
+<linenumber line="99"/><codeline>}</codeline>
+<linenumber line="100"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_OBJ_H__848EAA84_F65D_4C04_982A_EC1A7484C2E7__INCLUDED_)</highlight></codeline>
+<linenumber line="101"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Obj.h"/>
+  </compounddef>
+  <compounddef id="Obj2D_8cpp" kind="file">
+    <compoundname>Obj2D.cpp</compoundname>
+    <includes local="no">string</includes>
+    <includes local="yes">stdio.h</includes>
+    <includes local="yes">system.h</includes>
+    <includes local="yes">console.h</includes>
+    <includes id="Obj_8h" local="yes">Obj.h</includes>
+    <includes id="Obj2D_8h" local="yes">Obj2D.h</includes>
+    <incdepgraph>
+      <node id="395">
+        <label>string</label>
+      </node>
+      <node id="400">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="398">
+        <label>console.h</label>
+      </node>
+      <node id="401">
+        <label>Obj2D.h</label>
+        <link id="Obj2D_8h-source"/>
+        <childnode id="400" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="399">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="400" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="397">
+        <label>system.h</label>
+      </node>
+      <node id="396">
+        <label>stdio.h</label>
+      </node>
+      <node id="394">
+        <label>Obj2D.cpp</label>
+        <link id="Obj2D.cpp"/>
+        <childnode id="395" relation="public-inheritance">
+        </childnode>
+        <childnode id="396" relation="public-inheritance">
+        </childnode>
+        <childnode id="397" relation="public-inheritance">
+        </childnode>
+        <childnode id="398" relation="public-inheritance">
+        </childnode>
+        <childnode id="399" relation="public-inheritance">
+        </childnode>
+        <childnode id="401" relation="public-inheritance">
+        </childnode>
+      </node>
+    </incdepgraph>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">//  \81\922\81\92A\1\\81~\e\?\E?dEoEY\81ây\\81P\e\1</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  IuIo:</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// $Log: Obj2D.cpp,v $</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:49:33  fujiwara</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// 2001/01/29 \a\a\e!?\e!?\\81P\81C!?DIN\e\?\O\e\e?IAE2A </highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#ifndef _BORLAND</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define _CRTDBG_MAP_ALLOC</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &lt;stdlib.h&gt;</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor">#include &lt;crtdbg.h&gt;</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor">#include &lt;string&gt;</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="preprocessor">#include &quot;stdio.h&quot;</highlight></codeline>
+<linenumber line="29"/><codeline></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor">#include &quot;system.h&quot;</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor">#include &quot;console.h&quot;</highlight></codeline>
+<linenumber line="32"/><codeline></codeline>
+<linenumber line="33"/><codeline><highlight class="preprocessor">#include &quot;Obj.h&quot;</highlight></codeline>
+<linenumber line="34"/><codeline><highlight class="preprocessor">#include &quot;Obj2D.h&quot;</highlight></codeline>
+<linenumber line="35"/><codeline></codeline>
+<linenumber line="37"/><codeline><highlight class="comment">// 1?AU/?AIC</highlight></codeline>
+<linenumber line="39"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="40"/><codeline><highlight class="keyword">using</highlight> <highlight class="keyword">namespace </highlight>sf::system::console;</codeline>
+<linenumber line="41"/><codeline></codeline>
+<linenumber line="42"/><codeline></codeline>
+<linenumber line="43"/><codeline><highlight class="comment">//----------------------------------------------------------------------------</highlight></codeline>
+<linenumber line="44"/><codeline><highlight class="comment">// Obj2D Class</highlight></codeline>
+<linenumber line="45"/><codeline><highlight class="comment">//----------------------------------------------------------------------------</highlight></codeline>
+<linenumber line="46"/><codeline></codeline>
+<linenumber line="47"/><codeline><highlight class="comment">// \3\o\1\E\e\\81P\? -------------------------------------------------------------</highlight></codeline>
+<linenumber line="48"/><codeline></codeline>
+<linenumber line="49"/><codeline>Obj2D::Obj2D()</codeline>
+<linenumber line="50"/><codeline>{</codeline>
+<linenumber line="51"/><codeline>      mbVisibility = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="52"/><codeline>      mIndex = 0;</codeline>
+<linenumber line="53"/><codeline>      mpNext = mpPrevious = NULL;</codeline>
+<linenumber line="54"/><codeline>      mRad = mAngle = 0.0f;</codeline>
+<linenumber line="55"/><codeline>      mScalingX = mScalingY = 1.0f;</codeline>
+<linenumber line="56"/><codeline>      mX = mY = 0.0f;</codeline>
+<linenumber line="57"/><codeline>      mZ = 0.0f;</codeline>
+<linenumber line="58"/><codeline>      mbReverseX = mbReverseY = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="59"/><codeline>      mpSprite = NULL;</codeline>
+<linenumber line="60"/><codeline></codeline>
+<linenumber line="61"/><codeline>}<highlight class="comment">// Obj2D</highlight></codeline>
+<linenumber line="62"/><codeline></codeline>
+<linenumber line="63"/><codeline><highlight class="comment">// \C\1\E\e\\81P\? ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="64"/><codeline>Obj2D::~Obj2D()</codeline>
+<linenumber line="65"/><codeline>{</codeline>
+<linenumber line="66"/><codeline>}<highlight class="comment">// ~Obj2D</highlight></codeline>
+<linenumber line="67"/><codeline></codeline>
+<linenumber line="68"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Obj2D.cpp"/>
+  </compounddef>
+  <compounddef id="Obj2D_8h" kind="file">
+    <compoundname>Obj2D.h</compoundname>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includedby id="AbstractSprite_8cpp" local="yes">AbstractSprite.cpp</includedby>
+    <includedby id="BackGround_8cpp" local="yes">BackGround.cpp</includedby>
+    <includedby id="ConsoleImpl_8cpp" local="yes">ConsoleImpl.cpp</includedby>
+    <includedby id="Obj2D_8cpp" local="yes">Obj2D.cpp</includedby>
+    <includedby id="ObjQuadrangle_8cpp" local="yes">ObjQuadrangle.cpp</includedby>
+    <includedby id="ObjRectangle_8cpp" local="yes">ObjRectangle.cpp</includedby>
+    <includedby id="Sprite2D_8cpp" local="yes">Sprite2D.cpp</includedby>
+    <incdepgraph>
+      <node id="404">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="403">
+        <label>Obj2D.h</label>
+        <link id="Obj2D.h"/>
+        <childnode id="404" relation="public-inheritance">
+        </childnode>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="411">
+        <label>ObjRectangle.cpp</label>
+        <link id="ObjRectangle_8cpp-source"/>
+      </node>
+      <node id="412">
+        <label>Sprite2D.cpp</label>
+        <link id="Sprite2D_8cpp-source"/>
+      </node>
+      <node id="407">
+        <label>BackGround.cpp</label>
+        <link id="BackGround_8cpp-source"/>
+      </node>
+      <node id="408">
+        <label>ConsoleImpl.cpp</label>
+        <link id="ConsoleImpl_8cpp-source"/>
+      </node>
+      <node id="410">
+        <label>ObjQuadrangle.cpp</label>
+        <link id="ObjQuadrangle_8cpp-source"/>
+      </node>
+      <node id="405">
+        <label>Obj2D.h</label>
+        <link id="Obj2D.h"/>
+        <childnode id="406" relation="public-inheritance">
+        </childnode>
+        <childnode id="407" relation="public-inheritance">
+        </childnode>
+        <childnode id="408" relation="public-inheritance">
+        </childnode>
+        <childnode id="409" relation="public-inheritance">
+        </childnode>
+        <childnode id="410" relation="public-inheritance">
+        </childnode>
+        <childnode id="411" relation="public-inheritance">
+        </childnode>
+        <childnode id="412" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="406">
+        <label>AbstractSprite.cpp</label>
+        <link id="AbstractSprite_8cpp-source"/>
+      </node>
+      <node id="409">
+        <label>Obj2D.cpp</label>
+        <link id="Obj2D_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console">sf::system::console</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="Obj2D_8h_1a0" virt="normal" prot="public">
+        <name>OBJ2D</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj2D.h" line="24" bodystart="24" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// Obj.h: Obj \\81P\e\1?I\?\o\?!?\O\\81\98\?\1</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">// $Log: Obj2D.h,v $</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// Revision 1.2  2001/10/28 21:35:56  fujiwara</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">// Revision 1.3  2001/07/09 20:30:09  fujiwara</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:49:33  fujiwara</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="22"/><codeline></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor">#if !defined(OBJ2D)</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define OBJ2D</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="preprocessor"></highlight><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="30"/><codeline><highlight class="keyword">namespace </highlight>sf {</codeline>
+<linenumber line="31"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="32"/><codeline>              <highlight class="keyword">namespace </highlight>console {</codeline>
+<linenumber line="33"/><codeline></codeline>
+<linenumber line="34"/><codeline><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight></codeline>
+<linenumber line="35"/><codeline></codeline>
+<linenumber line="36"/><codeline><highlight class="comment">// Obj ------------------------------------------------------------------------</highlight></codeline>
+<linenumber line="37"/><codeline><highlight class="keyword">class </highlight>SFDLL Obj2D : <highlight class="keyword">public</highlight> Obj</codeline>
+<linenumber line="38"/><codeline>{</codeline>
+<linenumber line="39"/><codeline><highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="40"/><codeline>      Obj2D();</codeline>
+<linenumber line="41"/><codeline>      <highlight class="keyword">virtual</highlight> ~Obj2D();</codeline>
+<linenumber line="42"/><codeline></codeline>
+<linenumber line="43"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> x()<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mX;};</codeline>
+<linenumber line="44"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight>  x(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value) { mX = value;}; </codeline>
+<linenumber line="45"/><codeline>      </codeline>
+<linenumber line="46"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight>    y()<highlight class="keyword">  const </highlight>{ <highlight class="keywordflow">return</highlight> mY;};</codeline>
+<linenumber line="47"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight>  y(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value) { mY = value;}; </codeline>
+<linenumber line="48"/><codeline>      </codeline>
+<linenumber line="49"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> z()<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mZ;};</codeline>
+<linenumber line="50"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight>  z(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value) { mZ = value;List::deleteObj(<highlight class="keyword">this</highlight>); List::insertObj(<highlight class="keyword">this</highlight>);};</codeline>
+<linenumber line="51"/><codeline>      </codeline>
+<linenumber line="52"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> angle()<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mAngle;};</codeline>
+<linenumber line="53"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight>  angle(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value) { mAngle = value;};</codeline>
+<linenumber line="54"/><codeline>      </codeline>
+<linenumber line="55"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> scalingX()<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mScalingX;}; </codeline>
+<linenumber line="56"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> scalingX(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value) { mScalingX = value;}; </codeline>
+<linenumber line="57"/><codeline>      </codeline>
+<linenumber line="58"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> scalingY()<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mScalingY;}; </codeline>
+<linenumber line="59"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> scalingY(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value) { mScalingY = value;}; </codeline>
+<linenumber line="60"/><codeline></codeline>
+<linenumber line="61"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> reverseX()<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mbReverseX;}; </codeline>
+<linenumber line="62"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> reverseX(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> value) { mbReverseX = value;}; </codeline>
+<linenumber line="63"/><codeline>      </codeline>
+<linenumber line="64"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> reverseY()<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mbReverseY;};</codeline>
+<linenumber line="65"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> reverseY(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> value) { mbReverseY = value;}</codeline>
+<linenumber line="66"/><codeline>      </codeline>
+<linenumber line="67"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> drawMode(<highlight class="keyword">const</highlight> <ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref> value) { mDrawMode = value;};</codeline>
+<linenumber line="68"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref> drawMode()<highlight class="keyword"> const  </highlight>{<highlight class="keywordflow">return</highlight> mDrawMode;}</codeline>
+<linenumber line="69"/><codeline>      </codeline>
+<linenumber line="70"/><codeline>      <highlight class="comment">// \1\\81~\e\?\E?I\\81\91\E\i\1 //</highlight></codeline>
+<linenumber line="71"/><codeline>      <highlight class="keyword">virtual</highlight> sprite::Sprite * <highlight class="keyword">const</highlight> sprite()<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mpSprite;};</codeline>
+<linenumber line="72"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> sprite(sprite::Sprite* <highlight class="keyword">const</highlight> value){ mpSprite = value;};</codeline>
+<linenumber line="73"/><codeline></codeline>
+<linenumber line="74"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> index()<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mIndex;};</codeline>
+<linenumber line="75"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> index(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> value) { mIndex = value;};</codeline>
+<linenumber line="76"/><codeline></codeline>
+<linenumber line="77"/><codeline>      </codeline>
+<linenumber line="78"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> visibility()<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mbVisibility;};</codeline>
+<linenumber line="79"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> visibility(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> value){ mbVisibility = value;};</codeline>
+<linenumber line="80"/><codeline>      </codeline>
+<linenumber line="81"/><codeline>      <highlight class="keyword">virtual</highlight> Obj * <highlight class="keyword">const</highlight> previous()  <highlight class="keyword">const</highlight> {<highlight class="keywordflow">return</highlight> mpPrevious;};</codeline>
+<linenumber line="82"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> previous(Obj * <highlight class="keyword">const</highlight> value){mpPrevious = value;};</codeline>
+<linenumber line="83"/><codeline>      </codeline>
+<linenumber line="84"/><codeline>      <highlight class="keyword">virtual</highlight> Obj * <highlight class="keyword">const</highlight> next()<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mpNext;};</codeline>
+<linenumber line="85"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> next(Obj * <highlight class="keyword">const</highlight> value){mpNext = value;};</codeline>
+<linenumber line="86"/><codeline></codeline>
+<linenumber line="87"/><codeline><highlight class="keyword">private</highlight>:</codeline>
+<linenumber line="88"/><codeline></codeline>
+<linenumber line="89"/><codeline>      <highlight class="keywordtype">float</highlight> mX,mY,mZ,mRad,mAngle;</codeline>
+<linenumber line="90"/><codeline>      <highlight class="keywordtype">float</highlight> mScalingX,mScalingY;</codeline>
+<linenumber line="91"/><codeline>      <highlight class="keywordtype">bool</highlight> mbVisibility;</codeline>
+<linenumber line="92"/><codeline>      <highlight class="keywordtype">bool</highlight> mbReverseX;</codeline>
+<linenumber line="93"/><codeline>      <highlight class="keywordtype">bool</highlight> mbReverseY;</codeline>
+<linenumber line="94"/><codeline>      </codeline>
+<linenumber line="95"/><codeline>      sprite::Sprite *mpSprite;</codeline>
+<linenumber line="96"/><codeline>      <highlight class="keywordtype">int</highlight> mIndex;</codeline>
+<linenumber line="97"/><codeline></codeline>
+<linenumber line="98"/><codeline>      <ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref> mDrawMode;</codeline>
+<linenumber line="99"/><codeline>      Obj* mpPrevious;</codeline>
+<linenumber line="100"/><codeline>     Obj* mpNext;</codeline>
+<linenumber line="101"/><codeline></codeline>
+<linenumber line="102"/><codeline>};<highlight class="comment">// Obj</highlight></codeline>
+<linenumber line="103"/><codeline></codeline>
+<linenumber line="104"/><codeline></codeline>
+<linenumber line="105"/><codeline></codeline>
+<linenumber line="106"/><codeline>             }</codeline>
+<linenumber line="107"/><codeline>     }</codeline>
+<linenumber line="108"/><codeline>}</codeline>
+<linenumber line="109"/><codeline>}</codeline>
+<linenumber line="110"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_OBJ_H__848EAA84_F65D_4C04_982A_EC1A7484C2E7__INCLUDED_)</highlight></codeline>
+<linenumber line="111"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Obj2D.h"/>
+  </compounddef>
+  <compounddef id="Obj3D_8cpp" kind="file">
+    <compoundname>Obj3D.cpp</compoundname>
+    <includes id="sfdebug_8h" local="yes">sfdebug.h</includes>
+    <includes local="no">string</includes>
+    <includes local="yes">stdio.h</includes>
+    <includes local="yes">math.h</includes>
+    <includes local="yes">system.h</includes>
+    <includes local="yes">console.h</includes>
+    <includes id="Obj3D_8h" local="yes">Obj3D.h</includes>
+    <incdepgraph>
+      <node id="415">
+        <label>string</label>
+      </node>
+      <node id="414">
+        <label>sfdebug.h</label>
+        <link id="sfdebug_8h"/>
+      </node>
+      <node id="421">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="419">
+        <label>console.h</label>
+      </node>
+      <node id="420">
+        <label>Obj3D.h</label>
+        <link id="Obj3D_8h-source"/>
+        <childnode id="421" relation="public-inheritance">
+        </childnode>
+        <childnode id="422" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="417">
+        <label>math.h</label>
+      </node>
+      <node id="413">
+        <label>Obj3D.cpp</label>
+        <link id="Obj3D.cpp"/>
+        <childnode id="414" relation="public-inheritance">
+        </childnode>
+        <childnode id="415" relation="public-inheritance">
+        </childnode>
+        <childnode id="416" relation="public-inheritance">
+        </childnode>
+        <childnode id="417" relation="public-inheritance">
+        </childnode>
+        <childnode id="418" relation="public-inheritance">
+        </childnode>
+        <childnode id="419" relation="public-inheritance">
+        </childnode>
+        <childnode id="420" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="422">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="421" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="418">
+        <label>system.h</label>
+      </node>
+      <node id="416">
+        <label>stdio.h</label>
+      </node>
+    </incdepgraph>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// Obj3D.cpp: Obj3D \\81P\e\1?I\?\o\\81~\e\a\o\A!?\\81E\c\o</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  IuIo!\81\98</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// $Log: Obj3D.cpp,v $</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// Revision 1.4  2001/07/09 20:30:09  fujiwara</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// Revision 1.3  2001/07/01 21:30:34  fujiwara</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// \a\a\e\e!?\\81P\A\\81\98\A\\81P\81C\81áA??\81E</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:49:33  fujiwara</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment">#pragma warning( disable : 4786 )  //STL?I\81EU1d3\81\8b?\81E</highlight></codeline>
+<linenumber line="23"/><codeline></codeline>
+<linenumber line="24"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="sfdebug_8h">sfdebug.h</ref>&quot;</highlight></codeline>
+<linenumber line="26"/><codeline></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor">#include &lt;string&gt;</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="preprocessor">#include &quot;stdio.h&quot;</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="preprocessor">#include &quot;math.h&quot;</highlight></codeline>
+<linenumber line="30"/><codeline></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor">#include &quot;system.h&quot;</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor">#include &quot;console.h&quot;</highlight></codeline>
+<linenumber line="33"/><codeline></codeline>
+<linenumber line="34"/><codeline><highlight class="preprocessor">#include &quot;Obj3D.h&quot;</highlight></codeline>
+<linenumber line="35"/><codeline></codeline>
+<linenumber line="37"/><codeline><highlight class="comment">// 1?AU/?AIC</highlight></codeline>
+<linenumber line="39"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="40"/><codeline><highlight class="keyword">using</highlight> <highlight class="keyword">namespace </highlight>sf::system::console;</codeline>
+<linenumber line="41"/><codeline></codeline>
+<linenumber line="42"/><codeline>Obj3D::Obj3D()</codeline>
+<linenumber line="43"/><codeline>{</codeline>
+<linenumber line="44"/><codeline>      mX = mY = mZ = 0.0f;</codeline>
+<linenumber line="45"/><codeline>      mAngleX = mAngleY = mAngleZ = 0.0f;</codeline>
+<linenumber line="46"/><codeline>      mScalingX = mScalingY = mScalingZ = 1.0f;</codeline>
+<linenumber line="47"/><codeline>      mRotXSin = mRotYSin = mRotZSin = sinf(0.0f); </codeline>
+<linenumber line="48"/><codeline>      mRotXCos = mRotYCos = mRotZCos = cosf(0.0f); </codeline>
+<linenumber line="49"/><codeline>      </codeline>
+<linenumber line="50"/><codeline>      mSpaceX = mSpaceY = mSpaceZ = 0.0f;</codeline>
+<linenumber line="51"/><codeline>      </codeline>
+<linenumber line="52"/><codeline>      mbVisibility = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="53"/><codeline>      mIndex = 0;</codeline>
+<linenumber line="54"/><codeline>      mpNext = mpPrevious = NULL;</codeline>
+<linenumber line="55"/><codeline>      mDrawMode = <ref idref="namespacesf_1_1system_1_1console_1a12a3">DRAW_TRANS</ref>;</codeline>
+<linenumber line="56"/><codeline>      mpSprite = NULL;</codeline>
+<linenumber line="57"/><codeline>}</codeline>
+<linenumber line="58"/><codeline></codeline>
+<linenumber line="59"/><codeline>Obj3D::~Obj3D()</codeline>
+<linenumber line="60"/><codeline>{;</codeline>
+<linenumber line="61"/><codeline>}</codeline>
+<linenumber line="62"/><codeline></codeline>
+<linenumber line="63"/><codeline><highlight class="comment">// XoAE\81C !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="64"/><codeline><highlight class="keywordtype">void</highlight> Obj3D::x(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value)</codeline>
+<linenumber line="65"/><codeline>{</codeline>
+<linenumber line="66"/><codeline>      mX = value;</codeline>
+<linenumber line="67"/><codeline>      mSpaceX = value * 2.0f / (float)screen::HEIGHT;</codeline>
+<linenumber line="68"/><codeline>}<highlight class="comment">// x</highlight></codeline>
+<linenumber line="69"/><codeline></codeline>
+<linenumber line="70"/><codeline><highlight class="comment">// XoAE\81C !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="71"/><codeline><highlight class="keywordtype">void</highlight> Obj3D::y(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value)</codeline>
+<linenumber line="72"/><codeline>{</codeline>
+<linenumber line="73"/><codeline>      mY = value;</codeline>
+<linenumber line="74"/><codeline>      mSpaceY = - value * 2.0f / (float)screen::HEIGHT;</codeline>
+<linenumber line="75"/><codeline>}<highlight class="comment">// x</highlight></codeline>
+<linenumber line="76"/><codeline></codeline>
+<linenumber line="77"/><codeline><highlight class="comment">// XoAE\81C !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="78"/><codeline><highlight class="keywordtype">void</highlight> Obj3D::z(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value)</codeline>
+<linenumber line="79"/><codeline>{</codeline>
+<linenumber line="80"/><codeline>      mSpaceZ = mZ =  value;</codeline>
+<linenumber line="81"/><codeline>      List::deleteObj(<highlight class="keyword">this</highlight>);</codeline>
+<linenumber line="82"/><codeline>      List::insertObj(<highlight class="keyword">this</highlight>);</codeline>
+<linenumber line="83"/><codeline></codeline>
+<linenumber line="84"/><codeline>      <highlight class="comment">//mSpaceZ = value * 2.0f / (float)screen::HEIGHT; </highlight></codeline>
+<linenumber line="85"/><codeline>}<highlight class="comment">// x</highlight></codeline>
+<linenumber line="86"/><codeline></codeline>
+<linenumber line="87"/><codeline><highlight class="comment">// X3NAU !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="88"/><codeline><highlight class="keywordtype">void</highlight> Obj3D::angleX(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value)</codeline>
+<linenumber line="89"/><codeline>{</codeline>
+<linenumber line="90"/><codeline>      mAngleX = value;</codeline>
+<linenumber line="91"/><codeline>      mRotXCos = cosf(value);</codeline>
+<linenumber line="92"/><codeline>      mRotXSin = sinf(value);</codeline>
+<linenumber line="93"/><codeline>}<highlight class="comment">// AngleX()</highlight></codeline>
+<linenumber line="94"/><codeline></codeline>
+<linenumber line="95"/><codeline><highlight class="comment">// Y3NAU !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="96"/><codeline><highlight class="keywordtype">void</highlight> Obj3D::angleY(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value)</codeline>
+<linenumber line="97"/><codeline>{</codeline>
+<linenumber line="98"/><codeline>      mAngleY = value;</codeline>
+<linenumber line="99"/><codeline>      mRotYCos = cosf(value);</codeline>
+<linenumber line="100"/><codeline>     mRotYSin = sinf(value);</codeline>
+<linenumber line="101"/><codeline>}<highlight class="comment">// AngleY()</highlight></codeline>
+<linenumber line="102"/><codeline></codeline>
+<linenumber line="103"/><codeline><highlight class="comment">// X3NAU !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="104"/><codeline><highlight class="keywordtype">void</highlight> Obj3D::angleZ(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value)</codeline>
+<linenumber line="105"/><codeline>{</codeline>
+<linenumber line="106"/><codeline>     mAngleZ = value;</codeline>
+<linenumber line="107"/><codeline>     mRotZCos = cosf(value);</codeline>
+<linenumber line="108"/><codeline>     mRotZSin = sinf(value);</codeline>
+<linenumber line="109"/><codeline>}<highlight class="comment">// AngleZ()</highlight></codeline>
+<linenumber line="110"/><codeline></codeline>
+<linenumber line="111"/><codeline></codeline>
+<linenumber line="112"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Obj3D.cpp"/>
+  </compounddef>
+  <compounddef id="Obj3D_8h" kind="file">
+    <compoundname>Obj3D.h</compoundname>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includes id="Obj_8h" local="yes">Obj.h</includes>
+    <includedby id="AbstractSprite_8cpp" local="yes">AbstractSprite.cpp</includedby>
+    <includedby id="Obj3DL_8h" local="yes">Obj3DL.h</includedby>
+    <includedby id="ConsoleImpl_8cpp" local="yes">ConsoleImpl.cpp</includedby>
+    <includedby id="Obj3D_8cpp" local="yes">Obj3D.cpp</includedby>
+    <includedby id="Obj3DL_8cpp" local="yes">Obj3DL.cpp</includedby>
+    <includedby id="Sprite3D_8cpp" local="yes">Sprite3D.cpp</includedby>
+    <includedby id="SpriteMesh_8cpp" local="yes">SpriteMesh.cpp</includedby>
+    <incdepgraph>
+      <node id="425">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="424">
+        <label>Obj3D.h</label>
+        <link id="Obj3D.h"/>
+        <childnode id="425" relation="public-inheritance">
+        </childnode>
+        <childnode id="426" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="426">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="425" relation="public-inheritance">
+        </childnode>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="430">
+        <label>ConsoleImpl.cpp</label>
+        <link id="ConsoleImpl_8cpp-source"/>
+      </node>
+      <node id="433">
+        <label>SpriteMesh.cpp</label>
+        <link id="SpriteMesh_8cpp-source"/>
+      </node>
+      <node id="427">
+        <label>Obj3D.h</label>
+        <link id="Obj3D.h"/>
+        <childnode id="428" relation="public-inheritance">
+        </childnode>
+        <childnode id="429" relation="public-inheritance">
+        </childnode>
+        <childnode id="430" relation="public-inheritance">
+        </childnode>
+        <childnode id="434" relation="public-inheritance">
+        </childnode>
+        <childnode id="431" relation="public-inheritance">
+        </childnode>
+        <childnode id="432" relation="public-inheritance">
+        </childnode>
+        <childnode id="433" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="429">
+        <label>Obj3DL.h</label>
+        <link id="Obj3DL_8h-source"/>
+        <childnode id="428" relation="public-inheritance">
+        </childnode>
+        <childnode id="430" relation="public-inheritance">
+        </childnode>
+        <childnode id="431" relation="public-inheritance">
+        </childnode>
+        <childnode id="432" relation="public-inheritance">
+        </childnode>
+        <childnode id="433" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="434">
+        <label>Obj3D.cpp</label>
+        <link id="Obj3D_8cpp-source"/>
+      </node>
+      <node id="431">
+        <label>Obj3DL.cpp</label>
+        <link id="Obj3DL_8cpp-source"/>
+      </node>
+      <node id="428">
+        <label>AbstractSprite.cpp</label>
+        <link id="AbstractSprite_8cpp-source"/>
+      </node>
+      <node id="432">
+        <label>Sprite3D.cpp</label>
+        <link id="Sprite3D_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console">sf::system::console</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="Obj3D_8h_1a0" virt="normal" prot="public">
+        <name>AFX_OBJ3D_H__6F81DB0E_4F49_491D_9D09_E729679CE97A__INCLUDED_</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3D.h" line="25" bodystart="25" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// Obj3D.h: Obj3D \\81P\e\1?I\?\o\?!?\O\\81\98\?\1</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">// ?\81~?e!??o?\83Ê?o?I\e\?\O\e\e?o\81â21I?E?\81E?AoiAR</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">//  IuIo!\81\98</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// $Log: Obj3D.h,v $</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// Revision 1.2  2001/10/28 21:35:56  fujiwara</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// Revision 1.3  2001/07/09 20:30:09  fujiwara</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:49:33  fujiwara</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor">#if !defined(AFX_OBJ3D_H__6F81DB0E_4F49_491D_9D09_E729679CE97A__INCLUDED_)</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_OBJ3D_H__6F81DB0E_4F49_491D_9D09_E729679CE97A__INCLUDED_</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor">#include &quot;Obj.h&quot;</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="33"/><codeline><highlight class="keyword">namespace </highlight>sf{</codeline>
+<linenumber line="34"/><codeline>      <highlight class="keyword">namespace </highlight>system{</codeline>
+<linenumber line="35"/><codeline>              <highlight class="keyword">namespace </highlight>console {</codeline>
+<linenumber line="36"/><codeline></codeline>
+<linenumber line="37"/><codeline><highlight class="keyword">class </highlight>SFDLL Obj3D : <highlight class="keyword">public</highlight> Obj  </codeline>
+<linenumber line="38"/><codeline>{</codeline>
+<linenumber line="39"/><codeline>      <highlight class="comment">// LIFECYCLE //</highlight></codeline>
+<linenumber line="40"/><codeline><highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="41"/><codeline>      Obj3D();</codeline>
+<linenumber line="42"/><codeline>      <highlight class="keyword">virtual</highlight> ~Obj3D();</codeline>
+<linenumber line="43"/><codeline>      <highlight class="comment">// OPERATORS //</highlight></codeline>
+<linenumber line="44"/><codeline>      <highlight class="comment">// OPERATIONS //</highlight></codeline>
+<linenumber line="45"/><codeline>      </codeline>
+<linenumber line="46"/><codeline>      <highlight class="comment">// ACCESS //</highlight></codeline>
+<linenumber line="47"/><codeline>      <highlight class="comment">// X oAE\81C</highlight></codeline>
+<linenumber line="48"/><codeline>      <highlight class="keywordtype">void</highlight> x(<highlight class="keywordtype">float</highlight> value);</codeline>
+<linenumber line="49"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> x(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mX;};</codeline>
+<linenumber line="50"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> spaceX(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mSpaceX;};</codeline>
+<linenumber line="51"/><codeline>              </codeline>
+<linenumber line="52"/><codeline>      <highlight class="comment">// Y oAE\81C</highlight></codeline>
+<linenumber line="53"/><codeline>      <highlight class="keywordtype">void</highlight> y(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value);</codeline>
+<linenumber line="54"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> y(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mY;};</codeline>
+<linenumber line="55"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> spaceY(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mSpaceY;};</codeline>
+<linenumber line="56"/><codeline></codeline>
+<linenumber line="57"/><codeline>      <highlight class="comment">// Z oAE\81C</highlight></codeline>
+<linenumber line="58"/><codeline>      <highlight class="keywordtype">void</highlight>  z(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value);</codeline>
+<linenumber line="59"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight>  z(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mZ;};</codeline>
+<linenumber line="60"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> spaceZ(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mSpaceZ;};</codeline>
+<linenumber line="61"/><codeline></codeline>
+<linenumber line="62"/><codeline>      <highlight class="comment">// X2oA?</highlight></codeline>
+<linenumber line="63"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> angleX(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mAngleX;};</codeline>
+<linenumber line="64"/><codeline>      <highlight class="keywordtype">void</highlight>  angleX(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value);</codeline>
+<linenumber line="65"/><codeline></codeline>
+<linenumber line="66"/><codeline>      <highlight class="comment">// Y2oA?</highlight></codeline>
+<linenumber line="67"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> angleY(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mAngleY;};</codeline>
+<linenumber line="68"/><codeline>      <highlight class="keywordtype">void</highlight>  angleY(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value);</codeline>
+<linenumber line="69"/><codeline></codeline>
+<linenumber line="70"/><codeline>      <highlight class="comment">// Z2oA?</highlight></codeline>
+<linenumber line="71"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> angleZ(<highlight class="keywordtype">void</highlight>){<highlight class="keywordflow">return</highlight> mAngleZ;};</codeline>
+<linenumber line="72"/><codeline>      <highlight class="keywordtype">void</highlight>  angleZ(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value);</codeline>
+<linenumber line="73"/><codeline></codeline>
+<linenumber line="74"/><codeline>      <highlight class="comment">// </highlight></codeline>
+<linenumber line="75"/><codeline></codeline>
+<linenumber line="76"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> rotXCos(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mRotXCos;};</codeline>
+<linenumber line="77"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> rotXSin(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mRotXSin;};</codeline>
+<linenumber line="78"/><codeline></codeline>
+<linenumber line="79"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> rotYCos(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mRotYCos;};</codeline>
+<linenumber line="80"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> rotYSin(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mRotYSin;};</codeline>
+<linenumber line="81"/><codeline></codeline>
+<linenumber line="82"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> rotZCos(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mRotZCos;};</codeline>
+<linenumber line="83"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> rotZSin(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mRotZSin;};</codeline>
+<linenumber line="84"/><codeline></codeline>
+<linenumber line="85"/><codeline>      <highlight class="comment">// \1\\81}!?\e\o\\81\8b</highlight></codeline>
+<linenumber line="86"/><codeline></codeline>
+<linenumber line="87"/><codeline>      <highlight class="comment">// X</highlight></codeline>
+<linenumber line="88"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> scalingX(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mScalingX;};</codeline>
+<linenumber line="89"/><codeline>      <highlight class="keywordtype">void</highlight>  scalingX(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value){mScalingX = value;};</codeline>
+<linenumber line="90"/><codeline></codeline>
+<linenumber line="91"/><codeline>      <highlight class="comment">// Y</highlight></codeline>
+<linenumber line="92"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> scalingY(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mScalingY;};</codeline>
+<linenumber line="93"/><codeline>      <highlight class="keywordtype">void</highlight>  scalingY(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value){mScalingY = value;};</codeline>
+<linenumber line="94"/><codeline></codeline>
+<linenumber line="95"/><codeline>      <highlight class="comment">// Z</highlight></codeline>
+<linenumber line="96"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> scalingZ(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mScalingZ;};</codeline>
+<linenumber line="97"/><codeline>      <highlight class="keywordtype">void</highlight>  scalingZ(<highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> value){mScalingZ = value;};</codeline>
+<linenumber line="98"/><codeline></codeline>
+<linenumber line="99"/><codeline>      <highlight class="keywordtype">void</highlight> drawMode(<highlight class="keyword">const</highlight> <ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref> value) { mDrawMode = value;};</codeline>
+<linenumber line="100"/><codeline>     <highlight class="keyword">const</highlight> <ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref> drawMode()<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mDrawMode;}</codeline>
+<linenumber line="101"/><codeline>     </codeline>
+<linenumber line="102"/><codeline>     <highlight class="comment">// \1\\81~\e\?\E?I\\81\91\E\i\1 //</highlight></codeline>
+<linenumber line="103"/><codeline>     <highlight class="keyword">virtual</highlight> sprite::Sprite * <highlight class="keyword">const</highlight> sprite()<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mpSprite;};</codeline>
+<linenumber line="104"/><codeline>     <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> sprite(sprite::Sprite* <highlight class="keyword">const</highlight> value){ mpSprite = value;};</codeline>
+<linenumber line="105"/><codeline></codeline>
+<linenumber line="106"/><codeline>     <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> index()<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mIndex;};</codeline>
+<linenumber line="107"/><codeline>     <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> index(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> value) { mIndex = value;};</codeline>
+<linenumber line="108"/><codeline>     </codeline>
+<linenumber line="109"/><codeline>     <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> visibility()<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mbVisibility;};</codeline>
+<linenumber line="110"/><codeline>     <highlight class="keywordtype">void</highlight> visibility(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> value){ mbVisibility = value;};</codeline>
+<linenumber line="111"/><codeline>     </codeline>
+<linenumber line="112"/><codeline>     Obj * <highlight class="keyword">const</highlight> previous()<highlight class="keyword"> const   </highlight>{<highlight class="keywordflow">return</highlight> mpPrevious;};</codeline>
+<linenumber line="113"/><codeline>     <highlight class="keywordtype">void</highlight> previous(Obj * <highlight class="keyword">const</highlight> value){mpPrevious = value;};</codeline>
+<linenumber line="114"/><codeline>     </codeline>
+<linenumber line="115"/><codeline>     Obj * <highlight class="keyword">const</highlight> next()<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> mpNext;};</codeline>
+<linenumber line="116"/><codeline>     <highlight class="keywordtype">void</highlight> next(Obj * <highlight class="keyword">const</highlight> value){mpNext = value;};</codeline>
+<linenumber line="117"/><codeline>     <highlight class="comment">// INQUIRY //</highlight></codeline>
+<linenumber line="118"/><codeline><highlight class="keyword">private</highlight>:</codeline>
+<linenumber line="119"/><codeline>     <highlight class="comment">// \1\\81P\e!?\ooAE\81C</highlight></codeline>
+<linenumber line="120"/><codeline>     <highlight class="keywordtype">float</highlight> mX;</codeline>
+<linenumber line="121"/><codeline>     <highlight class="keywordtype">float</highlight> mY;</codeline>
+<linenumber line="122"/><codeline>     <highlight class="keywordtype">float</highlight> mZ;</codeline>
+<linenumber line="123"/><codeline></codeline>
+<linenumber line="124"/><codeline>     <highlight class="comment">// 3D\81÷o\81LOoAE\81C</highlight></codeline>
+<linenumber line="125"/><codeline>     <highlight class="keywordtype">float</highlight> mSpaceX;</codeline>
+<linenumber line="126"/><codeline>     <highlight class="keywordtype">float</highlight> mSpaceY;</codeline>
+<linenumber line="127"/><codeline>     <highlight class="keywordtype">float</highlight> mSpaceZ;</codeline>
+<linenumber line="128"/><codeline>     </codeline>
+<linenumber line="129"/><codeline>     <highlight class="keywordtype">float</highlight> mAngleX;</codeline>
+<linenumber line="130"/><codeline>     <highlight class="keywordtype">float</highlight> mAngleY;</codeline>
+<linenumber line="131"/><codeline>     <highlight class="keywordtype">float</highlight> mAngleZ;</codeline>
+<linenumber line="132"/><codeline></codeline>
+<linenumber line="133"/><codeline>     <highlight class="keywordtype">float</highlight> mRotXSin;</codeline>
+<linenumber line="134"/><codeline>     <highlight class="keywordtype">float</highlight> mRotYSin;</codeline>
+<linenumber line="135"/><codeline>     <highlight class="keywordtype">float</highlight> mRotZSin;</codeline>
+<linenumber line="136"/><codeline>     <highlight class="keywordtype">float</highlight> mRotXCos;</codeline>
+<linenumber line="137"/><codeline>     <highlight class="keywordtype">float</highlight> mRotYCos;</codeline>
+<linenumber line="138"/><codeline>     <highlight class="keywordtype">float</highlight> mRotZCos;</codeline>
+<linenumber line="139"/><codeline>     </codeline>
+<linenumber line="140"/><codeline>     <highlight class="keywordtype">float</highlight> mScalingX;</codeline>
+<linenumber line="141"/><codeline>     <highlight class="keywordtype">float</highlight> mScalingY;</codeline>
+<linenumber line="142"/><codeline>     <highlight class="keywordtype">float</highlight> mScalingZ;</codeline>
+<linenumber line="143"/><codeline>     </codeline>
+<linenumber line="144"/><codeline>     <highlight class="keywordtype">bool</highlight> mbVisibility;</codeline>
+<linenumber line="145"/><codeline>     sprite::Sprite *mpSprite;</codeline>
+<linenumber line="146"/><codeline>     <highlight class="keywordtype">int</highlight> mIndex;</codeline>
+<linenumber line="147"/><codeline>     <ref idref="namespacesf_1_1system_1_1console_1a12">DrawMode</ref> mDrawMode;</codeline>
+<linenumber line="148"/><codeline>     Obj* mpPrevious;</codeline>
+<linenumber line="149"/><codeline>     Obj* mpNext;</codeline>
+<linenumber line="150"/><codeline></codeline>
+<linenumber line="151"/><codeline>};</codeline>
+<linenumber line="152"/><codeline>             }</codeline>
+<linenumber line="153"/><codeline>     }</codeline>
+<linenumber line="154"/><codeline>}</codeline>
+<linenumber line="155"/><codeline>}</codeline>
+<linenumber line="156"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_OBJ3D_H__6F81DB0E_4F49_491D_9D09_E729679CE97A__INCLUDED_)</highlight></codeline>
+<linenumber line="157"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Obj3D.h"/>
+  </compounddef>
+  <compounddef id="Obj3DL_8cpp" kind="file">
+    <compoundname>Obj3DL.cpp</compoundname>
+    <includes id="sfdebug_8h" local="yes">sfdebug.h</includes>
+    <includes local="no">string</includes>
+    <includes local="yes">stdio.h</includes>
+    <includes local="yes">math.h</includes>
+    <includes local="yes">system.h</includes>
+    <includes local="yes">console.h</includes>
+    <includes id="Obj3D_8h" local="yes">Obj3D.h</includes>
+    <includes id="Obj3DL_8h" local="yes">Obj3DL.h</includes>
+    <incdepgraph>
+      <node id="437">
+        <label>string</label>
+      </node>
+      <node id="436">
+        <label>sfdebug.h</label>
+        <link id="sfdebug_8h"/>
+      </node>
+      <node id="443">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="441">
+        <label>console.h</label>
+      </node>
+      <node id="442">
+        <label>Obj3D.h</label>
+        <link id="Obj3D_8h-source"/>
+        <childnode id="443" relation="public-inheritance">
+        </childnode>
+        <childnode id="444" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="439">
+        <label>math.h</label>
+      </node>
+      <node id="445">
+        <label>Obj3DL.h</label>
+        <link id="Obj3DL_8h-source"/>
+        <childnode id="443" relation="public-inheritance">
+        </childnode>
+        <childnode id="442" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="444">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="443" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="435">
+        <label>Obj3DL.cpp</label>
+        <link id="Obj3DL.cpp"/>
+        <childnode id="436" relation="public-inheritance">
+        </childnode>
+        <childnode id="437" relation="public-inheritance">
+        </childnode>
+        <childnode id="438" relation="public-inheritance">
+        </childnode>
+        <childnode id="439" relation="public-inheritance">
+        </childnode>
+        <childnode id="440" relation="public-inheritance">
+        </childnode>
+        <childnode id="441" relation="public-inheritance">
+        </childnode>
+        <childnode id="442" relation="public-inheritance">
+        </childnode>
+        <childnode id="445" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="440">
+        <label>system.h</label>
+      </node>
+      <node id="438">
+        <label>stdio.h</label>
+      </node>
+    </incdepgraph>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// Obj3DL.cpp: Obj3DL \\81P\e\1?I\?\o\\81~\e\a\o\A!?\\81E\c\o</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  IuIo!\81\98</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// $Log: Obj3DL.cpp,v $</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// Revision 1.3  2001/07/01 21:30:34  fujiwara</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// \a\a\e\e!?\\81P\A\\81\98\A\\81P\81C\81áA??\81E</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:49:33  fujiwara</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">#include &quot;sfdebug.h&quot;</highlight></codeline>
+<linenumber line="20"/><codeline></codeline>
+<linenumber line="21"/><codeline><highlight class="preprocessor">#include &lt;string&gt;</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="preprocessor">#include &quot;stdio.h&quot;</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor">#include &quot;math.h&quot;</highlight></codeline>
+<linenumber line="24"/><codeline></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor">#include &quot;system.h&quot;</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor">#include &quot;console.h&quot;</highlight></codeline>
+<linenumber line="27"/><codeline></codeline>
+<linenumber line="28"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define new DEBUG_NEW</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor">#include &quot;Obj3D.h&quot;</highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="preprocessor">#include &quot;Obj3DL.h&quot;</highlight></codeline>
+<linenumber line="34"/><codeline></codeline>
+<linenumber line="36"/><codeline><highlight class="comment">// 1?AU/?AIC</highlight></codeline>
+<linenumber line="38"/><codeline><highlight class="comment">using namespace sf::system::console;</highlight></codeline>
+<linenumber line="39"/><codeline></codeline>
+<linenumber line="40"/><codeline>Obj3DL::Obj3DL() : Obj3D()</codeline>
+<linenumber line="41"/><codeline>{</codeline>
+<linenumber line="42"/><codeline>      mColor = 0xffffffff;</codeline>
+<linenumber line="43"/><codeline>      mSpecular = 0;</codeline>
+<linenumber line="44"/><codeline></codeline>
+<linenumber line="45"/><codeline>      Obj::List::insertObj(<highlight class="keyword">this</highlight>);</codeline>
+<linenumber line="46"/><codeline>}</codeline>
+<linenumber line="47"/><codeline></codeline>
+<linenumber line="48"/><codeline>Obj3DL::~Obj3DL()</codeline>
+<linenumber line="49"/><codeline>{</codeline>
+<linenumber line="50"/><codeline>      Obj::List::deleteObj(<highlight class="keyword">this</highlight>);</codeline>
+<linenumber line="51"/><codeline>}</codeline>
+<linenumber line="52"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Obj3DL.cpp"/>
+  </compounddef>
+  <compounddef id="Obj3DL_8h" kind="file">
+    <compoundname>Obj3DL.h</compoundname>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includes id="Obj3D_8h" local="yes">Obj3D.h</includes>
+    <includedby id="AbstractSprite_8cpp" local="yes">AbstractSprite.cpp</includedby>
+    <includedby id="ConsoleImpl_8cpp" local="yes">ConsoleImpl.cpp</includedby>
+    <includedby id="Obj3DL_8cpp" local="yes">Obj3DL.cpp</includedby>
+    <includedby id="Sprite3D_8cpp" local="yes">Sprite3D.cpp</includedby>
+    <includedby id="SpriteMesh_8cpp" local="yes">SpriteMesh.cpp</includedby>
+    <incdepgraph>
+      <node id="448">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="449">
+        <label>Obj3D.h</label>
+        <link id="Obj3D_8h-source"/>
+        <childnode id="448" relation="public-inheritance">
+        </childnode>
+        <childnode id="450" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="447">
+        <label>Obj3DL.h</label>
+        <link id="Obj3DL.h"/>
+        <childnode id="448" relation="public-inheritance">
+        </childnode>
+        <childnode id="449" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="450">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="448" relation="public-inheritance">
+        </childnode>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="453">
+        <label>ConsoleImpl.cpp</label>
+        <link id="ConsoleImpl_8cpp-source"/>
+      </node>
+      <node id="456">
+        <label>SpriteMesh.cpp</label>
+        <link id="SpriteMesh_8cpp-source"/>
+      </node>
+      <node id="451">
+        <label>Obj3DL.h</label>
+        <link id="Obj3DL.h"/>
+        <childnode id="452" relation="public-inheritance">
+        </childnode>
+        <childnode id="453" relation="public-inheritance">
+        </childnode>
+        <childnode id="454" relation="public-inheritance">
+        </childnode>
+        <childnode id="455" relation="public-inheritance">
+        </childnode>
+        <childnode id="456" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="454">
+        <label>Obj3DL.cpp</label>
+        <link id="Obj3DL_8cpp-source"/>
+      </node>
+      <node id="452">
+        <label>AbstractSprite.cpp</label>
+        <link id="AbstractSprite_8cpp-source"/>
+      </node>
+      <node id="455">
+        <label>Sprite3D.cpp</label>
+        <link id="Sprite3D_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console">sf::system::console</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="Obj3DL_8h_1a0" virt="normal" prot="public">
+        <name>AFX_OBJ3DL_H__D55D6FF5_0A23_4FDD_A6A5_4C2EFE1B6E28__INCLUDED_</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Obj3DL.h" line="22" bodystart="22" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// Obj3DL.h: Obj3DL \\81P\e\1?I\?\o\?!?\O\\81\98\?\1</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">// \e\?\A\\81\92\o\\81\8boN?sI?\E\e\o\1\O\c!?\aAoAA?I\1\\81~\e\?\E</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">//  IuIo!\81\98</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// $Log: Obj3DL.h,v $</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// Revision 1.2  2001/10/28 21:35:56  fujiwara</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:49:33  fujiwara</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="preprocessor">#if !defined(AFX_OBJ3DL_H__D55D6FF5_0A23_4FDD_A6A5_4C2EFE1B6E28__INCLUDED_)</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_OBJ3DL_H__D55D6FF5_0A23_4FDD_A6A5_4C2EFE1B6E28__INCLUDED_</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="preprocessor">#include &quot;Obj3D.h&quot;</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="30"/><codeline><highlight class="keyword">namespace </highlight>sf {</codeline>
+<linenumber line="31"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="32"/><codeline>              <highlight class="keyword">namespace </highlight>console {</codeline>
+<linenumber line="33"/><codeline><highlight class="keyword">class </highlight>SFDLL Obj3DL : <highlight class="keyword">public</highlight> Obj3D  </codeline>
+<linenumber line="34"/><codeline>{</codeline>
+<linenumber line="35"/><codeline><highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="36"/><codeline>      Obj3DL();</codeline>
+<linenumber line="37"/><codeline>      <highlight class="keyword">virtual</highlight> ~Obj3DL();</codeline>
+<linenumber line="38"/><codeline></codeline>
+<linenumber line="39"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> draw(){<highlight class="keywordflow">if</highlight>(visibility()) sprite()-&gt;draw(<highlight class="keyword">this</highlight>);};</codeline>
+<linenumber line="40"/><codeline>      </codeline>
+<linenumber line="41"/><codeline>      <highlight class="keyword">const</highlight> COLOR color()<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mColor;}; </codeline>
+<linenumber line="42"/><codeline>      <highlight class="keywordtype">void</highlight>  color(<highlight class="keyword">const</highlight> COLOR value) { mColor = value;}; </codeline>
+<linenumber line="43"/><codeline>                              </codeline>
+<linenumber line="44"/><codeline>      <highlight class="keyword">const</highlight> COLOR specular()<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mSpecular;}; </codeline>
+<linenumber line="45"/><codeline>      <highlight class="keywordtype">void</highlight>  specular(<highlight class="keyword">const</highlight> COLOR value) { mSpecular = value;}; </codeline>
+<linenumber line="46"/><codeline></codeline>
+<linenumber line="47"/><codeline><highlight class="keyword">private</highlight>:</codeline>
+<linenumber line="48"/><codeline>      COLOR mColor;</codeline>
+<linenumber line="49"/><codeline>      COLOR mSpecular;</codeline>
+<linenumber line="50"/><codeline>};</codeline>
+<linenumber line="51"/><codeline>              }</codeline>
+<linenumber line="52"/><codeline>      }</codeline>
+<linenumber line="53"/><codeline>}</codeline>
+<linenumber line="54"/><codeline>}</codeline>
+<linenumber line="55"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_OBJ3DL_H__D55D6FF5_0A23_4FDD_A6A5_4C2EFE1B6E28__INCLUDED_)</highlight></codeline>
+<linenumber line="56"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Obj3DL.h"/>
+  </compounddef>
+  <compounddef id="ObjQuadrangle_8cpp" kind="file">
+    <compoundname>ObjQuadrangle.cpp</compoundname>
+    <includes id="sfdebug_8h" local="yes">sfdebug.h</includes>
+    <includes local="no">string</includes>
+    <includes local="yes">stdio.h</includes>
+    <includes local="yes">system.h</includes>
+    <includes local="yes">console.h</includes>
+    <includes id="Obj_8h" local="yes">Obj.h</includes>
+    <includes id="Obj2D_8h" local="yes">Obj2D.h</includes>
+    <includes id="ObjQuadrangle_8h" local="yes">ObjQuadrangle.h</includes>
+    <incdepgraph>
+      <node id="459">
+        <label>string</label>
+      </node>
+      <node id="458">
+        <label>sfdebug.h</label>
+        <link id="sfdebug_8h"/>
+      </node>
+      <node id="464">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="457">
+        <label>ObjQuadrangle.cpp</label>
+        <link id="ObjQuadrangle.cpp"/>
+        <childnode id="458" relation="public-inheritance">
+        </childnode>
+        <childnode id="459" relation="public-inheritance">
+        </childnode>
+        <childnode id="460" relation="public-inheritance">
+        </childnode>
+        <childnode id="461" relation="public-inheritance">
+        </childnode>
+        <childnode id="462" relation="public-inheritance">
+        </childnode>
+        <childnode id="463" relation="public-inheritance">
+        </childnode>
+        <childnode id="465" relation="public-inheritance">
+        </childnode>
+        <childnode id="466" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="462">
+        <label>console.h</label>
+      </node>
+      <node id="465">
+        <label>Obj2D.h</label>
+        <link id="Obj2D_8h-source"/>
+        <childnode id="464" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="463">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="464" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="466">
+        <label>ObjQuadrangle.h</label>
+        <link id="ObjQuadrangle_8h-source"/>
+        <childnode id="464" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="461">
+        <label>system.h</label>
+      </node>
+      <node id="460">
+        <label>stdio.h</label>
+      </node>
+    </incdepgraph>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">// ObjQuadrangle.cpp: ObjQuadrangle \\81P\e\1?I\?\o\\81~\e\a\o\A!?\\81E\c\o</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">//  IuIo:</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">// $Log: ObjQuadrangle.cpp,v $</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// Revision 1.3  2001/07/01 21:30:34  fujiwara</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// \a\a\e\e!?\\81P\A\\81\98\A\\81P\81C\81áA??\81E</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:49:24  fujiwara</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">// 2001/01/29 \a\a\e!?\e!?\\81P\81C!?DIN\e\?\O\e\e?IAE2A </highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="sfdebug_8h">sfdebug.h</ref>&quot;</highlight></codeline>
+<linenumber line="22"/><codeline></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor">#include &lt;string&gt;</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor">#include &quot;stdio.h&quot;</highlight></codeline>
+<linenumber line="25"/><codeline></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor">#include &quot;system.h&quot;</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor">#include &quot;console.h&quot;</highlight></codeline>
+<linenumber line="28"/><codeline></codeline>
+<linenumber line="29"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define new DEBUG_NEW</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="preprocessor">#include &quot;Obj.h&quot;</highlight></codeline>
+<linenumber line="34"/><codeline><highlight class="preprocessor">#include &quot;Obj2D.h&quot;</highlight></codeline>
+<linenumber line="35"/><codeline><highlight class="preprocessor">#include &quot;ObjQuadrangle.h&quot;</highlight></codeline>
+<linenumber line="36"/><codeline></codeline>
+<linenumber line="38"/><codeline><highlight class="comment">// 1?AU/?AIC</highlight></codeline>
+<linenumber line="40"/><codeline><highlight class="comment">using namespace sf::system::console;</highlight></codeline>
+<linenumber line="41"/><codeline></codeline>
+<linenumber line="42"/><codeline>ObjQuadrangle::ObjQuadrangle()</codeline>
+<linenumber line="43"/><codeline>{</codeline>
+<linenumber line="44"/><codeline>      Obj::List::insertObj(<highlight class="keyword">this</highlight>);</codeline>
+<linenumber line="45"/><codeline></codeline>
+<linenumber line="46"/><codeline></codeline>
+<linenumber line="47"/><codeline>}</codeline>
+<linenumber line="48"/><codeline></codeline>
+<linenumber line="49"/><codeline>ObjQuadrangle::~ObjQuadrangle()</codeline>
+<linenumber line="50"/><codeline>{</codeline>
+<linenumber line="51"/><codeline>      Obj::List::deleteObj(<highlight class="keyword">this</highlight>);</codeline>
+<linenumber line="52"/><codeline></codeline>
+<linenumber line="53"/><codeline>}</codeline>
+<linenumber line="54"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/ObjQuadrangle.cpp"/>
+  </compounddef>
+  <compounddef id="ObjQuadrangle_8h" kind="file">
+    <compoundname>ObjQuadrangle.h</compoundname>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includedby id="AbstractSprite_8cpp" local="yes">AbstractSprite.cpp</includedby>
+    <includedby id="BackGround_8cpp" local="yes">BackGround.cpp</includedby>
+    <includedby id="ConsoleImpl_8cpp" local="yes">ConsoleImpl.cpp</includedby>
+    <includedby id="ObjQuadrangle_8cpp" local="yes">ObjQuadrangle.cpp</includedby>
+    <includedby id="Sprite2D_8cpp" local="yes">Sprite2D.cpp</includedby>
+    <incdepgraph>
+      <node id="469">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="468">
+        <label>ObjQuadrangle.h</label>
+        <link id="ObjQuadrangle.h"/>
+        <childnode id="469" relation="public-inheritance">
+        </childnode>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="475">
+        <label>Sprite2D.cpp</label>
+        <link id="Sprite2D_8cpp-source"/>
+      </node>
+      <node id="472">
+        <label>BackGround.cpp</label>
+        <link id="BackGround_8cpp-source"/>
+      </node>
+      <node id="473">
+        <label>ConsoleImpl.cpp</label>
+        <link id="ConsoleImpl_8cpp-source"/>
+      </node>
+      <node id="474">
+        <label>ObjQuadrangle.cpp</label>
+        <link id="ObjQuadrangle_8cpp-source"/>
+      </node>
+      <node id="470">
+        <label>ObjQuadrangle.h</label>
+        <link id="ObjQuadrangle.h"/>
+        <childnode id="471" relation="public-inheritance">
+        </childnode>
+        <childnode id="472" relation="public-inheritance">
+        </childnode>
+        <childnode id="473" relation="public-inheritance">
+        </childnode>
+        <childnode id="474" relation="public-inheritance">
+        </childnode>
+        <childnode id="475" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="471">
+        <label>AbstractSprite.cpp</label>
+        <link id="AbstractSprite_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console">sf::system::console</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="ObjQuadrangle_8h_1a0" virt="normal" prot="public">
+        <name>AFX_OBJQUADRANGLE_H__ED2DE6B9_7EFB_40FC_9DB2_F8B6D1338B88__INCLUDED_</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ObjQuadrangle.h" line="24" bodystart="24" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">//  ObjQuadrangle.h: ObjQuadrangle \\81P\e\1</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  \81âI3N\81EA?I\1\\81~\e\?\E?oEA2e?1?e???a?I\\81P\e\1?C?1!\81\92</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// $Log: ObjQuadrangle.h,v $</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// Revision 1.2  2001/10/28 21:35:56  fujiwara</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// Revision 1.3  2001/07/09 20:30:09  fujiwara</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:49:24  fujiwara</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor">#if !defined(AFX_OBJQUADRANGLE_H__ED2DE6B9_7EFB_40FC_9DB2_F8B6D1338B88__INCLUDED_)</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_OBJQUADRANGLE_H__ED2DE6B9_7EFB_40FC_9DB2_F8B6D1338B88__INCLUDED_</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="31"/><codeline><highlight class="keyword">namespace </highlight>sf {</codeline>
+<linenumber line="32"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="33"/><codeline>              <highlight class="keyword">namespace </highlight>console {</codeline>
+<linenumber line="34"/><codeline>                      </codeline>
+<linenumber line="35"/><codeline>                      <highlight class="comment">// ObjSquare ------------------------------------------------------------------</highlight></codeline>
+<linenumber line="36"/><codeline>                      <highlight class="keyword">class </highlight>SFDLL ObjQuadrangle : <highlight class="keyword">public</highlight> Obj2D</codeline>
+<linenumber line="37"/><codeline>                      {</codeline>
+<linenumber line="38"/><codeline>                              <highlight class="comment">// LIFECYCLE </highlight></codeline>
+<linenumber line="39"/><codeline>                      <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="40"/><codeline>                              ObjQuadrangle();</codeline>
+<linenumber line="41"/><codeline>                              <highlight class="keyword">virtual</highlight> ~ObjQuadrangle();</codeline>
+<linenumber line="42"/><codeline>                              <highlight class="comment">// OPERATORS //</highlight></codeline>
+<linenumber line="43"/><codeline>                              <highlight class="comment">// OPERATIONS //</highlight></codeline>
+<linenumber line="44"/><codeline>                              <highlight class="comment">// EA2e?eIy</highlight></codeline>
+<linenumber line="45"/><codeline>                              <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> draw(){<highlight class="keywordflow">if</highlight>(visibility()) sprite()-&gt;draw(<highlight class="keyword">this</highlight>);};</codeline>
+<linenumber line="46"/><codeline>                              <highlight class="comment">// ACCESS // </highlight></codeline>
+<linenumber line="47"/><codeline>                              <highlight class="comment">// AoAAEO1a?o?a?E?E!\81\91AoAA?dEo?oAA?e</highlight></codeline>
+<linenumber line="48"/><codeline>                              <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> Vertex * <highlight class="keyword">const</highlight> vertex(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> i)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> &amp;mVertex[i];};</codeline>
+<linenumber line="49"/><codeline>                              <highlight class="keyword">virtual</highlight> Vertex * <highlight class="keyword">const</highlight> vertex(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> i){<highlight class="keywordflow">return</highlight> &amp;mVertex[i];};</codeline>
+<linenumber line="50"/><codeline>                      <highlight class="keyword">private</highlight>:</codeline>
+<linenumber line="51"/><codeline>                              <highlight class="keyword">mutable</highlight> Vertex mVertex[4];<highlight class="comment">// AoAA?I?dEo</highlight></codeline>
+<linenumber line="52"/><codeline>                      };<highlight class="comment">// ObjQuadrangle</highlight></codeline>
+<linenumber line="53"/><codeline>              }</codeline>
+<linenumber line="54"/><codeline>      }</codeline>
+<linenumber line="55"/><codeline>}</codeline>
+<linenumber line="56"/><codeline>}</codeline>
+<linenumber line="57"/><codeline></codeline>
+<linenumber line="58"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_OBJQUADRANGLE_H__ED2DE6B9_7EFB_40FC_9DB2_F8B6D1338B88__INCLUDED_)</highlight></codeline>
+<linenumber line="59"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/ObjQuadrangle.h"/>
+  </compounddef>
+  <compounddef id="ObjRectangle_8cpp" kind="file">
+    <compoundname>ObjRectangle.cpp</compoundname>
+    <includes id="sfdebug_8h" local="yes">sfdebug.h</includes>
+    <includes local="no">string</includes>
+    <includes local="yes">stdio.h</includes>
+    <includes local="yes">system.h</includes>
+    <includes local="yes">console.h</includes>
+    <includes id="Obj_8h" local="yes">Obj.h</includes>
+    <includes id="Obj2D_8h" local="yes">Obj2D.h</includes>
+    <includes id="ObjRectangle_8h" local="yes">ObjRectangle.h</includes>
+    <incdepgraph>
+      <node id="476">
+        <label>ObjRectangle.cpp</label>
+        <link id="ObjRectangle.cpp"/>
+        <childnode id="477" relation="public-inheritance">
+        </childnode>
+        <childnode id="478" relation="public-inheritance">
+        </childnode>
+        <childnode id="479" relation="public-inheritance">
+        </childnode>
+        <childnode id="480" relation="public-inheritance">
+        </childnode>
+        <childnode id="481" relation="public-inheritance">
+        </childnode>
+        <childnode id="482" relation="public-inheritance">
+        </childnode>
+        <childnode id="484" relation="public-inheritance">
+        </childnode>
+        <childnode id="485" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="478">
+        <label>string</label>
+      </node>
+      <node id="477">
+        <label>sfdebug.h</label>
+        <link id="sfdebug_8h"/>
+      </node>
+      <node id="483">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="481">
+        <label>console.h</label>
+      </node>
+      <node id="484">
+        <label>Obj2D.h</label>
+        <link id="Obj2D_8h-source"/>
+        <childnode id="483" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="485">
+        <label>ObjRectangle.h</label>
+        <link id="ObjRectangle_8h-source"/>
+        <childnode id="483" relation="public-inheritance">
+        </childnode>
+        <childnode id="482" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="482">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="483" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="480">
+        <label>system.h</label>
+      </node>
+      <node id="479">
+        <label>stdio.h</label>
+      </node>
+    </incdepgraph>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// ObjRectangle.cpp: ObjRectangle \\81P\e\1?I\?\o\\81~\e\a\o\A!?\\81E\c\o</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  IuIo:</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// $Log: ObjRectangle.cpp,v $</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// Revision 1.4  2001/07/09 20:30:09  fujiwara</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// Revision 1.3  2001/07/01 21:30:34  fujiwara</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// \a\a\e\e!?\\81P\A\\81\98\A\\81P\81C\81áA??\81E</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:49:24  fujiwara</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">// 2001/01/29 \a\a\e!?\e!?\\81P\81C!?DIN\e\?\O\e\e?IAE2A </highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="sfdebug_8h">sfdebug.h</ref>&quot;</highlight></codeline>
+<linenumber line="26"/><codeline></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor">#include &lt;string&gt;</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="preprocessor">#include &quot;stdio.h&quot;</highlight></codeline>
+<linenumber line="29"/><codeline></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor">#include &quot;system.h&quot;</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor">#include &quot;console.h&quot;</highlight></codeline>
+<linenumber line="32"/><codeline></codeline>
+<linenumber line="33"/><codeline></codeline>
+<linenumber line="34"/><codeline><highlight class="preprocessor">#include &quot;Obj.h&quot;</highlight></codeline>
+<linenumber line="35"/><codeline><highlight class="preprocessor">#include &quot;Obj2D.h&quot;</highlight></codeline>
+<linenumber line="36"/><codeline></codeline>
+<linenumber line="37"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="38"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define new DEBUG_NEW</highlight></codeline>
+<linenumber line="39"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="40"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="41"/><codeline><highlight class="preprocessor">#include &quot;ObjRectangle.h&quot;</highlight></codeline>
+<linenumber line="42"/><codeline></codeline>
+<linenumber line="44"/><codeline><highlight class="comment">// 1?AU/?AIC</highlight></codeline>
+<linenumber line="46"/><codeline><highlight class="comment">using namespace sf::system::console;</highlight></codeline>
+<linenumber line="47"/><codeline></codeline>
+<linenumber line="48"/><codeline>ObjRectangle::ObjRectangle()</codeline>
+<linenumber line="49"/><codeline>{</codeline>
+<linenumber line="50"/><codeline>      mColor = 0;</codeline>
+<linenumber line="51"/><codeline>      mSpecular = 0;</codeline>
+<linenumber line="52"/><codeline>      Obj::List::insertObj(<highlight class="keyword">this</highlight>);</codeline>
+<linenumber line="53"/><codeline></codeline>
+<linenumber line="54"/><codeline>}</codeline>
+<linenumber line="55"/><codeline></codeline>
+<linenumber line="56"/><codeline>ObjRectangle::~ObjRectangle()</codeline>
+<linenumber line="57"/><codeline>{</codeline>
+<linenumber line="58"/><codeline>      Obj::List::deleteObj(<highlight class="keyword">this</highlight>);</codeline>
+<linenumber line="59"/><codeline></codeline>
+<linenumber line="60"/><codeline>}</codeline>
+<linenumber line="61"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/ObjRectangle.cpp"/>
+  </compounddef>
+  <compounddef id="ObjRectangle_8h" kind="file">
+    <compoundname>ObjRectangle.h</compoundname>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includes id="Obj_8h" local="yes">Obj.h</includes>
+    <includedby id="AbstractSprite_8cpp" local="yes">AbstractSprite.cpp</includedby>
+    <includedby id="BackGround_8cpp" local="yes">BackGround.cpp</includedby>
+    <includedby id="ConsoleImpl_8cpp" local="yes">ConsoleImpl.cpp</includedby>
+    <includedby id="ObjRectangle_8cpp" local="yes">ObjRectangle.cpp</includedby>
+    <includedby id="Sprite2D_8cpp" local="yes">Sprite2D.cpp</includedby>
+    <incdepgraph>
+      <node id="488">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="487">
+        <label>ObjRectangle.h</label>
+        <link id="ObjRectangle.h"/>
+        <childnode id="488" relation="public-inheritance">
+        </childnode>
+        <childnode id="489" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="489">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="488" relation="public-inheritance">
+        </childnode>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="494">
+        <label>ObjRectangle.cpp</label>
+        <link id="ObjRectangle_8cpp-source"/>
+      </node>
+      <node id="495">
+        <label>Sprite2D.cpp</label>
+        <link id="Sprite2D_8cpp-source"/>
+      </node>
+      <node id="492">
+        <label>BackGround.cpp</label>
+        <link id="BackGround_8cpp-source"/>
+      </node>
+      <node id="493">
+        <label>ConsoleImpl.cpp</label>
+        <link id="ConsoleImpl_8cpp-source"/>
+      </node>
+      <node id="490">
+        <label>ObjRectangle.h</label>
+        <link id="ObjRectangle.h"/>
+        <childnode id="491" relation="public-inheritance">
+        </childnode>
+        <childnode id="492" relation="public-inheritance">
+        </childnode>
+        <childnode id="493" relation="public-inheritance">
+        </childnode>
+        <childnode id="494" relation="public-inheritance">
+        </childnode>
+        <childnode id="495" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="491">
+        <label>AbstractSprite.cpp</label>
+        <link id="AbstractSprite_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console">sf::system::console</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="ObjRectangle_8h_1a0" virt="normal" prot="public">
+        <name>AFX_ObjRectangle_H__50602D13_69D5_4210_BB85_14A2CA649768__INCLUDED_</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/ObjRectangle.h" line="20" bodystart="20" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// ObjRectangle.h: ObjRectangle \\81P\e\1?I\?\o\?!?\O\\81\98\?\1</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">// $Log: ObjRectangle.h,v $</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// Revision 1.2  2001/10/28 21:35:56  fujiwara</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:49:24  fujiwara</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="preprocessor">#if !defined(AFX_ObjRectangle_H__50602D13_69D5_4210_BB85_14A2CA649768__INCLUDED_)</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_ObjRectangle_H__50602D13_69D5_4210_BB85_14A2CA649768__INCLUDED_</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor">#include &quot;Obj.h&quot;</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="28"/><codeline><highlight class="keyword">namespace </highlight>sf {</codeline>
+<linenumber line="29"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="30"/><codeline>              <highlight class="keyword">namespace </highlight>console {</codeline>
+<linenumber line="31"/><codeline></codeline>
+<linenumber line="32"/><codeline>                      <highlight class="comment">// ObjNormal ------------------------------------------------------------------</highlight></codeline>
+<linenumber line="33"/><codeline>                      <highlight class="keyword">class </highlight>SFDLL ObjRectangle : <highlight class="keyword">public</highlight> Obj2D   </codeline>
+<linenumber line="34"/><codeline>                      {</codeline>
+<linenumber line="35"/><codeline>                              <highlight class="comment">// LIFECYCLE </highlight></codeline>
+<linenumber line="36"/><codeline>                      <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="37"/><codeline>                              ObjRectangle();<highlight class="comment">//</highlight></codeline>
+<linenumber line="38"/><codeline>                              <highlight class="keyword">virtual</highlight> ~ObjRectangle();</codeline>
+<linenumber line="39"/><codeline>                              <highlight class="comment">// OPERATORS //</highlight></codeline>
+<linenumber line="40"/><codeline>                              <highlight class="comment">// OPEARATIONS //</highlight></codeline>
+<linenumber line="41"/><codeline>                              <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> draw(){<highlight class="keywordflow">if</highlight>(visibility()) sprite()-&gt;draw(<highlight class="keyword">this</highlight>);};</codeline>
+<linenumber line="42"/><codeline>                              <highlight class="comment">// ACCESS </highlight></codeline>
+<linenumber line="43"/><codeline></codeline>
+<linenumber line="44"/><codeline>                              <highlight class="keyword">const</highlight> COLOR color()<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mColor;}; </codeline>
+<linenumber line="45"/><codeline>                              <highlight class="keywordtype">void</highlight>  color(<highlight class="keyword">const</highlight> COLOR value) { mColor = value;}; </codeline>
+<linenumber line="46"/><codeline>                              </codeline>
+<linenumber line="47"/><codeline>                              <highlight class="keyword">const</highlight> COLOR specular()<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> mSpecular;}; </codeline>
+<linenumber line="48"/><codeline>                              <highlight class="keywordtype">void</highlight>  specular(<highlight class="keyword">const</highlight> COLOR value) { mSpecular = value;}; </codeline>
+<linenumber line="49"/><codeline>                              </codeline>
+<linenumber line="50"/><codeline>                      <highlight class="keyword">private</highlight>:</codeline>
+<linenumber line="51"/><codeline>                              COLOR mColor;</codeline>
+<linenumber line="52"/><codeline>                              COLOR mSpecular;</codeline>
+<linenumber line="53"/><codeline>                              </codeline>
+<linenumber line="54"/><codeline>                      };<highlight class="comment">// ObjRectangle</highlight></codeline>
+<linenumber line="55"/><codeline>              }</codeline>
+<linenumber line="56"/><codeline>      }</codeline>
+<linenumber line="57"/><codeline>}</codeline>
+<linenumber line="58"/><codeline>}</codeline>
+<linenumber line="59"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_ObjRectangle_H__50602D13_69D5_4210_BB85_14A2CA649768__INCLUDED_)</highlight></codeline>
+<linenumber line="60"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/ObjRectangle.h"/>
+  </compounddef>
+  <compounddef id="sfglib_2resource_8h" kind="file">
+    <compoundname>sfglib/resource.h</compoundname>
+    <includedby id="InputImpl_8cpp" local="yes">InputImpl.cpp</includedby>
+    <includedby id="sfglib_8cpp" local="yes">sfglib.cpp</includedby>
+    <includedby id="System_8cpp" local="yes">System.cpp</includedby>
+    <includedby id="SystemImpl_8cpp" local="yes">SystemImpl.cpp</includedby>
+    <invincdepgraph>
+      <node id="499">
+        <label>sfglib.cpp</label>
+        <link id="sfglib_8cpp-source"/>
+      </node>
+      <node id="497">
+        <label>sfglib/resource.h</label>
+        <link id="sfglib/resource.h"/>
+        <childnode id="498" relation="public-inheritance">
+        </childnode>
+        <childnode id="499" relation="public-inheritance">
+        </childnode>
+        <childnode id="500" relation="public-inheritance">
+        </childnode>
+        <childnode id="501" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="501">
+        <label>SystemImpl.cpp</label>
+        <link id="SystemImpl_8cpp-source"/>
+      </node>
+      <node id="498">
+        <label>InputImpl.cpp</label>
+        <link id="InputImpl_8cpp-source"/>
+      </node>
+      <node id="500">
+        <label>System.cpp</label>
+        <link id="System_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="sfglib_2resource_8h_1a0" virt="normal" prot="public">
+        <name>IDI_ICON1</name>
+        <initializer>101</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/resource.h" line="5" bodystart="5" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="sfglib_2resource_8h_1a1" virt="normal" prot="public">
+        <name>IDR_MENU1</name>
+        <initializer>104</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/resource.h" line="6" bodystart="6" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="sfglib_2resource_8h_1a2" virt="normal" prot="public">
+        <name>IDD_ABOUT</name>
+        <initializer>105</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/resource.h" line="7" bodystart="7" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="sfglib_2resource_8h_1a3" virt="normal" prot="public">
+        <name>ID_RESET</name>
+        <initializer>40001</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/resource.h" line="8" bodystart="8" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="sfglib_2resource_8h_1a4" virt="normal" prot="public">
+        <name>ID_EXIT</name>
+        <initializer>40002</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/resource.h" line="9" bodystart="9" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="sfglib_2resource_8h_1a5" virt="normal" prot="public">
+        <name>ID_BGM</name>
+        <initializer>40003</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/resource.h" line="10" bodystart="10" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="sfglib_2resource_8h_1a6" virt="normal" prot="public">
+        <name>ID_EFFECT</name>
+        <initializer>40004</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/resource.h" line="11" bodystart="11" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="sfglib_2resource_8h_1a7" virt="normal" prot="public">
+        <name>ID_ABOUT</name>
+        <initializer>40005</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/resource.h" line="12" bodystart="12" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="sfglib_2resource_8h_1a8" virt="normal" prot="public">
+        <name>ID_DIK</name>
+        <initializer>40006</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/resource.h" line="13" bodystart="13" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="sfglib_2resource_8h_1a9" virt="normal" prot="public">
+        <name>ID_EDITGAME</name>
+        <initializer>40008</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/resource.h" line="14" bodystart="14" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//{{NO_DEPENDENCIES}}</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">// Microsoft Developer Studio generated include file.</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// Used by sfglib.rc</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="preprocessor">#define IDI_ICON1                       101</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define IDR_MENU1                       104</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define IDD_ABOUT                       105</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define ID_RESET                        40001</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define ID_EXIT                         40002</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define ID_BGM                          40003</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define ID_EFFECT                       40004</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define ID_ABOUT                        40005</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define ID_DIK                          40006</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define ID_EDITGAME                     40008</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// Next default values for new objects</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">// </highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="preprocessor">#ifdef APSTUDIO_INVOKED</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#ifndef APSTUDIO_READONLY_SYMBOLS</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define _APS_NEXT_RESOURCE_VALUE        109</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define _APS_NEXT_COMMAND_VALUE         40009</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define _APS_NEXT_CONTROL_VALUE         1009</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define _APS_NEXT_SYMED_VALUE           101</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/resource.h"/>
+  </compounddef>
+  <compounddef id="resource_8h" kind="file">
+    <compoundname>resource.h</compoundname>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="resource_8h_1a0" virt="normal" prot="public">
+        <name>IDI_ICON1</name>
+        <initializer>101</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/resource.h" line="5" bodystart="5" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="resource_8h_1a1" virt="normal" prot="public">
+        <name>IDR_MENU1</name>
+        <initializer>104</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/resource.h" line="6" bodystart="6" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="resource_8h_1a2" virt="normal" prot="public">
+        <name>IDD_ABOUT</name>
+        <initializer>105</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/resource.h" line="7" bodystart="7" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="resource_8h_1a3" virt="normal" prot="public">
+        <name>ID_RESET</name>
+        <initializer>40001</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/resource.h" line="8" bodystart="8" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="resource_8h_1a4" virt="normal" prot="public">
+        <name>ID_EXIT</name>
+        <initializer>40002</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/resource.h" line="9" bodystart="9" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="resource_8h_1a5" virt="normal" prot="public">
+        <name>ID_BGM</name>
+        <initializer>40003</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/resource.h" line="10" bodystart="10" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="resource_8h_1a6" virt="normal" prot="public">
+        <name>ID_EFFECT</name>
+        <initializer>40004</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/resource.h" line="11" bodystart="11" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="resource_8h_1a7" virt="normal" prot="public">
+        <name>ID_ABOUT</name>
+        <initializer>40005</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/resource.h" line="12" bodystart="12" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="resource_8h_1a8" virt="normal" prot="public">
+        <name>ID_DIK</name>
+        <initializer>40006</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/resource.h" line="13" bodystart="13" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="resource_8h_1a9" virt="normal" prot="public">
+        <name>ID_EDITGAME</name>
+        <initializer>40008</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/resource.h" line="14" bodystart="14" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//{{NO_DEPENDENCIES}}</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">// Microsoft Developer Studio generated include file.</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// Used by genx.rc</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="preprocessor">#define IDI_ICON1                       101</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define IDR_MENU1                       104</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define IDD_ABOUT                       105</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define ID_RESET                        40001</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define ID_EXIT                         40002</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define ID_BGM                          40003</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define ID_EFFECT                       40004</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define ID_ABOUT                        40005</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define ID_DIK                          40006</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define ID_EDITGAME                     40008</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// Next default values for new objects</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">// </highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="preprocessor">#ifdef APSTUDIO_INVOKED</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#ifndef APSTUDIO_READONLY_SYMBOLS</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define _APS_NEXT_RESOURCE_VALUE        109</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define _APS_NEXT_COMMAND_VALUE         40009</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define _APS_NEXT_CONTROL_VALUE         1009</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define _APS_NEXT_SYMED_VALUE           101</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/resource.h"/>
+  </compounddef>
+  <compounddef id="sf_8h" kind="file">
+    <compoundname>sf.h</compoundname>
+    <includedby id="System_8h" local="yes">System.h</includedby>
+    <includedby id="Obj_8h" local="yes">Obj.h</includedby>
+    <includedby id="Obj2D_8h" local="yes">Obj2D.h</includedby>
+    <includedby id="ObjRectangle_8h" local="yes">ObjRectangle.h</includedby>
+    <includedby id="ObjQuadrangle_8h" local="yes">ObjQuadrangle.h</includedby>
+    <includedby id="Obj3D_8h" local="yes">Obj3D.h</includedby>
+    <includedby id="Obj3DL_8h" local="yes">Obj3DL.h</includedby>
+    <includedby id="AbstractSprite_8h" local="yes">AbstractSprite.h</includedby>
+    <includedby id="ConsoleImpl_8h" local="yes">ConsoleImpl.h</includedby>
+    <includedby id="Console_8h" local="yes">Console.h</includedby>
+    <includedby id="BackGround_8h" local="yes">BackGround.h</includedby>
+    <includedby id="Sprite2D_8h" local="yes">Sprite2D.h</includedby>
+    <includedby id="Sprite3D_8h" local="yes">Sprite3D.h</includedby>
+    <includedby id="SpriteMesh_8h" local="yes">SpriteMesh.h</includedby>
+    <includedby id="Exception_8h" local="yes">Exception.h</includedby>
+    <includedby id="Input_8h" local="yes">Input.h</includedby>
+    <includedby id="SoundImpl_8h" local="yes">SoundImpl.h</includedby>
+    <includedby id="Sound_8h" local="yes">Sound.h</includedby>
+    <includedby id="InputImpl_8h" local="yes">InputImpl.h</includedby>
+    <includedby id="SystemImpl_8h" local="yes">SystemImpl.h</includedby>
+    <invincdepgraph>
+      <node id="510">
+        <label>sfglib.cpp</label>
+        <link id="sfglib_8cpp-source"/>
+      </node>
+      <node id="541">
+        <label>Input.cpp</label>
+        <link id="Input_8cpp-source"/>
+      </node>
+      <node id="511">
+        <label>SoundImpl.cpp</label>
+        <link id="SoundImpl_8cpp-source"/>
+      </node>
+      <node id="543">
+        <label>SoundImpl.h</label>
+        <link id="SoundImpl_8h"/>
+        <childnode id="509" relation="public-inheritance">
+        </childnode>
+        <childnode id="510" relation="public-inheritance">
+        </childnode>
+        <childnode id="511" relation="public-inheritance">
+        </childnode>
+        <childnode id="515" relation="public-inheritance">
+        </childnode>
+        <childnode id="516" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="540">
+        <label>Input.h</label>
+        <link id="Input_8h"/>
+        <childnode id="541" relation="public-inheritance">
+        </childnode>
+        <childnode id="542" relation="public-inheritance">
+        </childnode>
+        <childnode id="511" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="538">
+        <label>Exception.h</label>
+        <link id="Exception_8h"/>
+        <childnode id="539" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="520">
+        <label>ObjRectangle.cpp</label>
+        <link id="ObjRectangle_8cpp-source"/>
+      </node>
+      <node id="512">
+        <label>Sprite2D.cpp</label>
+        <link id="Sprite2D_8cpp-source"/>
+      </node>
+      <node id="506">
+        <label>System.h</label>
+        <link id="System_8h"/>
+        <childnode id="507" relation="public-inheritance">
+        </childnode>
+        <childnode id="508" relation="public-inheritance">
+        </childnode>
+        <childnode id="509" relation="public-inheritance">
+        </childnode>
+        <childnode id="510" relation="public-inheritance">
+        </childnode>
+        <childnode id="511" relation="public-inheritance">
+        </childnode>
+        <childnode id="512" relation="public-inheritance">
+        </childnode>
+        <childnode id="513" relation="public-inheritance">
+        </childnode>
+        <childnode id="514" relation="public-inheritance">
+        </childnode>
+        <childnode id="515" relation="public-inheritance">
+        </childnode>
+        <childnode id="516" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="519">
+        <label>BackGround.cpp</label>
+        <link id="BackGround_8cpp-source"/>
+      </node>
+      <node id="516">
+        <label>SystemImpl.cpp</label>
+        <link id="SystemImpl_8cpp-source"/>
+      </node>
+      <node id="533">
+        <label>ConsoleImpl.h</label>
+        <link id="ConsoleImpl_8h"/>
+        <childnode id="507" relation="public-inheritance">
+        </childnode>
+        <childnode id="508" relation="public-inheritance">
+        </childnode>
+        <childnode id="509" relation="public-inheritance">
+        </childnode>
+        <childnode id="510" relation="public-inheritance">
+        </childnode>
+        <childnode id="512" relation="public-inheritance">
+        </childnode>
+        <childnode id="513" relation="public-inheritance">
+        </childnode>
+        <childnode id="515" relation="public-inheritance">
+        </childnode>
+        <childnode id="516" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="509">
+        <label>InputImpl.cpp</label>
+        <link id="InputImpl_8cpp-source"/>
+      </node>
+      <node id="525">
+        <label>Obj.cpp</label>
+        <link id="Obj_8cpp-source"/>
+      </node>
+      <node id="535">
+        <label>Console.cpp</label>
+        <link id="Console_8cpp-source"/>
+      </node>
+      <node id="530">
+        <label>AbstractSprite.h</label>
+        <link id="AbstractSprite_8h-source"/>
+        <childnode id="507" relation="public-inheritance">
+        </childnode>
+        <childnode id="508" relation="public-inheritance">
+        </childnode>
+        <childnode id="531" relation="public-inheritance">
+        </childnode>
+        <childnode id="532" relation="public-inheritance">
+        </childnode>
+        <childnode id="509" relation="public-inheritance">
+        </childnode>
+        <childnode id="510" relation="public-inheritance">
+        </childnode>
+        <childnode id="512" relation="public-inheritance">
+        </childnode>
+        <childnode id="513" relation="public-inheritance">
+        </childnode>
+        <childnode id="514" relation="public-inheritance">
+        </childnode>
+        <childnode id="515" relation="public-inheritance">
+        </childnode>
+        <childnode id="516" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="546">
+        <label>SystemImpl.h</label>
+        <link id="SystemImpl_8h-source"/>
+        <childnode id="509" relation="public-inheritance">
+        </childnode>
+        <childnode id="510" relation="public-inheritance">
+        </childnode>
+        <childnode id="515" relation="public-inheritance">
+        </childnode>
+        <childnode id="516" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="532">
+        <label>SpriteMesh.h</label>
+        <link id="SpriteMesh_8h-source"/>
+        <childnode id="508" relation="public-inheritance">
+        </childnode>
+        <childnode id="514" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="508">
+        <label>ConsoleImpl.cpp</label>
+        <link id="ConsoleImpl_8cpp-source"/>
+      </node>
+      <node id="505">
+        <label>sf.h</label>
+        <link id="sf.h"/>
+        <childnode id="506" relation="public-inheritance">
+        </childnode>
+        <childnode id="517" relation="public-inheritance">
+        </childnode>
+        <childnode id="528" relation="public-inheritance">
+        </childnode>
+        <childnode id="518" relation="public-inheritance">
+        </childnode>
+        <childnode id="529" relation="public-inheritance">
+        </childnode>
+        <childnode id="521" relation="public-inheritance">
+        </childnode>
+        <childnode id="522" relation="public-inheritance">
+        </childnode>
+        <childnode id="530" relation="public-inheritance">
+        </childnode>
+        <childnode id="533" relation="public-inheritance">
+        </childnode>
+        <childnode id="534" relation="public-inheritance">
+        </childnode>
+        <childnode id="537" relation="public-inheritance">
+        </childnode>
+        <childnode id="536" relation="public-inheritance">
+        </childnode>
+        <childnode id="531" relation="public-inheritance">
+        </childnode>
+        <childnode id="532" relation="public-inheritance">
+        </childnode>
+        <childnode id="538" relation="public-inheritance">
+        </childnode>
+        <childnode id="540" relation="public-inheritance">
+        </childnode>
+        <childnode id="543" relation="public-inheritance">
+        </childnode>
+        <childnode id="544" relation="public-inheritance">
+        </childnode>
+        <childnode id="542" relation="public-inheritance">
+        </childnode>
+        <childnode id="546" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="527">
+        <label>ObjQuadrangle.cpp</label>
+        <link id="ObjQuadrangle_8cpp-source"/>
+      </node>
+      <node id="514">
+        <label>SpriteMesh.cpp</label>
+        <link id="SpriteMesh_8cpp-source"/>
+      </node>
+      <node id="537">
+        <label>BackGround.h</label>
+        <link id="BackGround_8h-source"/>
+        <childnode id="519" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="545">
+        <label>Sound.cpp</label>
+        <link id="Sound_8cpp-source"/>
+      </node>
+      <node id="534">
+        <label>Console.h</label>
+        <link id="Console_8h"/>
+        <childnode id="530" relation="public-inheritance">
+        </childnode>
+        <childnode id="533" relation="public-inheritance">
+        </childnode>
+        <childnode id="535" relation="public-inheritance">
+        </childnode>
+        <childnode id="536" relation="public-inheritance">
+        </childnode>
+        <childnode id="509" relation="public-inheritance">
+        </childnode>
+        <childnode id="510" relation="public-inheritance">
+        </childnode>
+        <childnode id="511" relation="public-inheritance">
+        </childnode>
+        <childnode id="515" relation="public-inheritance">
+        </childnode>
+        <childnode id="516" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="542">
+        <label>InputImpl.h</label>
+        <link id="InputImpl_8h"/>
+        <childnode id="509" relation="public-inheritance">
+        </childnode>
+        <childnode id="510" relation="public-inheritance">
+        </childnode>
+        <childnode id="515" relation="public-inheritance">
+        </childnode>
+        <childnode id="516" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="515">
+        <label>System.cpp</label>
+        <link id="System_8cpp-source"/>
+      </node>
+      <node id="544">
+        <label>Sound.h</label>
+        <link id="Sound_8h"/>
+        <childnode id="543" relation="public-inheritance">
+        </childnode>
+        <childnode id="545" relation="public-inheritance">
+        </childnode>
+        <childnode id="511" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="521">
+        <label>Obj3D.h</label>
+        <link id="Obj3D_8h-source"/>
+        <childnode id="507" relation="public-inheritance">
+        </childnode>
+        <childnode id="522" relation="public-inheritance">
+        </childnode>
+        <childnode id="508" relation="public-inheritance">
+        </childnode>
+        <childnode id="524" relation="public-inheritance">
+        </childnode>
+        <childnode id="523" relation="public-inheritance">
+        </childnode>
+        <childnode id="513" relation="public-inheritance">
+        </childnode>
+        <childnode id="514" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="528">
+        <label>Obj2D.h</label>
+        <link id="Obj2D_8h-source"/>
+        <childnode id="507" relation="public-inheritance">
+        </childnode>
+        <childnode id="519" relation="public-inheritance">
+        </childnode>
+        <childnode id="508" relation="public-inheritance">
+        </childnode>
+        <childnode id="526" relation="public-inheritance">
+        </childnode>
+        <childnode id="527" relation="public-inheritance">
+        </childnode>
+        <childnode id="520" relation="public-inheritance">
+        </childnode>
+        <childnode id="512" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="518">
+        <label>ObjRectangle.h</label>
+        <link id="ObjRectangle_8h-source"/>
+        <childnode id="507" relation="public-inheritance">
+        </childnode>
+        <childnode id="519" relation="public-inheritance">
+        </childnode>
+        <childnode id="508" relation="public-inheritance">
+        </childnode>
+        <childnode id="520" relation="public-inheritance">
+        </childnode>
+        <childnode id="512" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="531">
+        <label>Sprite3D.h</label>
+        <link id="Sprite3D_8h-source"/>
+        <childnode id="508" relation="public-inheritance">
+        </childnode>
+        <childnode id="513" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="539">
+        <label>Exception.cpp</label>
+        <link id="Exception_8cpp-source"/>
+      </node>
+      <node id="522">
+        <label>Obj3DL.h</label>
+        <link id="Obj3DL_8h-source"/>
+        <childnode id="507" relation="public-inheritance">
+        </childnode>
+        <childnode id="508" relation="public-inheritance">
+        </childnode>
+        <childnode id="523" relation="public-inheritance">
+        </childnode>
+        <childnode id="513" relation="public-inheritance">
+        </childnode>
+        <childnode id="514" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="536">
+        <label>Sprite2D.h</label>
+        <link id="Sprite2D_8h-source"/>
+        <childnode id="508" relation="public-inheritance">
+        </childnode>
+        <childnode id="512" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="524">
+        <label>Obj3D.cpp</label>
+        <link id="Obj3D_8cpp-source"/>
+      </node>
+      <node id="517">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="507" relation="public-inheritance">
+        </childnode>
+        <childnode id="518" relation="public-inheritance">
+        </childnode>
+        <childnode id="521" relation="public-inheritance">
+        </childnode>
+        <childnode id="519" relation="public-inheritance">
+        </childnode>
+        <childnode id="508" relation="public-inheritance">
+        </childnode>
+        <childnode id="509" relation="public-inheritance">
+        </childnode>
+        <childnode id="525" relation="public-inheritance">
+        </childnode>
+        <childnode id="526" relation="public-inheritance">
+        </childnode>
+        <childnode id="527" relation="public-inheritance">
+        </childnode>
+        <childnode id="520" relation="public-inheritance">
+        </childnode>
+        <childnode id="510" relation="public-inheritance">
+        </childnode>
+        <childnode id="512" relation="public-inheritance">
+        </childnode>
+        <childnode id="513" relation="public-inheritance">
+        </childnode>
+        <childnode id="514" relation="public-inheritance">
+        </childnode>
+        <childnode id="515" relation="public-inheritance">
+        </childnode>
+        <childnode id="516" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="529">
+        <label>ObjQuadrangle.h</label>
+        <link id="ObjQuadrangle_8h-source"/>
+        <childnode id="507" relation="public-inheritance">
+        </childnode>
+        <childnode id="519" relation="public-inheritance">
+        </childnode>
+        <childnode id="508" relation="public-inheritance">
+        </childnode>
+        <childnode id="527" relation="public-inheritance">
+        </childnode>
+        <childnode id="512" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="523">
+        <label>Obj3DL.cpp</label>
+        <link id="Obj3DL_8cpp-source"/>
+      </node>
+      <node id="507">
+        <label>AbstractSprite.cpp</label>
+        <link id="AbstractSprite_8cpp-source"/>
+      </node>
+      <node id="513">
+        <label>Sprite3D.cpp</label>
+        <link id="Sprite3D_8cpp-source"/>
+      </node>
+      <node id="526">
+        <label>Obj2D.cpp</label>
+        <link id="Obj2D_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="sf_8h_1a0" virt="normal" prot="public">
+        <name>SFDLL</name>
+        <initializer>__declspec(dllimport)</initializer>
+        <briefdescription>
+<para>
+Ao?A\?\o\\81P\e!?\EEE\81âs. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib//sf.h" line="17" bodystart="17" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="sf_8h_1a1" virt="normal" prot="public">
+        <name>SFDLL</name>
+        <initializer>__declspec(dllimport)</initializer>
+        <briefdescription>
+<para>
+Ao?A\?\o\\81P\e!?\EEE\81âs. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/sf.h" line="17" bodystart="17" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline></codeline>
+<linenumber line="11"/><codeline></codeline>
+<linenumber line="12"/><codeline><highlight class="preprocessor">#ifndef SF</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define SF</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#ifdef SFGLIB_EXPORTS </highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">  #define SFDLL __declspec(dllexport)</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#else</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">  #define SFDLL __declspec(dllimport)</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/sf.h"/>
+  </compounddef>
+  <compounddef id="sfdebug_8h" kind="file">
+    <compoundname>sfdebug.h</compoundname>
+    <includedby id="AbstractSprite_8cpp" local="yes">AbstractSprite.cpp</includedby>
+    <includedby id="BackGround_8cpp" local="yes">BackGround.cpp</includedby>
+    <includedby id="ConsoleImpl_8cpp" local="yes">ConsoleImpl.cpp</includedby>
+    <includedby id="Exception_8cpp" local="yes">Exception.cpp</includedby>
+    <includedby id="Input_8cpp" local="yes">Input.cpp</includedby>
+    <includedby id="InputImpl_8cpp" local="yes">InputImpl.cpp</includedby>
+    <includedby id="Main_8cpp" local="yes">Main.cpp</includedby>
+    <includedby id="Obj3D_8cpp" local="yes">Obj3D.cpp</includedby>
+    <includedby id="Obj3DL_8cpp" local="yes">Obj3DL.cpp</includedby>
+    <includedby id="ObjQuadrangle_8cpp" local="yes">ObjQuadrangle.cpp</includedby>
+    <includedby id="ObjRectangle_8cpp" local="yes">ObjRectangle.cpp</includedby>
+    <includedby id="sfglib_8cpp" local="yes">sfglib.cpp</includedby>
+    <includedby id="Sound_8cpp" local="yes">Sound.cpp</includedby>
+    <includedby id="SoundImpl_8cpp" local="yes">SoundImpl.cpp</includedby>
+    <includedby id="Sprite2D_8cpp" local="yes">Sprite2D.cpp</includedby>
+    <includedby id="Sprite3D_8cpp" local="yes">Sprite3D.cpp</includedby>
+    <includedby id="SpriteMesh_8cpp" local="yes">SpriteMesh.cpp</includedby>
+    <includedby id="SystemImpl_8cpp" local="yes">SystemImpl.cpp</includedby>
+    <includedby id="WinMain_8cpp" local="yes">WinMain.cpp</includedby>
+    <invincdepgraph>
+      <node id="560">
+        <label>sfglib.cpp</label>
+        <link id="sfglib_8cpp-source"/>
+      </node>
+      <node id="553">
+        <label>Input.cpp</label>
+        <link id="Input_8cpp-source"/>
+      </node>
+      <node id="562">
+        <label>SoundImpl.cpp</label>
+        <link id="SoundImpl_8cpp-source"/>
+      </node>
+      <node id="567">
+        <label>WinMain.cpp</label>
+        <link id="WinMain_8cpp-source"/>
+      </node>
+      <node id="559">
+        <label>ObjRectangle.cpp</label>
+        <link id="ObjRectangle_8cpp-source"/>
+      </node>
+      <node id="563">
+        <label>Sprite2D.cpp</label>
+        <link id="Sprite2D_8cpp-source"/>
+      </node>
+      <node id="550">
+        <label>BackGround.cpp</label>
+        <link id="BackGround_8cpp-source"/>
+      </node>
+      <node id="566">
+        <label>SystemImpl.cpp</label>
+        <link id="SystemImpl_8cpp-source"/>
+      </node>
+      <node id="554">
+        <label>InputImpl.cpp</label>
+        <link id="InputImpl_8cpp-source"/>
+      </node>
+      <node id="548">
+        <label>sfdebug.h</label>
+        <link id="sfdebug.h"/>
+        <childnode id="549" relation="public-inheritance">
+        </childnode>
+        <childnode id="550" relation="public-inheritance">
+        </childnode>
+        <childnode id="551" relation="public-inheritance">
+        </childnode>
+        <childnode id="552" relation="public-inheritance">
+        </childnode>
+        <childnode id="553" relation="public-inheritance">
+        </childnode>
+        <childnode id="554" relation="public-inheritance">
+        </childnode>
+        <childnode id="555" relation="public-inheritance">
+        </childnode>
+        <childnode id="556" relation="public-inheritance">
+        </childnode>
+        <childnode id="557" relation="public-inheritance">
+        </childnode>
+        <childnode id="558" relation="public-inheritance">
+        </childnode>
+        <childnode id="559" relation="public-inheritance">
+        </childnode>
+        <childnode id="560" relation="public-inheritance">
+        </childnode>
+        <childnode id="561" relation="public-inheritance">
+        </childnode>
+        <childnode id="562" relation="public-inheritance">
+        </childnode>
+        <childnode id="563" relation="public-inheritance">
+        </childnode>
+        <childnode id="564" relation="public-inheritance">
+        </childnode>
+        <childnode id="565" relation="public-inheritance">
+        </childnode>
+        <childnode id="566" relation="public-inheritance">
+        </childnode>
+        <childnode id="567" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="555">
+        <label>Main.cpp</label>
+        <link id="Main_8cpp-source"/>
+      </node>
+      <node id="551">
+        <label>ConsoleImpl.cpp</label>
+        <link id="ConsoleImpl_8cpp-source"/>
+      </node>
+      <node id="558">
+        <label>ObjQuadrangle.cpp</label>
+        <link id="ObjQuadrangle_8cpp-source"/>
+      </node>
+      <node id="565">
+        <label>SpriteMesh.cpp</label>
+        <link id="SpriteMesh_8cpp-source"/>
+      </node>
+      <node id="561">
+        <label>Sound.cpp</label>
+        <link id="Sound_8cpp-source"/>
+      </node>
+      <node id="552">
+        <label>Exception.cpp</label>
+        <link id="Exception_8cpp-source"/>
+      </node>
+      <node id="556">
+        <label>Obj3D.cpp</label>
+        <link id="Obj3D_8cpp-source"/>
+      </node>
+      <node id="557">
+        <label>Obj3DL.cpp</label>
+        <link id="Obj3DL_8cpp-source"/>
+      </node>
+      <node id="549">
+        <label>AbstractSprite.cpp</label>
+        <link id="AbstractSprite_8cpp-source"/>
+      </node>
+      <node id="564">
+        <label>Sprite3D.cpp</label>
+        <link id="Sprite3D_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <briefdescription>
+<para>
+\C\D\A\\81\8bIN\e\?\O\e\e?IAE?s1t?sAe\83ÊA. </para>
+    </briefdescription>
+    <detaileddescription>
+<simplesect kind="author"><title>oi?O: </title><para>
+S.F. </para>
+</simplesect><simplesect kind="version"><title>\D!?\\81C\c\o: </title><para>
+$Id:</para>
+</simplesect><para>
+Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved. </para>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline></codeline>
+<linenumber line="11"/><codeline></codeline>
+<linenumber line="12"/><codeline><highlight class="preprocessor">#ifndef _SFDEBUG</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define _SFDEBUG</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="preprocessor"></highlight><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#ifndef _BORLAND</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define _CRTDBG_MAP_ALLOC</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &lt;stdlib.h&gt;</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="preprocessor">#include &lt;crtdbg.h&gt;</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="preprocessor">      #define DEBUG_NEW new(_NORMAL_BLOCK,__FILE__,__LINE__)</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#else</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">  #define DEBUG_NEW new</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/sfdebug.h"/>
+  </compounddef>
+  <compounddef id="sfglib_8cpp" kind="file">
+    <compoundname>sfglib.cpp</compoundname>
+    <includes local="yes">stdafx.h</includes>
+    <includes id="sfdebug_8h" local="yes">sfdebug.h</includes>
+    <includes local="yes">math.h</includes>
+    <includes local="no">list</includes>
+    <includes local="no">queue</includes>
+    <includes local="no">memory</includes>
+    <includes local="no">map</includes>
+    <includes local="no">iostream</includes>
+    <includes local="no">strstream</includes>
+    <includes local="yes">windows.h</includes>
+    <includes local="yes">windowsx.h</includes>
+    <includes local="yes">d3d8.h</includes>
+    <includes local="yes">d3dx8.h</includes>
+    <includes local="yes">dmusici.h</includes>
+    <includes local="yes">dinput.h</includes>
+    <includes id="dxerr8sf_8h" local="yes">dxerr8sf.h</includes>
+    <includes local="yes">exception.h</includes>
+    <includes id="sfglib_2resource_8h" local="yes">resource.h</includes>
+    <includes id="System_8h" local="yes">System.h</includes>
+    <includes id="Console_8h" local="yes">Console.h</includes>
+    <includes id="Obj_8h" local="yes">Obj.h</includes>
+    <includes id="singleton_8h" local="yes">singleton.h</includes>
+    <includes id="AbstractSprite_8h" local="yes">AbstractSprite.h</includes>
+    <includes id="ConsoleImpl_8h" local="yes">ConsoleImpl.h</includes>
+    <includes id="SoundImpl_8h" local="yes">SoundImpl.h</includes>
+    <includes id="InputImpl_8h" local="yes">InputImpl.h</includes>
+    <includes id="Main_8h" local="yes">Main.h</includes>
+    <includes id="SystemImpl_8h" local="yes">SystemImpl.h</includes>
+    <incdepgraph>
+      <node id="568">
+        <label>sfglib.cpp</label>
+        <link id="sfglib.cpp"/>
+        <childnode id="569" relation="public-inheritance">
+        </childnode>
+        <childnode id="570" relation="public-inheritance">
+        </childnode>
+        <childnode id="571" relation="public-inheritance">
+        </childnode>
+        <childnode id="572" relation="public-inheritance">
+        </childnode>
+        <childnode id="573" relation="public-inheritance">
+        </childnode>
+        <childnode id="574" relation="public-inheritance">
+        </childnode>
+        <childnode id="575" relation="public-inheritance">
+        </childnode>
+        <childnode id="576" relation="public-inheritance">
+        </childnode>
+        <childnode id="577" relation="public-inheritance">
+        </childnode>
+        <childnode id="578" relation="public-inheritance">
+        </childnode>
+        <childnode id="579" relation="public-inheritance">
+        </childnode>
+        <childnode id="580" relation="public-inheritance">
+        </childnode>
+        <childnode id="581" relation="public-inheritance">
+        </childnode>
+        <childnode id="582" relation="public-inheritance">
+        </childnode>
+        <childnode id="583" relation="public-inheritance">
+        </childnode>
+        <childnode id="584" relation="public-inheritance">
+        </childnode>
+        <childnode id="586" relation="public-inheritance">
+        </childnode>
+        <childnode id="587" relation="public-inheritance">
+        </childnode>
+        <childnode id="588" relation="public-inheritance">
+        </childnode>
+        <childnode id="591" relation="public-inheritance">
+        </childnode>
+        <childnode id="592" relation="public-inheritance">
+        </childnode>
+        <childnode id="593" relation="public-inheritance">
+        </childnode>
+        <childnode id="594" relation="public-inheritance">
+        </childnode>
+        <childnode id="595" relation="public-inheritance">
+        </childnode>
+        <childnode id="596" relation="public-inheritance">
+        </childnode>
+        <childnode id="598" relation="public-inheritance">
+        </childnode>
+        <childnode id="600" relation="public-inheritance">
+        </childnode>
+        <childnode id="601" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="572">
+        <label>list</label>
+      </node>
+      <node id="593">
+        <label>singleton.h</label>
+        <link id="singleton_8h"/>
+        <childnode id="574" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="585">
+        <label>dxerr8.h</label>
+      </node>
+      <node id="573">
+        <label>queue</label>
+      </node>
+      <node id="596">
+        <label>SoundImpl.h</label>
+        <link id="SoundImpl_8h"/>
+        <childnode id="590" relation="public-inheritance">
+        </childnode>
+        <childnode id="597" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="578">
+        <label>windows.h</label>
+      </node>
+      <node id="569">
+        <label>stdafx.h</label>
+      </node>
+      <node id="599">
+        <label>Input.h</label>
+        <link id="Input_8h"/>
+        <childnode id="590" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="577">
+        <label>strstream</label>
+      </node>
+      <node id="588">
+        <label>System.h</label>
+        <link id="System_8h"/>
+        <childnode id="589" relation="public-inheritance">
+        </childnode>
+        <childnode id="590" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="579">
+        <label>windowsx.h</label>
+      </node>
+      <node id="587">
+        <label>resource.h</label>
+        <link id="sfglib_2resource_8h-source"/>
+      </node>
+      <node id="582">
+        <label>dmusici.h</label>
+      </node>
+      <node id="589">
+        <label>string</label>
+      </node>
+      <node id="595">
+        <label>ConsoleImpl.h</label>
+        <link id="ConsoleImpl_8h"/>
+        <childnode id="590" relation="public-inheritance">
+        </childnode>
+        <childnode id="591" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="584">
+        <label>dxerr8sf.h</label>
+        <link id="dxerr8sf_8h-source"/>
+        <childnode id="585" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="570">
+        <label>sfdebug.h</label>
+        <link id="sfdebug_8h"/>
+      </node>
+      <node id="575">
+        <label>map</label>
+      </node>
+      <node id="594">
+        <label>AbstractSprite.h</label>
+        <link id="AbstractSprite_8h-source"/>
+        <childnode id="590" relation="public-inheritance">
+        </childnode>
+        <childnode id="591" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="601">
+        <label>SystemImpl.h</label>
+        <link id="SystemImpl_8h-source"/>
+        <childnode id="590" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="590">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="591">
+        <label>Console.h</label>
+        <link id="Console_8h"/>
+        <childnode id="574" relation="public-inheritance">
+        </childnode>
+        <childnode id="590" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="598">
+        <label>InputImpl.h</label>
+        <link id="InputImpl_8h"/>
+        <childnode id="590" relation="public-inheritance">
+        </childnode>
+        <childnode id="599" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="597">
+        <label>Sound.h</label>
+        <link id="Sound_8h"/>
+        <childnode id="590" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="571">
+        <label>math.h</label>
+      </node>
+      <node id="576">
+        <label>iostream</label>
+      </node>
+      <node id="592">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="590" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="580">
+        <label>d3d8.h</label>
+      </node>
+      <node id="600">
+        <label>Main.h</label>
+        <link id="Main_8h-source"/>
+      </node>
+      <node id="586">
+        <label>exception.h</label>
+      </node>
+      <node id="581">
+        <label>d3dx8.h</label>
+      </node>
+      <node id="574">
+        <label>memory</label>
+      </node>
+      <node id="583">
+        <label>dinput.h</label>
+      </node>
+    </incdepgraph>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="sfglib_8cpp_1a0" virt="normal" prot="public">
+        <name>WIN32_LEAN_AND_MEAN</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/sfglib.cpp" line="14" bodystart="14" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="func">
+      <memberdef kind="function" id="sfglib_8cpp_1a1" virt="normal" prot="public" const="no" volatile="no">
+        <type>BOOL APIENTRY</type>
+        <name>DllMain</name>
+        <param>
+          <type>HANDLE</type>
+          <declname>hModule</declname>
+        </param>
+        <param>
+          <type>DWORD</type>
+          <declname>ul_reason_for_call</declname>
+        </param>
+        <param>
+          <type>LPVOID</type>
+          <declname>lpReserved</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/sfglib.cpp" line="56" bodystart="52" bodyend="58"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">// sfglib.cpp : DLL \\81\91\\81~\e\\81}!?\\81E\c\oIN?I\\81N\o\E\e \Y\?\o\E?oAe\83ÊA?\81E?T?1!\81\92</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="3"/><codeline></codeline>
+<linenumber line="4"/><codeline><highlight class="preprocessor">#pragma warning( disable : 4786 4251)  //STL?I\81EU1d3\81\8b?\81E</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="preprocessor">#include &quot;stdafx.h&quot;</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="sfdebug_8h">sfdebug.h</ref>&quot;</highlight></codeline>
+<linenumber line="8"/><codeline></codeline>
+<linenumber line="9"/><codeline></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// SYSTEM INCLUDES</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">//#define INITGUID</highlight></codeline>
+<linenumber line="13"/><codeline></codeline>
+<linenumber line="14"/><codeline><highlight class="preprocessor">#define WIN32_LEAN_AND_MEAN</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="preprocessor">#include &quot;math.h&quot;</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="preprocessor">#include &lt;list&gt;</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="preprocessor">#include &lt;queue&gt;</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="preprocessor">#include &lt;memory&gt;</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="preprocessor">#include &lt;map&gt;</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="preprocessor">#include &lt;iostream&gt;</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="preprocessor">#include &lt;strstream&gt;</highlight></codeline>
+<linenumber line="23"/><codeline></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor">#include &quot;windows.h&quot;</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor">#include &quot;windowsx.h&quot;</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor">#include &quot;d3d8.h&quot;</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor">#include &quot;d3dx8.h&quot;</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="preprocessor">#include &quot;dmusici.h&quot;</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="preprocessor">#include &quot;dinput.h&quot;</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor">#include &quot;dxerr8sf.h&quot;</highlight></codeline>
+<linenumber line="31"/><codeline></codeline>
+<linenumber line="32"/><codeline><highlight class="comment">// PROJECT INCLUDES</highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="34"/><codeline></codeline>
+<linenumber line="35"/><codeline><highlight class="preprocessor">#include &quot;exception.h&quot;</highlight></codeline>
+<linenumber line="36"/><codeline><highlight class="preprocessor">#include &quot;resource.h&quot;</highlight></codeline>
+<linenumber line="37"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="System_8h">System.h</ref>&quot;</highlight></codeline>
+<linenumber line="38"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="Console_8h">Console.h</ref>&quot;</highlight></codeline>
+<linenumber line="39"/><codeline><highlight class="preprocessor">#include &quot;Obj.h&quot;</highlight></codeline>
+<linenumber line="40"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="singleton_8h">singleton.h</ref>&quot;</highlight></codeline>
+<linenumber line="41"/><codeline><highlight class="preprocessor">#include &quot;AbstractSprite.h&quot;</highlight></codeline>
+<linenumber line="42"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="ConsoleImpl_8h">ConsoleImpl.h</ref>&quot;</highlight>      </codeline>
+<linenumber line="43"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="SoundImpl_8h">SoundImpl.h</ref>&quot;</highlight></codeline>
+<linenumber line="44"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="InputImpl_8h">InputImpl.h</ref>&quot;</highlight></codeline>
+<linenumber line="45"/><codeline><highlight class="preprocessor">#include &quot;Main.h&quot;</highlight></codeline>
+<linenumber line="46"/><codeline><highlight class="preprocessor">#include &quot;SystemImpl.h&quot;</highlight></codeline>
+<linenumber line="47"/><codeline></codeline>
+<linenumber line="48"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="49"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define new DEBUG_NEW</highlight></codeline>
+<linenumber line="50"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="51"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="52"/><codeline>BOOL APIENTRY DllMain( HANDLE hModule, </codeline>
+<linenumber line="53"/><codeline>                       <ref idref="namespacesf_1a0">DWORD</ref>  ul_reason_for_call, </codeline>
+<linenumber line="54"/><codeline>                       LPVOID lpReserved</codeline>
+<linenumber line="55"/><codeline>                                       )</codeline>
+<linenumber line="56"/><codeline>{</codeline>
+<linenumber line="57"/><codeline>    <highlight class="keywordflow">return</highlight> TRUE;</codeline>
+<linenumber line="58"/><codeline>}</codeline>
+<linenumber line="59"/><codeline></codeline>
+<linenumber line="60"/><codeline></codeline>
+<linenumber line="61"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/sfglib.cpp"/>
+  </compounddef>
+  <compounddef id="sfinterface_8h" kind="file">
+    <compoundname>sfinterface.h</compoundname>
+    <includedby id="SystemWin32_8h" local="yes">SystemWin32.h</includedby>
+    <invincdepgraph>
+      <node id="604">
+        <label>sfinterface.h</label>
+        <link id="sfinterface.h"/>
+        <childnode id="605" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="607">
+        <label>SystemImpl.cpp</label>
+        <link id="SystemImpl_8cpp-source"/>
+      </node>
+      <node id="606">
+        <label>InputImpl.cpp</label>
+        <link id="InputImpl_8cpp-source"/>
+      </node>
+      <node id="605">
+        <label>SystemWin32.h</label>
+        <link id="SystemWin32_8h"/>
+        <childnode id="606" relation="public-inheritance">
+        </childnode>
+        <childnode id="607" relation="public-inheritance">
+        </childnode>
+        <childnode id="608" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="608">
+        <label>SystemWin32.cpp</label>
+        <link id="SystemWin32_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="sfinterface_8h_1a0" virt="normal" prot="public">
+        <name>SF_INTERFACE</name>
+        <initializer>__declspec(novtable)</initializer>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfinterface.h" line="36" bodystart="36" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// Scene.h: Scene \\81P\e\1?I\?\o\?!?\O\\81\98\?\1</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  \\81E!?\o?I\?\o\?!?\O\\81\98!?\1?E?E?e\\81P\e\1?C?1!\81\92</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// IuIo!\81\98</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// 2000/02/05 \3\a\o\EAE2A</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// $Log: Scene.h,v $</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// Revision 1.2  2001/11/06 21:27:34  fujiwara</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// AcEy11?\81EA\81\8b\D\A\\81P\\81\91\A\\81~</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">// Revision 1.1  2001/10/28 21:40:37  fujiwara</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// DLL?EE\81Ê3a</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">// Revision 1.4  2001/07/09 20:30:09  fujiwara</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">// Revision 1.3  2001/07/01 01:03:44  fujiwara</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">// const ?I\81C\81áA??\81E</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">// CUAO\\81N\C\\81\92\??IAOAa\81ED2a</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:49:09  fujiwara</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="preprocessor">#ifndef SFINTERFACE_H</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define SFINTERFACE_H</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="34"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="35"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="36"/><codeline><highlight class="preprocessor">#define SF_INTERFACE __declspec(novtable)</highlight></codeline>
+<linenumber line="37"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="38"/><codeline><highlight class="preprocessor">#endif</highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfinterface.h"/>
+  </compounddef>
+  <compounddef id="singleton_8h" kind="file">
+    <compoundname>singleton.h</compoundname>
+    <includes local="no">memory</includes>
+    <includedby id="InputImpl_8cpp" local="yes">InputImpl.cpp</includedby>
+    <includedby id="sfglib_8cpp" local="yes">sfglib.cpp</includedby>
+    <includedby id="System_8cpp" local="yes">System.cpp</includedby>
+    <includedby id="SystemImpl_8cpp" local="yes">SystemImpl.cpp</includedby>
+    <incdepgraph>
+      <node id="609">
+        <label>singleton.h</label>
+        <link id="singleton.h"/>
+        <childnode id="610" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="610">
+        <label>memory</label>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="613">
+        <label>sfglib.cpp</label>
+        <link id="sfglib_8cpp-source"/>
+      </node>
+      <node id="611">
+        <label>singleton.h</label>
+        <link id="singleton.h"/>
+        <childnode id="612" relation="public-inheritance">
+        </childnode>
+        <childnode id="613" relation="public-inheritance">
+        </childnode>
+        <childnode id="614" relation="public-inheritance">
+        </childnode>
+        <childnode id="615" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="615">
+        <label>SystemImpl.cpp</label>
+        <link id="SystemImpl_8cpp-source"/>
+      </node>
+      <node id="612">
+        <label>InputImpl.cpp</label>
+        <link id="InputImpl_8cpp-source"/>
+      </node>
+      <node id="614">
+        <label>System.cpp</label>
+        <link id="System_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="singleton_8h_1a0" virt="normal" prot="public">
+        <name>DECLARE_SINGLETON</name>
+        <param><defname>X</defname></param>
+        <initializer>public: \
+               static X* const instance(void); \
+       private: \
+       typedef std::auto_ptr&lt;X&gt; _Instance; \
+               friend _Instance; \
+               static _Instance msInstance;</initializer>
+        <briefdescription>
+<para>
+Ao?A\?\o\\81P\e!?\EEE\81âs\T\\81P\i \\81E\o\\81\8b\e\E\oAe\83ÊA\T\\81P\i. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>X</parametername><parameterdescription><para>
+Ae\83ÊA?1?e\\81P\e\1I? </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/singleton.h" line="25" bodystart="19" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="singleton_8h_1a1" virt="normal" prot="public">
+        <name>IMPLEMENT_SINGLETON</name>
+        <param><defname>X</defname></param>
+        <param><defname>Y</defname></param>
+        <initializer>X::_Instance X::msInstance; \
+       X* const X::instance(void) \
+       { \
+       if(!msInstance.get()){ \
+               msInstance = _Instance(new Y); \
+       } \
+       return msInstance.get(); \
+       }</initializer>
+        <briefdescription>
+<para>
+\\81E\o\\81\8b\e\E\o?AAo\T\\81P\i. </para>
+        </briefdescription>
+        <detaileddescription>
+<para>
+<parameterlist kind="param"><title>\81\8bu?o: </title><parametername>X</parametername><parameterdescription><para>
+Ae\83ÊA?1?e\\81P\e\1I?!EAI?i?I?AAo\\81P\e\1)  </para>
+</parameterdescription><parametername>Y</parametername><parameterdescription><para>
+\?\o\1\?\o\1?oA\81CAR?1?e\\81P\e\1I?(AI?i?IX?EA\81}?\81C!E </para>
+</parameterdescription></parameterlist></para>
+        </detaileddescription>
+        <location file="J:/project/sfglib/singleton.h" line="54" bodystart="46" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+Singleton\N\?!?\o?I?AAo?o?I?\81E?c?e???a?I\T\\81P\iAe\83ÊA\O\!\?\e. </para>
+    </briefdescription>
+    <detaileddescription>
+<para>
+STL?Iauto_ptr ?o\81âEIN?\81E?A???T?1!\81\92!! </para>
+<simplesect kind="author"><title>oi?O: </title><para>
+S.F. </para>
+</simplesect><simplesect kind="version"><title>\D!?\\81C\c\o: </title><para>
+$Id:</para>
+</simplesect><para>
+Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved. </para>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline></codeline>
+<linenumber line="12"/><codeline></codeline>
+<linenumber line="13"/><codeline><highlight class="preprocessor">#ifndef _SINGLETON</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define _SINGLETON</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &lt;memory&gt;</highlight></codeline>
+<linenumber line="16"/><codeline></codeline>
+<linenumber line="18"/><codeline></codeline>
+<linenumber line="19" refid="singleton_8h_1a0"/><codeline><highlight class="preprocessor">#define DECLARE_SINGLETON(X)         \</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="preprocessor">      public: \</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="preprocessor">              static X* const instance(void); \</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="preprocessor">      private: \</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor">      typedef std::auto_ptr&lt;X&gt; _Instance; \</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor">              friend _Instance; \</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor">              static _Instance msInstance;</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#ifdef _BORLAND </highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="29"/><codeline></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor">#define IMPLEMENT_SINGLETON(X,Y) \</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor">      X::_Instance X::msInstance; \</highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="preprocessor">      X* const X::instance(void) \</highlight></codeline>
+<linenumber line="34"/><codeline><highlight class="preprocessor">      { \</highlight></codeline>
+<linenumber line="35"/><codeline><highlight class="preprocessor">      if(!msInstance.get()){ \</highlight></codeline>
+<linenumber line="36"/><codeline><highlight class="preprocessor">              _Instance temp(new Y); \</highlight></codeline>
+<linenumber line="37"/><codeline><highlight class="preprocessor">              msInstance = temp; \</highlight></codeline>
+<linenumber line="38"/><codeline><highlight class="preprocessor">      } \</highlight></codeline>
+<linenumber line="39"/><codeline><highlight class="preprocessor">      return msInstance.get(); \</highlight></codeline>
+<linenumber line="40"/><codeline><highlight class="preprocessor">      }</highlight></codeline>
+<linenumber line="41"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#else</highlight></codeline>
+<linenumber line="42"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="44"/><codeline></codeline>
+<linenumber line="46" refid="singleton_8h_1a1"/><codeline><highlight class="preprocessor">#define IMPLEMENT_SINGLETON(X,Y) \</highlight></codeline>
+<linenumber line="47"/><codeline><highlight class="preprocessor">      X::_Instance X::msInstance; \</highlight></codeline>
+<linenumber line="48"/><codeline><highlight class="preprocessor">      X* const X::instance(void) \</highlight></codeline>
+<linenumber line="49"/><codeline><highlight class="preprocessor">      { \</highlight></codeline>
+<linenumber line="50"/><codeline><highlight class="preprocessor">      if(!msInstance.get()){ \</highlight></codeline>
+<linenumber line="51"/><codeline><highlight class="preprocessor">              msInstance = _Instance(new Y); \</highlight></codeline>
+<linenumber line="52"/><codeline><highlight class="preprocessor">      } \</highlight></codeline>
+<linenumber line="53"/><codeline><highlight class="preprocessor">      return msInstance.get(); \</highlight></codeline>
+<linenumber line="54"/><codeline><highlight class="preprocessor">      }</highlight></codeline>
+<linenumber line="55"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="56"/><codeline><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="57"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/singleton.h"/>
+  </compounddef>
+  <compounddef id="Sound_8cpp" kind="file">
+    <compoundname>Sound.cpp</compoundname>
+    <includes id="sfdebug_8h" local="yes">sfdebug.h</includes>
+    <includes local="yes">stdio.h</includes>
+    <includes local="yes">system.h</includes>
+    <includes id="Sound_8h" local="yes">Sound.h</includes>
+    <incdepgraph>
+      <node id="617">
+        <label>sfdebug.h</label>
+        <link id="sfdebug_8h"/>
+      </node>
+      <node id="621">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="616">
+        <label>Sound.cpp</label>
+        <link id="Sound.cpp"/>
+        <childnode id="617" relation="public-inheritance">
+        </childnode>
+        <childnode id="618" relation="public-inheritance">
+        </childnode>
+        <childnode id="619" relation="public-inheritance">
+        </childnode>
+        <childnode id="620" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="620">
+        <label>Sound.h</label>
+        <link id="Sound_8h"/>
+        <childnode id="621" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="619">
+        <label>system.h</label>
+      </node>
+      <node id="618">
+        <label>stdio.h</label>
+      </node>
+    </incdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1sound">sf::system::sound</innernamespace>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">//  Sound Ae?Y\\81P\e\1</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  IuIo:</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// $Log: Sound.cpp,v $</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:35  fujiwara</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// Revision 1.3  2001/07/01 21:30:34  fujiwara</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// \a\a\e\e!?\\81P\A\\81\98\A\\81P\81C\81áA??\81E</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:49:02  fujiwara</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">// 2001/01/29 \a\a\e!?\e!?\\81P\81C!?DIN\e\?\O\e\e?IAE2A </highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="sfdebug_8h">sfdebug.h</ref>&quot;</highlight></codeline>
+<linenumber line="23"/><codeline></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor">#include &quot;stdio.h&quot;</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor">#include &quot;system.h&quot;</highlight></codeline>
+<linenumber line="26"/><codeline></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define new DEBUG_NEW</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="Sound_8h">Sound.h</ref>&quot;</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="keyword">namespace </highlight>sf {</codeline>
+<linenumber line="33"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="34" refid="namespacesf_1_1system_1_1sound_1"/><codeline>             <highlight class="keyword">namespace </highlight>sound {</codeline>
+<linenumber line="35"/><codeline></codeline>
+<linenumber line="36"/><codeline>Sound::Sound()</codeline>
+<linenumber line="37"/><codeline>{</codeline>
+<linenumber line="38"/><codeline></codeline>
+<linenumber line="39"/><codeline>}<highlight class="comment">// Sound()</highlight></codeline>
+<linenumber line="40"/><codeline></codeline>
+<linenumber line="41"/><codeline>Sound::~Sound()</codeline>
+<linenumber line="42"/><codeline>{</codeline>
+<linenumber line="43"/><codeline></codeline>
+<linenumber line="44"/><codeline>}<highlight class="comment">// ~Sound()</highlight></codeline>
+<linenumber line="45"/><codeline></codeline>
+<linenumber line="46"/><codeline>              }<highlight class="comment">// sound</highlight></codeline>
+<linenumber line="47"/><codeline>      }<highlight class="comment">// system</highlight></codeline>
+<linenumber line="48"/><codeline>}<highlight class="comment">// sf</highlight></codeline>
+<linenumber line="49"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Sound.cpp"/>
+  </compounddef>
+  <compounddef id="Sound_8h" kind="file">
+    <compoundname>Sound.h</compoundname>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includedby id="SoundImpl_8h" local="yes">SoundImpl.h</includedby>
+    <includedby id="Sound_8cpp" local="yes">Sound.cpp</includedby>
+    <includedby id="SoundImpl_8cpp" local="yes">SoundImpl.cpp</includedby>
+    <incdepgraph>
+      <node id="624">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="623">
+        <label>Sound.h</label>
+        <link id="Sound.h"/>
+        <childnode id="624" relation="public-inheritance">
+        </childnode>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="628">
+        <label>sfglib.cpp</label>
+        <link id="sfglib_8cpp-source"/>
+      </node>
+      <node id="629">
+        <label>SoundImpl.cpp</label>
+        <link id="SoundImpl_8cpp-source"/>
+      </node>
+      <node id="626">
+        <label>SoundImpl.h</label>
+        <link id="SoundImpl_8h"/>
+        <childnode id="627" relation="public-inheritance">
+        </childnode>
+        <childnode id="628" relation="public-inheritance">
+        </childnode>
+        <childnode id="629" relation="public-inheritance">
+        </childnode>
+        <childnode id="630" relation="public-inheritance">
+        </childnode>
+        <childnode id="631" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="631">
+        <label>SystemImpl.cpp</label>
+        <link id="SystemImpl_8cpp-source"/>
+      </node>
+      <node id="627">
+        <label>InputImpl.cpp</label>
+        <link id="InputImpl_8cpp-source"/>
+      </node>
+      <node id="632">
+        <label>Sound.cpp</label>
+        <link id="Sound_8cpp-source"/>
+      </node>
+      <node id="630">
+        <label>System.cpp</label>
+        <link id="System_8cpp-source"/>
+      </node>
+      <node id="625">
+        <label>Sound.h</label>
+        <link id="Sound.h"/>
+        <childnode id="626" relation="public-inheritance">
+        </childnode>
+        <childnode id="632" relation="public-inheritance">
+        </childnode>
+        <childnode id="629" relation="public-inheritance">
+        </childnode>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1sound">sf::system::sound</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1sound_1_1volume">sf::system::sound::volume</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="Sound_8h_1a0" virt="normal" prot="public">
+        <name>AFX_SOUND_H__87CC9C63_C71A_4276_9ACF_912DC2A4DD44__INCLUDED_</name>
+        <briefdescription>
+<para>
+Ao?A\?\o\\81P\e!?\EEE\81âs\T\\81P\i. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sound.h" line="13" bodystart="13" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+\\83Ê\|\o\E?t?e?I\\81P\e\1!\81\91Ae?o!\81\91EN?oAe\83ÊA?o1O?|!\81\92. </para>
+    </briefdescription>
+    <detaileddescription>
+<simplesect kind="author"><title>oi?O: </title><para>
+S.F. </para>
+</simplesect><simplesect kind="version"><title>\D!?\\81C\c\o: </title><para>
+$Id:</para>
+</simplesect><para>
+Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved. </para>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline></codeline>
+<linenumber line="11"/><codeline></codeline>
+<linenumber line="12"/><codeline><highlight class="preprocessor">#if !defined(AFX_SOUND_H__87CC9C63_C71A_4276_9ACF_912DC2A4DD44__INCLUDED_)</highlight></codeline>
+<linenumber line="13" refid="Sound_8h_1a0"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_SOUND_H__87CC9C63_C71A_4276_9ACF_912DC2A4DD44__INCLUDED_</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="20"/><codeline><highlight class="keyword">namespace </highlight>sf{</codeline>
+<linenumber line="21"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="23"/><codeline>              <highlight class="keyword">namespace </highlight>sound {</codeline>
+<linenumber line="24"/><codeline>                      <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1sound_1a0">OBJECT_MAX</ref> = 128;</codeline>
+<linenumber line="25"/><codeline>                      <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1sound_1a1">LOAD_ERROR</ref> = -1; </codeline>
+<linenumber line="26"/><codeline></codeline>
+<linenumber line="27"/><codeline>                      <highlight class="keyword">enum</highlight> <ref idref="namespacesf_1_1system_1_1sound_1a5">TYPE</ref></codeline>
+<linenumber line="28"/><codeline>                      {</codeline>
+<linenumber line="29"/><codeline>                              <ref idref="namespacesf_1_1system_1_1sound_1a5a2">NONE</ref>,</codeline>
+<linenumber line="30"/><codeline>                              <ref idref="namespacesf_1_1system_1_1sound_1a5a3">TEST</ref></codeline>
+<linenumber line="31"/><codeline>                      };</codeline>
+<linenumber line="32"/><codeline></codeline>
+<linenumber line="34" refid="namespacesf_1_1system_1_1sound_1_1volume_1"/><codeline>                   <highlight class="keyword">namespace </highlight>volume {</codeline>
+<linenumber line="35"/><codeline>                              <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1sound_1_1volume_1a0">MAX</ref> = 0;</codeline>
+<linenumber line="36"/><codeline>                              <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1sound_1_1volume_1a1">MIN</ref> = -9600;</codeline>
+<linenumber line="37"/><codeline>                      };</codeline>
+<linenumber line="38"/><codeline></codeline>
+<linenumber line="41" refid="classsf_1_1system_1_1sound_1_1Sound_1"/><codeline>                        <highlight class="keyword">class </highlight>Sound </codeline>
+<linenumber line="42"/><codeline>                      {</codeline>
+<linenumber line="43"/><codeline>                              <highlight class="comment">// LIFECYCLE //</highlight></codeline>
+<linenumber line="44"/><codeline>                      <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="46" refid="classsf_1_1system_1_1sound_1_1Sound_1a0"/><codeline>                              <ref idref="classsf_1_1system_1_1sound_1_1Sound_1a0">Sound</ref>(){};</codeline>
+<linenumber line="48" refid="classsf_1_1system_1_1sound_1_1Sound_1a1"/><codeline>                              <highlight class="keyword">virtual</highlight> <ref idref="classsf_1_1system_1_1sound_1_1Sound_1a1">~Sound</ref>(){};</codeline>
+<linenumber line="49"/><codeline>                              <highlight class="comment">// OPERATORS //</highlight></codeline>
+<linenumber line="50"/><codeline>                              <highlight class="comment">// OPERATIONS //</highlight></codeline>
+<linenumber line="53"/><codeline><highlight class="comment"></highlight>                               <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1sound_1_1Sound_1a2">initialize</ref>(<highlight class="keywordtype">void</highlight>) = 0;</codeline>
+<linenumber line="54"/><codeline>      </codeline>
+<linenumber line="58"/><codeline>                              <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1sound_1_1Sound_1a3">load</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> ObjNo,<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> pFileName) = 0;</codeline>
+<linenumber line="59"/><codeline></codeline>
+<linenumber line="64"/><codeline>                              <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="classsf_1_1system_1_1sound_1_1Sound_1a3">load</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> pFileName) = 0;</codeline>
+<linenumber line="65"/><codeline></codeline>
+<linenumber line="68"/><codeline>                              <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1sound_1_1Sound_1a5">unload</ref>() = 0;</codeline>
+<linenumber line="69"/><codeline></codeline>
+<linenumber line="75"/><codeline>                              <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1sound_1_1Sound_1a6">play</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> ObjNo,<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> Repeat,<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bPrimary,<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bSync) = 0;</codeline>
+<linenumber line="76"/><codeline></codeline>
+<linenumber line="79"/><codeline>                              <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1sound_1_1Sound_1a7">stop</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> ObjNo = 0) = 0;</codeline>
+<linenumber line="80"/><codeline></codeline>
+<linenumber line="83"/><codeline>                              <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1sound_1_1Sound_1a8">update</ref>() = 0;</codeline>
+<linenumber line="84"/><codeline>                              <highlight class="comment">// ACCESS //</highlight></codeline>
+<linenumber line="85"/><codeline></codeline>
+<linenumber line="88"/><codeline>                              <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1sound_1_1Sound_1a10">masterVolume</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> value) = 0;</codeline>
+<linenumber line="89"/><codeline></codeline>
+<linenumber line="92"/><codeline>                              <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="classsf_1_1system_1_1sound_1_1Sound_1a10">masterVolume</ref>() <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="93"/><codeline>                              </codeline>
+<linenumber line="96"/><codeline>                              <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1sound_1_1Sound_1a12">volumeMax</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> value) = 0;</codeline>
+<linenumber line="97"/><codeline></codeline>
+<linenumber line="100"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="classsf_1_1system_1_1sound_1_1Sound_1a12">volumeMax</ref>()  <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="101"/><codeline>                             </codeline>
+<linenumber line="102"/><codeline>                             <highlight class="comment">// INQUIRY //</highlight></codeline>
+<linenumber line="103"/><codeline>                             </codeline>
+<linenumber line="107"/><codeline>                             <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1sound_1_1Sound_1a13">isEnabled</ref>(<highlight class="keywordtype">void</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="108"/><codeline></codeline>
+<linenumber line="109"/><codeline>                     };</codeline>
+<linenumber line="110"/><codeline>             }</codeline>
+<linenumber line="111"/><codeline>     }</codeline>
+<linenumber line="112"/><codeline>}</codeline>
+<linenumber line="113"/><codeline>}</codeline>
+<linenumber line="114"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_SOUND_H__87CC9C63_C71A_4276_9ACF_912DC2A4DD44__INCLUDED_)</highlight></codeline>
+<linenumber line="115"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Sound.h"/>
+  </compounddef>
+  <compounddef id="SoundImpl_8cpp" kind="file">
+    <compoundname>SoundImpl.cpp</compoundname>
+    <includes id="sfdebug_8h" local="yes">sfdebug.h</includes>
+    <includes local="yes">windows.h</includes>
+    <includes local="yes">windowsx.h</includes>
+    <includes local="no">dmusici.h</includes>
+    <includes id="dxerr8sf_8h" local="yes">dxerr8sf.h</includes>
+    <includes local="no">string</includes>
+    <includes local="yes">exception.h</includes>
+    <includes id="System_8h" local="yes">System.h</includes>
+    <includes id="Input_8h" local="yes">Input.h</includes>
+    <includes id="Sound_8h" local="yes">Sound.h</includes>
+    <includes id="Console_8h" local="yes">Console.h</includes>
+    <includes id="SoundImpl_8h" local="yes">SoundImpl.h</includes>
+    <incdepgraph>
+      <node id="639">
+        <label>dxerr8.h</label>
+      </node>
+      <node id="633">
+        <label>SoundImpl.cpp</label>
+        <link id="SoundImpl.cpp"/>
+        <childnode id="634" relation="public-inheritance">
+        </childnode>
+        <childnode id="635" relation="public-inheritance">
+        </childnode>
+        <childnode id="636" relation="public-inheritance">
+        </childnode>
+        <childnode id="637" relation="public-inheritance">
+        </childnode>
+        <childnode id="638" relation="public-inheritance">
+        </childnode>
+        <childnode id="640" relation="public-inheritance">
+        </childnode>
+        <childnode id="641" relation="public-inheritance">
+        </childnode>
+        <childnode id="642" relation="public-inheritance">
+        </childnode>
+        <childnode id="644" relation="public-inheritance">
+        </childnode>
+        <childnode id="645" relation="public-inheritance">
+        </childnode>
+        <childnode id="646" relation="public-inheritance">
+        </childnode>
+        <childnode id="648" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="648">
+        <label>SoundImpl.h</label>
+        <link id="SoundImpl_8h"/>
+        <childnode id="643" relation="public-inheritance">
+        </childnode>
+        <childnode id="645" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="635">
+        <label>windows.h</label>
+      </node>
+      <node id="644">
+        <label>Input.h</label>
+        <link id="Input_8h"/>
+        <childnode id="643" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="642">
+        <label>System.h</label>
+        <link id="System_8h"/>
+        <childnode id="640" relation="public-inheritance">
+        </childnode>
+        <childnode id="643" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="636">
+        <label>windowsx.h</label>
+      </node>
+      <node id="637">
+        <label>dmusici.h</label>
+      </node>
+      <node id="640">
+        <label>string</label>
+      </node>
+      <node id="638">
+        <label>dxerr8sf.h</label>
+        <link id="dxerr8sf_8h-source"/>
+        <childnode id="639" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="634">
+        <label>sfdebug.h</label>
+        <link id="sfdebug_8h"/>
+      </node>
+      <node id="643">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="646">
+        <label>Console.h</label>
+        <link id="Console_8h"/>
+        <childnode id="647" relation="public-inheritance">
+        </childnode>
+        <childnode id="643" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="645">
+        <label>Sound.h</label>
+        <link id="Sound_8h"/>
+        <childnode id="643" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="641">
+        <label>exception.h</label>
+      </node>
+      <node id="647">
+        <label>memory</label>
+      </node>
+    </incdepgraph>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="SoundImpl_8cpp_1a0" virt="normal" prot="public">
+        <name>WIN32_LEAN_AND_MEAN</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.cpp" line="34" bodystart="34" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">//  Sound Ae?Y\\81P\e\1?I?AAo\\81P\e\1?C?\81\91?eSoundImpl!\81\91SoundImpl::Queue?I?AAo?C?1!\81\92</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  Win32!\81\91DirectX8?C?AAo?\83Ê?i?T?1!\81\92</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">//  IuIo:</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// $Log: SoundImpl.cpp,v $</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:36  fujiwara</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// Revision 1.5  2001/07/09 20:30:09  fujiwara</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// Revision 1.4  2001/07/01 21:30:34  fujiwara</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">// \a\a\e\e!?\\81P\A\\81\98\A\\81P\81C\81áA??\81E</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// Revision 1.3  2001/05/13 20:04:24  fujiwara</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P?\81ÊE\81PA\81C?\81E???I?C?e?e?u?\81P!\81\92</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">// ?\81áAA?I\\83Ê\|\o\E\A\1\E</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:49:01  fujiwara</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="comment">// 2001/01/29 \a\a\e!?\e!?\\81P\81C!?DIN\e\?\O\e\e?IAE2A </highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="sfdebug_8h">sfdebug.h</ref>&quot;</highlight></codeline>
+<linenumber line="31"/><codeline></codeline>
+<linenumber line="32"/><codeline><highlight class="comment">// SYSTEM INCLUDES</highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="34"/><codeline><highlight class="preprocessor">#define WIN32_LEAN_AND_MEAN</highlight></codeline>
+<linenumber line="35"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;windows.h&quot;</highlight></codeline>
+<linenumber line="36"/><codeline><highlight class="preprocessor">#include &quot;windowsx.h&quot;</highlight></codeline>
+<linenumber line="37"/><codeline><highlight class="preprocessor">#include &lt;dmusici.h&gt;</highlight></codeline>
+<linenumber line="38"/><codeline><highlight class="preprocessor">#include &quot;dxerr8sf.h&quot;</highlight></codeline>
+<linenumber line="39"/><codeline><highlight class="preprocessor">#include &lt;string&gt;</highlight></codeline>
+<linenumber line="40"/><codeline></codeline>
+<linenumber line="41"/><codeline><highlight class="comment">// PROJECT INCLUDES</highlight></codeline>
+<linenumber line="42"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="43"/><codeline><highlight class="preprocessor">#include &quot;exception.h&quot;</highlight></codeline>
+<linenumber line="44"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="System_8h">System.h</ref>&quot;</highlight></codeline>
+<linenumber line="45"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="Input_8h">Input.h</ref>&quot;</highlight></codeline>
+<linenumber line="46"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="Sound_8h">Sound.h</ref>&quot;</highlight></codeline>
+<linenumber line="47"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="Console_8h">Console.h</ref>&quot;</highlight></codeline>
+<linenumber line="48"/><codeline></codeline>
+<linenumber line="49"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="50"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define new DEBUG_NEW</highlight></codeline>
+<linenumber line="51"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="52"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="53"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="SoundImpl_8h">SoundImpl.h</ref>&quot;</highlight></codeline>
+<linenumber line="54"/><codeline></codeline>
+<linenumber line="55"/><codeline><highlight class="comment">// namespace </highlight></codeline>
+<linenumber line="56"/><codeline><highlight class="keyword">using</highlight> <highlight class="keyword">namespace </highlight>sf::system::sound;</codeline>
+<linenumber line="57"/><codeline></codeline>
+<linenumber line="58"/><codeline><highlight class="comment">// ---------------------------------------------------------------------------</highlight></codeline>
+<linenumber line="59"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="60"/><codeline><highlight class="comment">// SoundImpl \\81P\e\1</highlight></codeline>
+<linenumber line="61"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="62"/><codeline><highlight class="comment">// ---------------------------------------------------------------------------</highlight></codeline>
+<linenumber line="63"/><codeline></codeline>
+<linenumber line="64"/><codeline><highlight class="comment">// \3\o\1\E\e\\81P\? -------------------------------------------------------------</highlight></codeline>
+<linenumber line="65" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1a0"/><codeline>SoundImpl::SoundImpl()  </codeline>
+<linenumber line="66"/><codeline>{</codeline>
+<linenumber line="67"/><codeline>      mbEnabled = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="68"/><codeline>      mpLoader = NULL;</codeline>
+<linenumber line="69"/><codeline>      mpPerformance = NULL;</codeline>
+<linenumber line="70"/><codeline>      mpDefaultAudioPath = NULL;</codeline>
+<linenumber line="71"/><codeline></codeline>
+<linenumber line="72"/><codeline>      <highlight class="keywordflow">for</highlight>(<highlight class="keywordtype">int</highlight> i = 0;i &lt; <ref idref="namespacesf_1_1system_1_1sound_1a0">OBJECT_MAX</ref>;i++)</codeline>
+<linenumber line="73"/><codeline>      {</codeline>
+<linenumber line="74"/><codeline>              mpSegment[i] = NULL;</codeline>
+<linenumber line="75"/><codeline>              mpAudioPath[i] = NULL;</codeline>
+<linenumber line="76"/><codeline>              mbSegInUse[i] = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="77"/><codeline>              mFileName[i] = <highlight class="stringliteral">&quot;&quot;</highlight>;</codeline>
+<linenumber line="78"/><codeline>      }</codeline>
+<linenumber line="79"/><codeline>      </codeline>
+<linenumber line="80"/><codeline>      mVolumeMax = volume::MAX;</codeline>
+<linenumber line="81"/><codeline>      mMasterVolume = volume::MIN;</codeline>
+<linenumber line="82"/><codeline></codeline>
+<linenumber line="83"/><codeline>      initialize();</codeline>
+<linenumber line="84"/><codeline>                              </codeline>
+<linenumber line="85"/><codeline>}<highlight class="comment">// SoundImpl()</highlight></codeline>
+<linenumber line="86"/><codeline></codeline>
+<linenumber line="87"/><codeline><highlight class="comment">// \C\1\E\e\\81P\? ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="88" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1a1"/><codeline>SoundImpl::~SoundImpl()</codeline>
+<linenumber line="89"/><codeline>{</codeline>
+<linenumber line="90"/><codeline>      </codeline>
+<linenumber line="91"/><codeline>      <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a4">unload</ref>();</codeline>
+<linenumber line="92"/><codeline>      </codeline>
+<linenumber line="93"/><codeline>      <highlight class="keywordflow">if</highlight>(mpDefaultAudioPath)</codeline>
+<linenumber line="94"/><codeline>              <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o4">mpDefaultAudioPath</ref>-&gt;Release();</codeline>
+<linenumber line="95"/><codeline></codeline>
+<linenumber line="96"/><codeline>      <highlight class="keywordflow">if</highlight>(mpLoader){</codeline>
+<linenumber line="97"/><codeline>              <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o0">mpLoader</ref>-&gt;Release();</codeline>
+<linenumber line="98"/><codeline>              <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o0">mpLoader</ref> = NULL;</codeline>
+<linenumber line="99"/><codeline>      }</codeline>
+<linenumber line="100"/><codeline>     </codeline>
+<linenumber line="101"/><codeline>     <highlight class="keywordflow">if</highlight>(mpPerformance)</codeline>
+<linenumber line="102"/><codeline>     {</codeline>
+<linenumber line="103"/><codeline>             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o1">mpPerformance</ref>-&gt;CloseDown();</codeline>
+<linenumber line="104"/><codeline>             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o1">mpPerformance</ref>-&gt;Release();</codeline>
+<linenumber line="105"/><codeline>             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o1">mpPerformance</ref> = NULL;</codeline>
+<linenumber line="106"/><codeline>             </codeline>
+<linenumber line="107"/><codeline>     }</codeline>
+<linenumber line="108"/><codeline>} <highlight class="comment">// ~SoundImpl()</highlight></codeline>
+<linenumber line="109"/><codeline></codeline>
+<linenumber line="110"/><codeline><highlight class="comment">// ?e\81Lu2? ---------------------------------------------------------------------</highlight></codeline>
+<linenumber line="111" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1a13"/><codeline><highlight class="keywordtype">void</highlight> SoundImpl::initialize(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="112"/><codeline>{</codeline>
+<linenumber line="113"/><codeline>     </codeline>
+<linenumber line="114"/><codeline>     HRESULT hr = E_FAIL;</codeline>
+<linenumber line="115"/><codeline>     std::string errTmp = <highlight class="stringliteral">&quot;Sound Initialize Error:&quot;</highlight>;</codeline>
+<linenumber line="116"/><codeline></codeline>
+<linenumber line="117"/><codeline>     CoCreateInstance(CLSID_DirectMusicLoader, NULL, </codeline>
+<linenumber line="118"/><codeline>             CLSCTX_INPROC, IID_IDirectMusicLoader8,</codeline>
+<linenumber line="119"/><codeline>             (<highlight class="keywordtype">void</highlight>**)&amp;<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o0">mpLoader</ref>);</codeline>
+<linenumber line="120"/><codeline>     </codeline>
+<linenumber line="121"/><codeline>     CoCreateInstance(CLSID_DirectMusicPerformance, NULL,</codeline>
+<linenumber line="122"/><codeline>             CLSCTX_INPROC, IID_IDirectMusicPerformance8,</codeline>
+<linenumber line="123"/><codeline>             (<highlight class="keywordtype">void</highlight>**)&amp;<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o1">mpPerformance</ref> );</codeline>
+<linenumber line="124"/><codeline>     </codeline>
+<linenumber line="125"/><codeline>     <highlight class="comment">// Initialize the performance with the standard audio path.</highlight></codeline>
+<linenumber line="126"/><codeline>     <highlight class="comment">// This initializes both DirectMusic and DirectSound and </highlight></codeline>
+<linenumber line="127"/><codeline>     <highlight class="comment">// sets up the synthesizer. </highlight></codeline>
+<linenumber line="128"/><codeline>     hr = <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o1">mpPerformance</ref>-&gt;InitAudio( NULL, NULL, NULL, </codeline>
+<linenumber line="129"/><codeline>             DMUS_APATH_SHARED_STEREOPLUSREVERB, 64,</codeline>
+<linenumber line="130"/><codeline>             0, NULL );</codeline>
+<linenumber line="131"/><codeline>     </codeline>
+<linenumber line="132"/><codeline>     <highlight class="keywordflow">if</highlight>(FAILED(hr)){</codeline>
+<linenumber line="133"/><codeline>             errTmp += DXGetErrorString8(hr);</codeline>
+<linenumber line="134"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(errTmp,__FILE__,__LINE__);</codeline>
+<linenumber line="135"/><codeline>     }</codeline>
+<linenumber line="136"/><codeline>     </codeline>
+<linenumber line="137"/><codeline>     <highlight class="keywordtype">char</highlight> strPath[MAX_PATH] = <highlight class="stringliteral">&quot;.\\media\\&quot;</highlight>;</codeline>
+<linenumber line="138"/><codeline>     </codeline>
+<linenumber line="139"/><codeline>     <highlight class="comment">// Tell DirectMusic where the default search path is</highlight></codeline>
+<linenumber line="140"/><codeline>     WCHAR wstrSearchPath[MAX_PATH];</codeline>
+<linenumber line="141"/><codeline>     MultiByteToWideChar( CP_ACP, 0, strPath, -1, </codeline>
+<linenumber line="142"/><codeline>             wstrSearchPath, MAX_PATH );</codeline>
+<linenumber line="143"/><codeline>     </codeline>
+<linenumber line="144"/><codeline>     hr = <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o0">mpLoader</ref>-&gt;SetSearchDirectory( GUID_DirectMusicAllTypes, </codeline>
+<linenumber line="145"/><codeline>             wstrSearchPath, FALSE );</codeline>
+<linenumber line="146"/><codeline>     </codeline>
+<linenumber line="147"/><codeline>     <highlight class="keywordflow">if</highlight>(FAILED(hr)){</codeline>
+<linenumber line="148"/><codeline>             errTmp += DXGetErrorString8(hr);</codeline>
+<linenumber line="149"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(errTmp,__FILE__,__LINE__);</codeline>
+<linenumber line="150"/><codeline>     }</codeline>
+<linenumber line="151"/><codeline>     </codeline>
+<linenumber line="152"/><codeline>     <highlight class="comment">// \C\O\c\e\E?I\a!?\C\\81\92\a\N\1?IAsAe</highlight></codeline>
+<linenumber line="153"/><codeline>     hr = <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o1">mpPerformance</ref>-&gt;CreateStandardAudioPath(</codeline>
+<linenumber line="154"/><codeline>             DMUS_APATH_DYNAMIC_STEREO  , </codeline>
+<linenumber line="155"/><codeline>             64, </codeline>
+<linenumber line="156"/><codeline>             TRUE,</codeline>
+<linenumber line="157"/><codeline>             &amp;<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o4">mpDefaultAudioPath</ref>);</codeline>
+<linenumber line="158"/><codeline>     </codeline>
+<linenumber line="159"/><codeline>     <highlight class="keywordflow">if</highlight>(FAILED(hr)){</codeline>
+<linenumber line="160"/><codeline>             errTmp += DXGetErrorString8(hr);</codeline>
+<linenumber line="161"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(errTmp,__FILE__,__LINE__);</codeline>
+<linenumber line="162"/><codeline>     }</codeline>
+<linenumber line="163"/><codeline>     </codeline>
+<linenumber line="164"/><codeline>     <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o4">mpDefaultAudioPath</ref>-&gt;SetVolume(<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o7">mMasterVolume</ref>,0);</codeline>
+<linenumber line="165"/><codeline>     <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o10">mbEnabled</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="166"/><codeline>}<highlight class="comment">// initialize() </highlight></codeline>
+<linenumber line="167"/><codeline></codeline>
+<linenumber line="168"/><codeline><highlight class="comment">// \\83Ê\|\o\E?IoAA\81C -----------------------------------------------</highlight></codeline>
+<linenumber line="169" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1a5"/><codeline><highlight class="keywordtype">void</highlight> SoundImpl::play(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> ObjNo,<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> Repeat,<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bPrimary,<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bSync)</codeline>
+<linenumber line="170"/><codeline>{</codeline>
+<linenumber line="171"/><codeline>     <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a12">isEnabled</ref>() &amp;&amp; !<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o6">mbSegInUse</ref>[ObjNo] &amp;&amp; <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[ObjNo])</codeline>
+<linenumber line="172"/><codeline>     {</codeline>
+<linenumber line="173"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o9">mQueue</ref>.<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1a3">set</ref>(ObjNo,Repeat,bPrimary,bSync))</codeline>
+<linenumber line="174"/><codeline>                     <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o6">mbSegInUse</ref>[ObjNo] = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="175"/><codeline>     }</codeline>
+<linenumber line="176"/><codeline>     </codeline>
+<linenumber line="177"/><codeline>}<highlight class="comment">// play</highlight></codeline>
+<linenumber line="178"/><codeline></codeline>
+<linenumber line="179"/><codeline><highlight class="comment">// \-\a!??\81á?e\\83Ê\|\o\ENo?o?e?e?D?\81E!\81\91oAA\81C?1?e -----------------------</highlight></codeline>
+<linenumber line="180" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1a7"/><codeline><highlight class="keywordtype">void</highlight> SoundImpl::update()</codeline>
+<linenumber line="181"/><codeline>{</codeline>
+<linenumber line="182"/><codeline>     <highlight class="keywordflow">if</highlight>(!<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o9">mQueue</ref>.<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1a5">isEmpty</ref>()){</codeline>
+<linenumber line="183"/><codeline>             Queue::Data data;</codeline>
+<linenumber line="184"/><codeline>             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o9">mQueue</ref>.<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1a2">get</ref>(data);</codeline>
+<linenumber line="185"/><codeline></codeline>
+<linenumber line="186"/><codeline>             <highlight class="keywordflow">if</highlight>(!<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a12">isEnabled</ref>())</codeline>
+<linenumber line="187"/><codeline>                     <highlight class="keywordflow">return</highlight>;</codeline>
+<linenumber line="188"/><codeline></codeline>
+<linenumber line="189"/><codeline>             IDirectMusicAudioPath8* paudio_path = <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o3">mpAudioPath</ref>[data.mObjNo];</codeline>
+<linenumber line="190"/><codeline>             </codeline>
+<linenumber line="191"/><codeline>             <highlight class="keywordflow">if</highlight>(paudio_path == NULL)</codeline>
+<linenumber line="192"/><codeline>                     paudio_path = <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o4">mpDefaultAudioPath</ref>;</codeline>
+<linenumber line="193"/><codeline>             </codeline>
+<linenumber line="194"/><codeline>             <ref idref="namespacesf_1a0">DWORD</ref> flags = NULL;</codeline>
+<linenumber line="195"/><codeline></codeline>
+<linenumber line="196"/><codeline>             <highlight class="keywordflow">if</highlight>(!data.mbPrimary){</codeline>
+<linenumber line="197"/><codeline>                     flags |= DMUS_SEGF_SECONDARY;</codeline>
+<linenumber line="198"/><codeline><highlight class="comment">//                        flags |= DMUS_SEGF_CONTROL;</highlight></codeline>
+<linenumber line="199"/><codeline>             }</codeline>
+<linenumber line="200"/><codeline></codeline>
+<linenumber line="201"/><codeline>             <highlight class="keywordflow">if</highlight>(data.mbSync){</codeline>
+<linenumber line="202"/><codeline>                     flags |= DMUS_SEGF_BEAT;</codeline>
+<linenumber line="203"/><codeline><highlight class="comment">//                        flags &amp;= !DMUS_SEGF_CONTROL;</highlight></codeline>
+<linenumber line="204"/><codeline>             }</codeline>
+<linenumber line="205"/><codeline></codeline>
+<linenumber line="206"/><codeline>             <highlight class="keywordflow">if</highlight>(!data.mRepeat)</codeline>
+<linenumber line="207"/><codeline>                     <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[data.mObjNo]-&gt;SetRepeats(DMUS_SEG_REPEAT_INFINITE);</codeline>
+<linenumber line="208"/><codeline>             <highlight class="keywordflow">else</highlight></codeline>
+<linenumber line="209"/><codeline>                     <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[data.mObjNo]-&gt;SetRepeats(data.mRepeat - 1);</codeline>
+<linenumber line="210"/><codeline></codeline>
+<linenumber line="211"/><codeline>             </codeline>
+<linenumber line="212"/><codeline></codeline>
+<linenumber line="213"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[data.mObjNo]){</codeline>
+<linenumber line="214"/><codeline>                     <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o1">mpPerformance</ref>-&gt;PlaySegmentEx(</codeline>
+<linenumber line="215"/><codeline>                             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[data.mObjNo],  <highlight class="comment">// oAA\81C?1?e\\81â\\81\8b\a\o\E!\81\92</highlight></codeline>
+<linenumber line="216"/><codeline>                             NULL,       <highlight class="comment">// \?\o\\81\8b?E\81âEIN?1?e\N\e\a!?\?!\81\92?AAo?\83Ê?i?A???E??!\81\92</highlight></codeline>
+<linenumber line="217"/><codeline>                             NULL,       <highlight class="comment">// \E\e\o\\81C\\81E\c\o?E\81LO?1?e\N\e\a!?\?!\81\92 </highlight></codeline>
+<linenumber line="218"/><codeline>                             flags,          <highlight class="comment">// \O\e\\81\8b!\81\92</highlight></codeline>
+<linenumber line="219"/><codeline>                             0,          <highlight class="comment">// 3\81á\81âI\?\?\a!\81\920 ?IA??A?E3\81á\81âI!\81\92</highlight></codeline>
+<linenumber line="220"/><codeline>                             NULL,       <highlight class="comment">// \\81â\\81\8b\a\o\E?oAO?o?o?\81}?e?e\Y\?\o\?!\81\92</highlight></codeline>
+<linenumber line="221"/><codeline>                             NULL,       <highlight class="comment">// Aa\81âs?1?e\a\O\\81C\\81\98\\81P\E!\81\92</highlight></codeline>
+<linenumber line="222"/><codeline>                             paudio_path         <highlight class="comment">// \C\O\c\e\E?C?E???i1c?I\a!?\C\\81\92\a\N\1!\81\92</highlight></codeline>
+<linenumber line="223"/><codeline>                             );</codeline>
+<linenumber line="224"/><codeline>                     <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o6">mbSegInUse</ref>[data.mObjNo] = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="225"/><codeline>             }</codeline>
+<linenumber line="226"/><codeline>     }</codeline>
+<linenumber line="227"/><codeline>     </codeline>
+<linenumber line="228"/><codeline>}<highlight class="comment">// update</highlight></codeline>
+<linenumber line="229"/><codeline></codeline>
+<linenumber line="230"/><codeline><highlight class="comment">// \\83Ê\|\o\E\O\!\?\e?I\i!?\E ---------------------------------------</highlight></codeline>
+<linenumber line="231" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1a2"/><codeline><highlight class="keywordtype">void</highlight> SoundImpl::load(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> objNo,<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> pFileName)</codeline>
+<linenumber line="232"/><codeline>{</codeline>
+<linenumber line="233"/><codeline>     <highlight class="keywordflow">if</highlight>(!<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a12">isEnabled</ref>())</codeline>
+<linenumber line="234"/><codeline>             <highlight class="keywordflow">return</highlight>;</codeline>
+<linenumber line="235"/><codeline></codeline>
+<linenumber line="236"/><codeline>     <highlight class="keywordflow">if</highlight>(objNo &gt; <ref idref="namespacesf_1_1system_1_1sound_1a0">OBJECT_MAX</ref> &amp;&amp; objNo &lt; 0){</codeline>
+<linenumber line="237"/><codeline>             <highlight class="keywordflow">throw</highlight> RecoverbleErrorException(<highlight class="stringliteral">&quot;Sound Buffer is full&quot;</highlight>,__FILE__,__LINE__,<ref idref="classsf_1_1system_1_1Exception_1s4s2">sf::system::Exception::BUFFER_IS_FULL</ref>);</codeline>
+<linenumber line="238"/><codeline>     }</codeline>
+<linenumber line="239"/><codeline>     </codeline>
+<linenumber line="240"/><codeline>     <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o1">mpPerformance</ref>-&gt;Stop(NULL,NULL,0,0);</codeline>
+<linenumber line="241"/><codeline>     </codeline>
+<linenumber line="242"/><codeline>     <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[objNo]){</codeline>
+<linenumber line="243"/><codeline>             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[objNo]-&gt;Release();</codeline>
+<linenumber line="244"/><codeline>     }</codeline>
+<linenumber line="245"/><codeline>     </codeline>
+<linenumber line="246"/><codeline>     <highlight class="comment">// Load the segment from the file</highlight></codeline>
+<linenumber line="247"/><codeline>     WCHAR wstrFileName[MAX_PATH];</codeline>
+<linenumber line="248"/><codeline>     MultiByteToWideChar( CP_ACP, 0, pFileName, -1, </codeline>
+<linenumber line="249"/><codeline>             wstrFileName, MAX_PATH );</codeline>
+<linenumber line="250"/><codeline>     </codeline>
+<linenumber line="251"/><codeline>     <highlight class="keywordflow">if</highlight>( FAILED( <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o0">mpLoader</ref>-&gt;LoadObjectFromFile( CLSID_DirectMusicSegment,</codeline>
+<linenumber line="252"/><codeline>             IID_IDirectMusicSegment8,</codeline>
+<linenumber line="253"/><codeline>             wstrFileName,</codeline>
+<linenumber line="254"/><codeline>             (LPVOID*) &amp;<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[objNo] ) ) )</codeline>
+<linenumber line="255"/><codeline>     {</codeline>
+<linenumber line="256"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(<highlight class="stringliteral">&quot;Media not found&quot;</highlight>,__FILE__,__LINE__);</codeline>
+<linenumber line="257"/><codeline>     }</codeline>
+<linenumber line="258"/><codeline>     </codeline>
+<linenumber line="259"/><codeline>     IUnknown* pconfig = NULL;</codeline>
+<linenumber line="260"/><codeline>    </codeline>
+<linenumber line="261"/><codeline>     <highlight class="keywordflow">if</highlight>( SUCCEEDED( <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[objNo]-&gt;GetAudioPathConfig( &amp;pconfig ) ) )</codeline>
+<linenumber line="262"/><codeline>    {</codeline>
+<linenumber line="263"/><codeline>        <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o1">mpPerformance</ref>-&gt;CreateAudioPath( pconfig, TRUE, &amp;<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o3">mpAudioPath</ref>[objNo] );</codeline>
+<linenumber line="264"/><codeline>        pconfig-&gt;Release();</codeline>
+<linenumber line="265"/><codeline>             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[objNo]-&gt;Download(<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o3">mpAudioPath</ref>[objNo]);</codeline>
+<linenumber line="266"/><codeline>    } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="267"/><codeline>             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[objNo]-&gt;Download(<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o1">mpPerformance</ref>);</codeline>
+<linenumber line="268"/><codeline>     }</codeline>
+<linenumber line="269"/><codeline></codeline>
+<linenumber line="270"/><codeline>     <highlight class="keywordtype">char</highlight> *pf = strupr(strdup(const_cast&lt;char *&gt;(pFileName)));</codeline>
+<linenumber line="271"/><codeline>     <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o5">mFileName</ref>[objNo] = pf;</codeline>
+<linenumber line="272"/><codeline>     free(pf);</codeline>
+<linenumber line="273"/><codeline></codeline>
+<linenumber line="274"/><codeline>}<highlight class="comment">// load</highlight></codeline>
+<linenumber line="275"/><codeline></codeline>
+<linenumber line="276"/><codeline><highlight class="comment">//!!\\83Ê\|\o\E\a\O\\81C\\81\98\\81P\E?I\i!?\E !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="277" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1a3"/><codeline><highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> SoundImpl::load(<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> pFileName)</codeline>
+<linenumber line="278"/><codeline>{</codeline>
+<linenumber line="279"/><codeline>     </codeline>
+<linenumber line="280"/><codeline>     std::string tmp_str;</codeline>
+<linenumber line="281"/><codeline>     <highlight class="keywordtype">char</highlight> *pf = strupr(strdup(const_cast&lt;char *&gt;(pFileName)));</codeline>
+<linenumber line="282"/><codeline>     tmp_str = pf;</codeline>
+<linenumber line="283"/><codeline>     free(pf);</codeline>
+<linenumber line="284"/><codeline>     <highlight class="keywordtype">int</highlight> i;</codeline>
+<linenumber line="285"/><codeline></codeline>
+<linenumber line="286"/><codeline>     <highlight class="comment">// A\81}?\81C\O\!\?\eI??I\a\O\\81C\\81\98\\81P\E?\81Ê?1?C?E\i!?\EoN?s?\81áA\81Loo</highlight></codeline>
+<linenumber line="287"/><codeline>     <highlight class="comment">// ?\81\91?i?D???IEO1a?oEO?1 </highlight></codeline>
+<linenumber line="288"/><codeline>     <highlight class="keywordflow">for</highlight>(i = 0;i &lt; <ref idref="namespacesf_1_1system_1_1sound_1a0">OBJECT_MAX</ref>;i++){</codeline>
+<linenumber line="289"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o5">mFileName</ref>[i] == tmp_str){</codeline>
+<linenumber line="290"/><codeline>                     <highlight class="keywordflow">return</highlight> i;</codeline>
+<linenumber line="291"/><codeline>             }</codeline>
+<linenumber line="292"/><codeline>     }</codeline>
+<linenumber line="293"/><codeline></codeline>
+<linenumber line="294"/><codeline>     <highlight class="comment">// A\81}?\81CEa?\81ÊI\83Ê?\81}?i?D!\81\91\81÷o?-?o\81C!o\81\80?\81E?A\i!?\E</highlight></codeline>
+<linenumber line="295"/><codeline>     <highlight class="keywordflow">for</highlight>(i = 0;i &lt; <ref idref="namespacesf_1_1system_1_1sound_1a0">OBJECT_MAX</ref>;i++){</codeline>
+<linenumber line="296"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[i] == NULL){</codeline>
+<linenumber line="297"/><codeline>                     <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a2">load</ref>(i,pFileName);</codeline>
+<linenumber line="298"/><codeline>                     <highlight class="keywordflow">return</highlight> i;</codeline>
+<linenumber line="299"/><codeline>             }</codeline>
+<linenumber line="300"/><codeline>     }</codeline>
+<linenumber line="301"/><codeline></codeline>
+<linenumber line="302"/><codeline>     <highlight class="keywordflow">return</highlight> <ref idref="namespacesf_1_1system_1_1sound_1a1">LOAD_ERROR</ref>;</codeline>
+<linenumber line="303"/><codeline>}<highlight class="comment">// load</highlight></codeline>
+<linenumber line="304"/><codeline></codeline>
+<linenumber line="305"/><codeline><highlight class="comment">// \\81\91\o\i!?\E -----------------------------------------------------</highlight></codeline>
+<linenumber line="306" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1a4"/><codeline><highlight class="keywordtype">void</highlight> SoundImpl::unload()</codeline>
+<linenumber line="307"/><codeline>{</codeline>
+<linenumber line="308"/><codeline>     <highlight class="keywordflow">if</highlight>(mpPerformance)</codeline>
+<linenumber line="309"/><codeline>             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o1">mpPerformance</ref>-&gt;Stop(NULL,NULL,0,0);</codeline>
+<linenumber line="310"/><codeline>     </codeline>
+<linenumber line="311"/><codeline>     <highlight class="keywordflow">for</highlight>(<highlight class="keywordtype">int</highlight> i = 0;i &lt; <ref idref="namespacesf_1_1system_1_1sound_1a0">OBJECT_MAX</ref>;i++)</codeline>
+<linenumber line="312"/><codeline>     {</codeline>
+<linenumber line="313"/><codeline>             <highlight class="comment">// \\81â\\81\8b\a\o\E?\81ÊNULL?C?E???E?e\e\e!?\1</highlight></codeline>
+<linenumber line="314"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[i]){</codeline>
+<linenumber line="315"/><codeline>                     <highlight class="comment">// \a!?\C\\81\92\a\N\1?I\e\e!?\1</highlight></codeline>
+<linenumber line="316"/><codeline>                     <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o3">mpAudioPath</ref>[i]){</codeline>
+<linenumber line="317"/><codeline>                             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[i]-&gt;Unload(<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o3">mpAudioPath</ref>[i]);</codeline>
+<linenumber line="318"/><codeline>                             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o3">mpAudioPath</ref>[i]-&gt;Release();</codeline>
+<linenumber line="319"/><codeline>                             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o3">mpAudioPath</ref>[i] = NULL;</codeline>
+<linenumber line="320"/><codeline>                             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[i]-&gt;Release();</codeline>
+<linenumber line="321"/><codeline>                     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="322"/><codeline>                             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[i]-&gt;Unload(<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o1">mpPerformance</ref>);</codeline>
+<linenumber line="323"/><codeline>                             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[i]-&gt;Release();</codeline>
+<linenumber line="324"/><codeline>                     }</codeline>
+<linenumber line="325"/><codeline>             }</codeline>
+<linenumber line="326"/><codeline>             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[i] = NULL;</codeline>
+<linenumber line="327"/><codeline>             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o6">mbSegInUse</ref>[i] = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="328"/><codeline>     }</codeline>
+<linenumber line="329"/><codeline>     </codeline>
+<linenumber line="330"/><codeline>}<highlight class="comment">// unload</highlight></codeline>
+<linenumber line="331"/><codeline></codeline>
+<linenumber line="332" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1a8"/><codeline><highlight class="keywordtype">void</highlight> SoundImpl::masterVolume(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> value)</codeline>
+<linenumber line="333"/><codeline>{</codeline>
+<linenumber line="334"/><codeline>     <highlight class="keywordflow">if</highlight>(!<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a12">isEnabled</ref>())</codeline>
+<linenumber line="335"/><codeline>             <highlight class="keywordflow">return</highlight>;</codeline>
+<linenumber line="336"/><codeline>     <highlight class="keywordtype">int</highlight> tmp_value = value;</codeline>
+<linenumber line="337"/><codeline></codeline>
+<linenumber line="338"/><codeline>     <highlight class="keywordflow">if</highlight>(tmp_value &gt; <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o8">mVolumeMax</ref>) tmp_value = <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o8">mVolumeMax</ref>;</codeline>
+<linenumber line="339"/><codeline>     <highlight class="keywordflow">if</highlight>(tmp_value &lt; volume::MIN) tmp_value = volume::MIN;</codeline>
+<linenumber line="340"/><codeline></codeline>
+<linenumber line="341"/><codeline>     <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o7">mMasterVolume</ref> = tmp_value;</codeline>
+<linenumber line="342"/><codeline>     <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o4">mpDefaultAudioPath</ref>-&gt;SetVolume(value,0);</codeline>
+<linenumber line="343"/><codeline></codeline>
+<linenumber line="344"/><codeline>}<highlight class="comment">// masterVolume</highlight></codeline>
+<linenumber line="345"/><codeline></codeline>
+<linenumber line="346"/><codeline></codeline>
+<linenumber line="347"/><codeline><highlight class="comment">// ---------------------------------------------------------------------------</highlight></codeline>
+<linenumber line="348"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="349"/><codeline><highlight class="comment">// SoundImpl::Queue \\81P\e\1</highlight></codeline>
+<linenumber line="350"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="351"/><codeline><highlight class="comment">// ---------------------------------------------------------------------------</highlight></codeline>
+<linenumber line="352"/><codeline></codeline>
+<linenumber line="353"/><codeline><highlight class="comment">// \3\o\1\E\e\\81P\? -------------------------------------------------</highlight></codeline>
+<linenumber line="354" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1a0"/><codeline>SoundImpl::Queue::Queue()</codeline>
+<linenumber line="355"/><codeline>{</codeline>
+<linenumber line="356"/><codeline>     <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1a4">clear</ref>();</codeline>
+<linenumber line="357"/><codeline>}<highlight class="comment">// Queue</highlight></codeline>
+<linenumber line="358"/><codeline></codeline>
+<linenumber line="359"/><codeline><highlight class="comment">// \C\1\E\e\\81P\? ---------------------------------------------------</highlight></codeline>
+<linenumber line="360" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1a1"/><codeline>SoundImpl::Queue::~Queue(){;};</codeline>
+<linenumber line="361"/><codeline></codeline>
+<linenumber line="362"/><codeline><highlight class="comment">// \e\o\\81\8b\D\A\O\!?E\\83Ê\|\o\EEO1a?o\\81â\A\E?1?e -------------------------</highlight></codeline>
+<linenumber line="363" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1a3"/><codeline><highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> SoundImpl::Queue::set(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> ObjNo,<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> Repeat,<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bPrimary,<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bSync)</codeline>
+<linenumber line="364"/><codeline>{</codeline>
+<linenumber line="365"/><codeline>     <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o0">mBuffer</ref>[<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o2">mEnd</ref>].mObjNo == 0){</codeline>
+<linenumber line="366"/><codeline>             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o0">mBuffer</ref>[<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o2">mEnd</ref>].mObjNo = ObjNo + 1;</codeline>
+<linenumber line="367"/><codeline>             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o0">mBuffer</ref>[<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o2">mEnd</ref>].mRepeat = Repeat;</codeline>
+<linenumber line="368"/><codeline>             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o0">mBuffer</ref>[<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o2">mEnd</ref>].mbPrimary = bPrimary;</codeline>
+<linenumber line="369"/><codeline>             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o0">mBuffer</ref>[<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o2">mEnd</ref>].mbSync = bSync;</codeline>
+<linenumber line="370"/><codeline>             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o2">mEnd</ref> = (<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o2">mEnd</ref> + 1) &amp; (<ref idref="namespacesf_1_1system_1_1sound_1a4">Q_MAX</ref> - 1);</codeline>
+<linenumber line="371"/><codeline>             <highlight class="keywordflow">return</highlight> <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="372"/><codeline>     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="373"/><codeline>             <highlight class="keywordflow">return</highlight> <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="374"/><codeline>     }</codeline>
+<linenumber line="375"/><codeline>}<highlight class="comment">// set</highlight></codeline>
+<linenumber line="376"/><codeline></codeline>
+<linenumber line="377"/><codeline><highlight class="comment">// \e\o\\81\8b\D\A\O\!?\81á?e\\83Ê\|\o\E\C!?\??o?e?e?D?1 -----------------------</highlight></codeline>
+<linenumber line="378" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1a2"/><codeline><highlight class="keywordtype">void</highlight> SoundImpl::Queue::get(Data&amp; rData)</codeline>
+<linenumber line="379"/><codeline>{</codeline>
+<linenumber line="380"/><codeline>     <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o1">mStart</ref> == <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o2">mEnd</ref>)</codeline>
+<linenumber line="381"/><codeline>     { rData.mObjNo =0;</codeline>
+<linenumber line="382"/><codeline>             <highlight class="keywordflow">return</highlight>;</codeline>
+<linenumber line="383"/><codeline>     }</codeline>
+<linenumber line="384"/><codeline>     </codeline>
+<linenumber line="385"/><codeline>     rData = <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o0">mBuffer</ref>[<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o1">mStart</ref>];</codeline>
+<linenumber line="386"/><codeline>     rData.mObjNo -= 1;</codeline>
+<linenumber line="387"/><codeline>     <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o0">mBuffer</ref>[<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o1">mStart</ref>].mObjNo = 0;</codeline>
+<linenumber line="388"/><codeline>     </codeline>
+<linenumber line="389"/><codeline>     <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o1">mStart</ref> = (<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o1">mStart</ref> + 1) &amp; (<ref idref="namespacesf_1_1system_1_1sound_1a4">Q_MAX</ref> - 1);</codeline>
+<linenumber line="390"/><codeline></codeline>
+<linenumber line="391"/><codeline>}<highlight class="comment">// get</highlight></codeline>
+<linenumber line="392"/><codeline></codeline>
+<linenumber line="393"/><codeline><highlight class="comment">// \e\o\\81\8b\D\A\O\!?o\\81P\e\\81\91?1?e -------------------------------------</highlight></codeline>
+<linenumber line="394" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1a4"/><codeline><highlight class="keywordtype">void</highlight> SoundImpl::Queue::clear()</codeline>
+<linenumber line="395"/><codeline>{</codeline>
+<linenumber line="396"/><codeline>     <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o1">mStart</ref> = <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o2">mEnd</ref> = 0;</codeline>
+<linenumber line="397"/><codeline>     ZeroMemory(<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o0">mBuffer</ref>,<highlight class="keyword">sizeof</highlight>(<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o0">mBuffer</ref>));</codeline>
+<linenumber line="398"/><codeline>}<highlight class="comment">// clear</highlight></codeline>
+<linenumber line="399"/><codeline></codeline>
+<linenumber line="400" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1a6"/><codeline><highlight class="keywordtype">void</highlight> SoundImpl::stop(<highlight class="keywordtype">int</highlight> ObjNo)</codeline>
+<linenumber line="401"/><codeline>{</codeline>
+<linenumber line="402"/><codeline>     <highlight class="keywordflow">if</highlight>(!<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a12">isEnabled</ref>()) <highlight class="keywordflow">return</highlight>;</codeline>
+<linenumber line="403"/><codeline></codeline>
+<linenumber line="404"/><codeline>     <highlight class="keywordflow">if</highlight>(!ObjNo)</codeline>
+<linenumber line="405"/><codeline>     {</codeline>
+<linenumber line="406"/><codeline>             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o9">mQueue</ref>.<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1a4">clear</ref>();</codeline>
+<linenumber line="407"/><codeline>             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o1">mpPerformance</ref>-&gt;Stop(NULL,NULL,0,0);</codeline>
+<linenumber line="408"/><codeline>     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="409"/><codeline>             <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o1">mpPerformance</ref>-&gt;Stop(<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[ObjNo],NULL,0,0);</codeline>
+<linenumber line="410"/><codeline>     }</codeline>
+<linenumber line="411"/><codeline>}</codeline>
+<linenumber line="412"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/SoundImpl.cpp"/>
+  </compounddef>
+  <compounddef id="SoundImpl_8h" kind="file">
+    <compoundname>SoundImpl.h</compoundname>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includes id="Sound_8h" local="yes">Sound.h</includes>
+    <includedby id="InputImpl_8cpp" local="yes">InputImpl.cpp</includedby>
+    <includedby id="sfglib_8cpp" local="yes">sfglib.cpp</includedby>
+    <includedby id="SoundImpl_8cpp" local="yes">SoundImpl.cpp</includedby>
+    <includedby id="System_8cpp" local="yes">System.cpp</includedby>
+    <includedby id="SystemImpl_8cpp" local="yes">SystemImpl.cpp</includedby>
+    <incdepgraph>
+      <node id="650">
+        <label>SoundImpl.h</label>
+        <link id="SoundImpl.h"/>
+        <childnode id="651" relation="public-inheritance">
+        </childnode>
+        <childnode id="652" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="651">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="652">
+        <label>Sound.h</label>
+        <link id="Sound_8h"/>
+        <childnode id="651" relation="public-inheritance">
+        </childnode>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="655">
+        <label>sfglib.cpp</label>
+        <link id="sfglib_8cpp-source"/>
+      </node>
+      <node id="656">
+        <label>SoundImpl.cpp</label>
+        <link id="SoundImpl_8cpp-source"/>
+      </node>
+      <node id="653">
+        <label>SoundImpl.h</label>
+        <link id="SoundImpl.h"/>
+        <childnode id="654" relation="public-inheritance">
+        </childnode>
+        <childnode id="655" relation="public-inheritance">
+        </childnode>
+        <childnode id="656" relation="public-inheritance">
+        </childnode>
+        <childnode id="657" relation="public-inheritance">
+        </childnode>
+        <childnode id="658" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="658">
+        <label>SystemImpl.cpp</label>
+        <link id="SystemImpl_8cpp-source"/>
+      </node>
+      <node id="654">
+        <label>InputImpl.cpp</label>
+        <link id="InputImpl_8cpp-source"/>
+      </node>
+      <node id="657">
+        <label>System.cpp</label>
+        <link id="System_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1sound">sf::system::sound</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="SoundImpl_8h_1a0" virt="normal" prot="public">
+        <name>AFX_SoundImpl_H__B9EEAB2E_EC73_44E2_A74F_3BE8E7E64310__INCLUDED_</name>
+        <briefdescription>
+<para>
+Ao?A\?\o\\81P\e!?\EEE\81âs\T\\81P\i. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SoundImpl.h" line="14" bodystart="14" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+Sound\81LOI\81\91?I?AAo\\81P\e\1!|???i?E\81LO?1?eAe?oAe\83ÊA?E?E?o1O?|!\81\92. </para>
+    </briefdescription>
+    <detaileddescription>
+<para>
+DirectSound DirectMusic ?o\81âEIN?\81E?A?AAo?\81E?A???T?1!\81\92 </para>
+<simplesect kind="author"><title>oi?O: </title><para>
+S.F. </para>
+</simplesect><simplesect kind="version"><title>\D!?\\81C\c\o: </title><para>
+$Id:</para>
+</simplesect><para>
+Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved. </para>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline></codeline>
+<linenumber line="12"/><codeline></codeline>
+<linenumber line="13"/><codeline><highlight class="preprocessor">#if !defined(AFX_SoundImpl_H__B9EEAB2E_EC73_44E2_A74F_3BE8E7E64310__INCLUDED_)</highlight></codeline>
+<linenumber line="14" refid="SoundImpl_8h_1a0"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_SoundImpl_H__B9EEAB2E_EC73_44E2_A74F_3BE8E7E64310__INCLUDED_</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="Sound_8h">Sound.h</ref>&quot;</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="22"/><codeline><highlight class="keyword">namespace </highlight>sf{</codeline>
+<linenumber line="23"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="24"/><codeline>              <highlight class="keyword">namespace </highlight>sound {</codeline>
+<linenumber line="25"/><codeline>                      </codeline>
+<linenumber line="26"/><codeline>                      <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1_1sound_1a4">Q_MAX</ref> = 32;</codeline>
+<linenumber line="27"/><codeline></codeline>
+<linenumber line="30" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1"/><codeline>                    <highlight class="keyword">class </highlight>SoundImpl : <highlight class="keyword">public</highlight> Sound  </codeline>
+<linenumber line="31"/><codeline>                      {</codeline>
+<linenumber line="32"/><codeline>                              <highlight class="comment">// LIFECYCLE</highlight></codeline>
+<linenumber line="33"/><codeline>                      <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="35"/><codeline>                              <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a0">SoundImpl</ref>();</codeline>
+<linenumber line="37"/><codeline>                              <highlight class="keyword">virtual</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a1">~SoundImpl</ref>();</codeline>
+<linenumber line="38"/><codeline>                              <highlight class="comment">// OPERATORS //</highlight></codeline>
+<linenumber line="39"/><codeline>                              <highlight class="comment">// OPERATIONS //</highlight></codeline>
+<linenumber line="40"/><codeline>                              <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a2">load</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> objNo,<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> pFileName);</codeline>
+<linenumber line="41"/><codeline>                              <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a2">load</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> * <highlight class="keyword">const</highlight> pFileName);</codeline>
+<linenumber line="42"/><codeline>                              <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a4">unload</ref>();</codeline>
+<linenumber line="43"/><codeline>                              <highlight class="comment">// \\83Ê\|\o\E?IoAA\81C</highlight></codeline>
+<linenumber line="44"/><codeline>                              <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a5">play</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> ObjNo,<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> Repeat,<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bPrimary,<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bSync);</codeline>
+<linenumber line="45"/><codeline>                              <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a6">stop</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> ObjNo = 0);</codeline>
+<linenumber line="46"/><codeline>                              <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a7">update</ref>();</codeline>
+<linenumber line="47"/><codeline>                              <highlight class="comment">// ACCESS //</highlight></codeline>
+<linenumber line="48"/><codeline>                              <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a9">masterVolume</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> value); </codeline>
+<linenumber line="49" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1a9"/><codeline>                          <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a9">masterVolume</ref>()<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o7">mMasterVolume</ref>;}</codeline>
+<linenumber line="50" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1a10"/><codeline>                         <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a11">volumeMax</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> value){<ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o8">mVolumeMax</ref> = value;};</codeline>
+<linenumber line="51" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1a11"/><codeline>                         <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a11">volumeMax</ref>()<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o8">mVolumeMax</ref>;};</codeline>
+<linenumber line="52"/><codeline>                              <highlight class="comment">// INQUIRY //</highlight></codeline>
+<linenumber line="53" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1a12"/><codeline>                         <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a12">isEnabled</ref>(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const</highlight>{<highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o10">mbEnabled</ref>;};</codeline>
+<linenumber line="54"/><codeline>                              <highlight class="comment">// ?e\81Lu2?</highlight></codeline>
+<linenumber line="55"/><codeline>                              <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a13">initialize</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="56"/><codeline>                      <highlight class="keyword">private</highlight>:</codeline>
+<linenumber line="57"/><codeline>              </codeline>
+<linenumber line="58" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1o0"/><codeline>                          IDirectMusicLoader8*            <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o0">mpLoader</ref>;</codeline>
+<linenumber line="59" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1o1"/><codeline>                          IDirectMusicPerformance8*       <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o1">mpPerformance</ref>;</codeline>
+<linenumber line="60" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1o2"/><codeline>                          IDirectMusicSegment8*           <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o2">mpSegment</ref>[<ref idref="namespacesf_1_1system_1_1sound_1a0">OBJECT_MAX</ref>];</codeline>
+<linenumber line="61" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1o3"/><codeline>                          IDirectMusicAudioPath8*         <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o3">mpAudioPath</ref>[<ref idref="namespacesf_1_1system_1_1sound_1a0">OBJECT_MAX</ref>];</codeline>
+<linenumber line="62" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1o4"/><codeline>                          IDirectMusicAudioPath8*         <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o4">mpDefaultAudioPath</ref>;</codeline>
+<linenumber line="63" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1o5"/><codeline>                          std::string                                     <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o5">mFileName</ref>[<ref idref="namespacesf_1_1system_1_1sound_1a0">OBJECT_MAX</ref>];</codeline>
+<linenumber line="64"/><codeline></codeline>
+<linenumber line="65" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1o6"/><codeline>                          <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o6">mbSegInUse</ref>[<ref idref="namespacesf_1_1system_1_1sound_1a0">OBJECT_MAX</ref>];</codeline>
+<linenumber line="66" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1o7"/><codeline>                          <highlight class="keywordtype">int</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o7">mMasterVolume</ref>;</codeline>
+<linenumber line="67" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1o8"/><codeline>                          <highlight class="keywordtype">int</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o8">mVolumeMax</ref>;</codeline>
+<linenumber line="68"/><codeline></codeline>
+<linenumber line="71" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1"/><codeline>                           <highlight class="keyword">class </highlight>SFDLL Queue {</codeline>
+<linenumber line="72"/><codeline>                              <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="74"/><codeline>                                      Queue();</codeline>
+<linenumber line="76"/><codeline>                                      ~Queue();</codeline>
+<linenumber line="78" refid="structsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1_1Data_1"/><codeline>                                  <highlight class="keyword">struct </highlight>Data</codeline>
+<linenumber line="79"/><codeline>                                      {</codeline>
+<linenumber line="80" refid="structsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1_1Data_1m0"/><codeline>                                                <highlight class="keywordtype">int</highlight> mObjNo;          </codeline>
+<linenumber line="81" refid="structsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1_1Data_1m1"/><codeline>                                                <highlight class="keywordtype">long</highlight> mRepeat;        </codeline>
+<linenumber line="82" refid="structsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1_1Data_1m2"/><codeline>                                                <highlight class="keywordtype">bool</highlight> mbPrimary;      </codeline>
+<linenumber line="83" refid="structsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1_1Data_1m3"/><codeline>                                                <highlight class="keywordtype">bool</highlight> mbSync; </codeline>
+<linenumber line="84"/><codeline>                                      };</codeline>
+<linenumber line="85"/><codeline>                                      <highlight class="comment">// OPERATIONS//</highlight></codeline>
+<linenumber line="86"/><codeline>                                      </codeline>
+<linenumber line="89"/><codeline>                                      <highlight class="keywordtype">void</highlight> get(Data&amp; rData);</codeline>
+<linenumber line="90"/><codeline></codeline>
+<linenumber line="96"/><codeline>                                      <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> set(<highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> ObjNo,<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> Repeat,<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bPrimary,<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> bSync);</codeline>
+<linenumber line="97"/><codeline>                                      </codeline>
+<linenumber line="99"/><codeline>                                      <highlight class="keywordtype">void</highlight> clear();</codeline>
+<linenumber line="100"/><codeline>                                     <highlight class="comment">// INQUIRY //</highlight></codeline>
+<linenumber line="101"/><codeline></codeline>
+<linenumber line="105" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1a5"/><codeline>                                        <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> isEmpty()<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> (mStart == mEnd);};</codeline>
+<linenumber line="106"/><codeline>                             <highlight class="keyword">private</highlight>:</codeline>
+<linenumber line="107" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o0"/><codeline>                                        Data mBuffer[<ref idref="namespacesf_1_1system_1_1sound_1a4">Q_MAX</ref>];      </codeline>
+<linenumber line="108" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o1"/><codeline>                                        <highlight class="keywordtype">int</highlight> mStart;                  </codeline>
+<linenumber line="109" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1_1Queue_1o2"/><codeline>                                        <highlight class="keywordtype">int</highlight> mEnd;                    </codeline>
+<linenumber line="110"/><codeline></codeline>
+<linenumber line="111"/><codeline>                             };<highlight class="comment">// Queue</highlight></codeline>
+<linenumber line="112"/><codeline>                             </codeline>
+<linenumber line="113" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1o9"/><codeline>                         Queue <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o9">mQueue</ref>;    </codeline>
+<linenumber line="114" refid="classsf_1_1system_1_1sound_1_1SoundImpl_1o10"/><codeline>                                <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1o10">mbEnabled</ref>;      </codeline>
+<linenumber line="115"/><codeline>                             </codeline>
+<linenumber line="116"/><codeline>                             </codeline>
+<linenumber line="117"/><codeline>                     };<highlight class="comment">// SoundImpl</highlight></codeline>
+<linenumber line="118"/><codeline></codeline>
+<linenumber line="119"/><codeline>             }<highlight class="comment">// sound</highlight></codeline>
+<linenumber line="120"/><codeline>     }<highlight class="comment">// system</highlight></codeline>
+<linenumber line="121"/><codeline>}<highlight class="comment">// sound</highlight></codeline>
+<linenumber line="122"/><codeline>}</codeline>
+<linenumber line="123"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_SoundImpl_H__B9EEAB2E_EC73_44E2_A74F_3BE8E7E64310__INCLUDED_)</highlight></codeline>
+<linenumber line="124"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/SoundImpl.h"/>
+  </compounddef>
+  <compounddef id="Sprite2D_8cpp" kind="file">
+    <compoundname>Sprite2D.cpp</compoundname>
+    <includes id="sfdebug_8h" local="yes">sfdebug.h</includes>
+    <includes local="no">stdio.h</includes>
+    <includes local="no">queue</includes>
+    <includes local="yes">windows.h</includes>
+    <includes local="yes">windowsx.h</includes>
+    <includes local="yes">d3d8.h</includes>
+    <includes local="yes">d3dx8.h</includes>
+    <includes id="dxerr8sf_8h" local="yes">dxerr8sf.h</includes>
+    <includes local="yes">exception.h</includes>
+    <includes local="yes">sound.h</includes>
+    <includes id="System_8h" local="yes">System.h</includes>
+    <includes local="yes">console.h</includes>
+    <includes id="Obj_8h" local="yes">Obj.h</includes>
+    <includes id="Obj2D_8h" local="yes">Obj2D.h</includes>
+    <includes id="ObjRectangle_8h" local="yes">ObjRectangle.h</includes>
+    <includes id="ObjQuadrangle_8h" local="yes">ObjQuadrangle.h</includes>
+    <includes id="AbstractSprite_8h" local="yes">AbstractSprite.h</includes>
+    <includes id="ConsoleImpl_8h" local="yes">ConsoleImpl.h</includes>
+    <includes id="Sprite2D_8h" local="yes">Sprite2D.h</includes>
+    <incdepgraph>
+      <node id="668">
+        <label>dxerr8.h</label>
+      </node>
+      <node id="662">
+        <label>queue</label>
+      </node>
+      <node id="663">
+        <label>windows.h</label>
+      </node>
+      <node id="659">
+        <label>Sprite2D.cpp</label>
+        <link id="Sprite2D.cpp"/>
+        <childnode id="660" relation="public-inheritance">
+        </childnode>
+        <childnode id="661" relation="public-inheritance">
+        </childnode>
+        <childnode id="662" relation="public-inheritance">
+        </childnode>
+        <childnode id="663" relation="public-inheritance">
+        </childnode>
+        <childnode id="664" relation="public-inheritance">
+        </childnode>
+        <childnode id="665" relation="public-inheritance">
+        </childnode>
+        <childnode id="666" relation="public-inheritance">
+        </childnode>
+        <childnode id="667" relation="public-inheritance">
+        </childnode>
+        <childnode id="669" relation="public-inheritance">
+        </childnode>
+        <childnode id="670" relation="public-inheritance">
+        </childnode>
+        <childnode id="671" relation="public-inheritance">
+        </childnode>
+        <childnode id="674" relation="public-inheritance">
+        </childnode>
+        <childnode id="675" relation="public-inheritance">
+        </childnode>
+        <childnode id="676" relation="public-inheritance">
+        </childnode>
+        <childnode id="677" relation="public-inheritance">
+        </childnode>
+        <childnode id="678" relation="public-inheritance">
+        </childnode>
+        <childnode id="679" relation="public-inheritance">
+        </childnode>
+        <childnode id="682" relation="public-inheritance">
+        </childnode>
+        <childnode id="683" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="671">
+        <label>System.h</label>
+        <link id="System_8h"/>
+        <childnode id="672" relation="public-inheritance">
+        </childnode>
+        <childnode id="673" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="664">
+        <label>windowsx.h</label>
+      </node>
+      <node id="672">
+        <label>string</label>
+      </node>
+      <node id="682">
+        <label>ConsoleImpl.h</label>
+        <link id="ConsoleImpl_8h"/>
+        <childnode id="673" relation="public-inheritance">
+        </childnode>
+        <childnode id="680" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="667">
+        <label>dxerr8sf.h</label>
+        <link id="dxerr8sf_8h-source"/>
+        <childnode id="668" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="660">
+        <label>sfdebug.h</label>
+        <link id="sfdebug_8h"/>
+      </node>
+      <node id="679">
+        <label>AbstractSprite.h</label>
+        <link id="AbstractSprite_8h-source"/>
+        <childnode id="673" relation="public-inheritance">
+        </childnode>
+        <childnode id="680" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="673">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="670">
+        <label>sound.h</label>
+      </node>
+      <node id="680">
+        <label>Console.h</label>
+        <link id="Console_8h"/>
+        <childnode id="681" relation="public-inheritance">
+        </childnode>
+        <childnode id="673" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="674">
+        <label>console.h</label>
+      </node>
+      <node id="676">
+        <label>Obj2D.h</label>
+        <link id="Obj2D_8h-source"/>
+        <childnode id="673" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="677">
+        <label>ObjRectangle.h</label>
+        <link id="ObjRectangle_8h-source"/>
+        <childnode id="673" relation="public-inheritance">
+        </childnode>
+        <childnode id="675" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="683">
+        <label>Sprite2D.h</label>
+        <link id="Sprite2D_8h-source"/>
+        <childnode id="673" relation="public-inheritance">
+        </childnode>
+        <childnode id="680" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="675">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="673" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="678">
+        <label>ObjQuadrangle.h</label>
+        <link id="ObjQuadrangle_8h-source"/>
+        <childnode id="673" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="665">
+        <label>d3d8.h</label>
+      </node>
+      <node id="669">
+        <label>exception.h</label>
+      </node>
+      <node id="666">
+        <label>d3dx8.h</label>
+      </node>
+      <node id="661">
+        <label>stdio.h</label>
+      </node>
+      <node id="681">
+        <label>memory</label>
+      </node>
+    </incdepgraph>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">// Sprite2D.cpp: Sprite2D \\81P\e\1?I\?\o\\81~\e\a\o\A!?\\81E\c\o</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">//  IuIo!\81\98</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// $Log: Sprite2D.cpp,v $</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:36  fujiwara</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// Revision 1.4  2001/07/09 20:30:09  fujiwara</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// Revision 1.3  2001/07/01 21:30:34  fujiwara</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">// \a\a\e\e!?\\81P\A\\81\98\A\\81P\81C\81áA??\81E</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:48:55  fujiwara</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="comment">#pragma warning( disable : 4786 )  //STL?I\81EU1d3\81\8b?\81E</highlight></codeline>
+<linenumber line="24"/><codeline></codeline>
+<linenumber line="25"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="sfdebug_8h">sfdebug.h</ref>&quot;</highlight></codeline>
+<linenumber line="27"/><codeline></codeline>
+<linenumber line="28"/><codeline><highlight class="comment">// SYSTEM INCLUDES</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor">#include &lt;stdio.h&gt;</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor">#include &lt;queue&gt;</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor">#include &quot;windows.h&quot;</highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="preprocessor">#include &quot;windowsx.h&quot;</highlight></codeline>
+<linenumber line="34"/><codeline></codeline>
+<linenumber line="35"/><codeline><highlight class="preprocessor">#include &quot;d3d8.h&quot;</highlight></codeline>
+<linenumber line="36"/><codeline><highlight class="preprocessor">#include &quot;d3dx8.h&quot;</highlight></codeline>
+<linenumber line="37"/><codeline><highlight class="preprocessor">#include &quot;dxerr8sf.h&quot;</highlight></codeline>
+<linenumber line="38"/><codeline></codeline>
+<linenumber line="39"/><codeline></codeline>
+<linenumber line="40"/><codeline><highlight class="comment">// PROJECT INCLUDES</highlight></codeline>
+<linenumber line="41"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="42"/><codeline><highlight class="preprocessor">#include &quot;exception.h&quot;</highlight></codeline>
+<linenumber line="43"/><codeline><highlight class="preprocessor">#include &quot;sound.h&quot;</highlight></codeline>
+<linenumber line="44"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="System_8h">System.h</ref>&quot;</highlight></codeline>
+<linenumber line="45"/><codeline><highlight class="preprocessor">#include &quot;console.h&quot;</highlight></codeline>
+<linenumber line="46"/><codeline><highlight class="preprocessor">#include &quot;Obj.h&quot;</highlight></codeline>
+<linenumber line="47"/><codeline><highlight class="preprocessor">#include &quot;Obj2D.h&quot;</highlight></codeline>
+<linenumber line="48"/><codeline><highlight class="preprocessor">#include &quot;ObjRectangle.h&quot;</highlight></codeline>
+<linenumber line="49"/><codeline><highlight class="preprocessor">#include &quot;ObjQuadrangle.h&quot;</highlight></codeline>
+<linenumber line="50"/><codeline><highlight class="preprocessor">#include &quot;AbstractSprite.h&quot;</highlight></codeline>
+<linenumber line="51"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="ConsoleImpl_8h">ConsoleImpl.h</ref>&quot;</highlight></codeline>
+<linenumber line="52"/><codeline></codeline>
+<linenumber line="53"/><codeline></codeline>
+<linenumber line="54"/><codeline><highlight class="preprocessor">#include &quot;Sprite2D.h&quot;</highlight></codeline>
+<linenumber line="55"/><codeline></codeline>
+<linenumber line="56"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="57"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define new DEBUG_NEW</highlight></codeline>
+<linenumber line="58"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="59"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="60"/><codeline><highlight class="keyword">using</highlight> <highlight class="keyword">namespace </highlight>sf::system::console;</codeline>
+<linenumber line="61"/><codeline>using namespace sf::system::console::sprite;</codeline>
+<linenumber line="62"/><codeline></codeline>
+<linenumber line="64"/><codeline><highlight class="comment">// 1?AU/?AIC</highlight></codeline>
+<linenumber line="66"/><codeline><highlight class="comment">// \3\o\1\E\e\\81P\? !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="67"/><codeline>Sprite2D::Sprite2D(LPDIRECT3DDEVICE8  pD3DDevice) : AbstractSprite()</codeline>
+<linenumber line="68"/><codeline>{</codeline>
+<linenumber line="69"/><codeline>      mpSpriteVtBuf = NULL;</codeline>
+<linenumber line="70"/><codeline>      mpSpriteTexture = NULL;</codeline>
+<linenumber line="71"/><codeline>      mCellCount = 0.0f;</codeline>
+<linenumber line="72"/><codeline>      mCellHeight = mCellWidth = 0.0f;</codeline>
+<linenumber line="73"/><codeline>      initialize(pD3DDevice);</codeline>
+<linenumber line="74"/><codeline></codeline>
+<linenumber line="75"/><codeline>}</codeline>
+<linenumber line="76"/><codeline><highlight class="comment">// \C\1\E\e\\81P\? !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="77"/><codeline>Sprite2D::~Sprite2D()</codeline>
+<linenumber line="78"/><codeline>{</codeline>
+<linenumber line="79"/><codeline>      uninitialize();</codeline>
+<linenumber line="80"/><codeline>}</codeline>
+<linenumber line="81"/><codeline></codeline>
+<linenumber line="82"/><codeline><highlight class="comment">// ?e\81Lu2? !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="83"/><codeline><highlight class="keywordtype">void</highlight> Sprite2D::initialize(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="84"/><codeline>{</codeline>
+<linenumber line="85"/><codeline>      uninitialize();</codeline>
+<linenumber line="86"/><codeline>      mbUse = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="87"/><codeline></codeline>
+<linenumber line="88"/><codeline>}<highlight class="comment">// initialize()</highlight></codeline>
+<linenumber line="89"/><codeline></codeline>
+<linenumber line="90"/><codeline><highlight class="comment">// ?e\81Lu2? !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="91"/><codeline><highlight class="keywordtype">void</highlight> Sprite2D::initialize(LPDIRECT3DDEVICE8        pD3DDevice)</codeline>
+<linenumber line="92"/><codeline>{</codeline>
+<linenumber line="93"/><codeline>      <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a13">initialize</ref>();</codeline>
+<linenumber line="94"/><codeline></codeline>
+<linenumber line="95"/><codeline>      mpD3DDevice = pD3DDevice;</codeline>
+<linenumber line="96"/><codeline>}<highlight class="comment">// initialize()</highlight></codeline>
+<linenumber line="97"/><codeline></codeline>
+<linenumber line="98"/><codeline><highlight class="comment">// \1\\81~\e\?\EIN\?\o\?!?\O\\81\98!?\1?I\e\e!?\1 !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="99"/><codeline><highlight class="keywordtype">void</highlight> Sprite2D::uninitialize(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="100"/><codeline>{</codeline>
+<linenumber line="101"/><codeline>     <highlight class="keywordflow">if</highlight>(mpSpriteVtBuf)</codeline>
+<linenumber line="102"/><codeline>     {</codeline>
+<linenumber line="103"/><codeline>             mpSpriteVtBuf-&gt;Release();</codeline>
+<linenumber line="104"/><codeline>             mpSpriteVtBuf = NULL;</codeline>
+<linenumber line="105"/><codeline>     }</codeline>
+<linenumber line="106"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="107"/><codeline><highlight class="comment">//        if(mpSprite3DVtBuf)</highlight></codeline>
+<linenumber line="108"/><codeline><highlight class="comment">//        {</highlight></codeline>
+<linenumber line="109"/><codeline><highlight class="comment">//                mpSprite3DVtBuf-&gt;Release();</highlight></codeline>
+<linenumber line="110"/><codeline><highlight class="comment">//                mpSprite3DVtBuf = NULL;</highlight></codeline>
+<linenumber line="111"/><codeline><highlight class="comment">//        }</highlight></codeline>
+<linenumber line="112"/><codeline></codeline>
+<linenumber line="113"/><codeline>     <highlight class="keywordflow">if</highlight>(mpSpriteTexture){</codeline>
+<linenumber line="114"/><codeline>             mpSpriteTexture-&gt;Release();</codeline>
+<linenumber line="115"/><codeline>             mpSpriteTexture = NULL;</codeline>
+<linenumber line="116"/><codeline>     }</codeline>
+<linenumber line="117"/><codeline><highlight class="comment">/*</highlight></codeline>
+<linenumber line="118"/><codeline><highlight class="comment">    if( mpMeshMaterials != NULL ) </highlight></codeline>
+<linenumber line="119"/><codeline><highlight class="comment">        delete[] mpMeshMaterials;</highlight></codeline>
+<linenumber line="120"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="121"/><codeline><highlight class="comment">    if( mpMeshTextures )</highlight></codeline>
+<linenumber line="122"/><codeline><highlight class="comment">    {</highlight></codeline>
+<linenumber line="123"/><codeline><highlight class="comment">        for( DWORD i = 0; i &lt; mNumMaterials; i++ )</highlight></codeline>
+<linenumber line="124"/><codeline><highlight class="comment">        {</highlight></codeline>
+<linenumber line="125"/><codeline><highlight class="comment">            if( mpMeshTextures[i] )</highlight></codeline>
+<linenumber line="126"/><codeline><highlight class="comment">                mpMeshTextures[i]-&gt;Release();</highlight></codeline>
+<linenumber line="127"/><codeline><highlight class="comment">        }</highlight></codeline>
+<linenumber line="128"/><codeline><highlight class="comment">        delete[] mpMeshTextures;</highlight></codeline>
+<linenumber line="129"/><codeline><highlight class="comment">    }</highlight></codeline>
+<linenumber line="130"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="131"/><codeline><highlight class="comment">  if( mpMesh != NULL )</highlight></codeline>
+<linenumber line="132"/><codeline><highlight class="comment">        mpMesh-&gt;Release();</highlight></codeline>
+<linenumber line="133"/><codeline><highlight class="comment"> */</highlight>   </codeline>
+<linenumber line="134"/><codeline>     mbUse = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="135"/><codeline>}<highlight class="comment">// release()</highlight></codeline>
+<linenumber line="136"/><codeline></codeline>
+<linenumber line="137"/><codeline><highlight class="comment">// 2D\1\\81~\e\?\E?I\i!?\E -!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="138"/><codeline><highlight class="keywordtype">void</highlight> Sprite2D::load(<highlight class="keyword">const</highlight> Info *pInfo,<highlight class="keyword">const</highlight> D3DFORMAT textureFormat,<highlight class="keyword">const</highlight> COLOR color)</codeline>
+<linenumber line="139"/><codeline>{</codeline>
+<linenumber line="140"/><codeline>     D3DXIMAGE_INFO img_info;</codeline>
+<linenumber line="141"/><codeline></codeline>
+<linenumber line="142"/><codeline>     HRESULT hr = D3DXCreateTextureFromFileExA(</codeline>
+<linenumber line="143"/><codeline>             mpD3DDevice,</codeline>
+<linenumber line="144"/><codeline>             pInfo-&gt;fileName,</codeline>
+<linenumber line="145"/><codeline>             D3DX_DEFAULT,</codeline>
+<linenumber line="146"/><codeline>             D3DX_DEFAULT,</codeline>
+<linenumber line="147"/><codeline>             0,</codeline>
+<linenumber line="148"/><codeline>             0,</codeline>
+<linenumber line="149"/><codeline>             textureFormat,</codeline>
+<linenumber line="150"/><codeline>             D3DPOOL_MANAGED,</codeline>
+<linenumber line="151"/><codeline>             D3DX_FILTER_NONE,</codeline>
+<linenumber line="152"/><codeline>             D3DX_FILTER_NONE,</codeline>
+<linenumber line="153"/><codeline>             color,</codeline>
+<linenumber line="154"/><codeline>             &amp;img_info,</codeline>
+<linenumber line="155"/><codeline>             NULL,</codeline>
+<linenumber line="156"/><codeline>             &amp;mpSpriteTexture);</codeline>
+<linenumber line="157"/><codeline>     </codeline>
+<linenumber line="158"/><codeline>     <highlight class="keywordflow">if</highlight>(FAILED(hr))</codeline>
+<linenumber line="159"/><codeline>     {</codeline>
+<linenumber line="160"/><codeline>             std::string tmpErr(<highlight class="stringliteral">&quot;Sprite Load Error:&quot;</highlight>);</codeline>
+<linenumber line="161"/><codeline>             tmpErr += DXGetErrorString8(hr);</codeline>
+<linenumber line="162"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(tmpErr,__FILE__,__LINE__);</codeline>
+<linenumber line="163"/><codeline>     }</codeline>
+<linenumber line="164"/><codeline></codeline>
+<linenumber line="165"/><codeline>     <ref idref="namespacesf_1a0">DWORD</ref> twidth = img_info.Width;</codeline>
+<linenumber line="166"/><codeline>     <ref idref="namespacesf_1a0">DWORD</ref> theight = img_info.Height;</codeline>
+<linenumber line="167"/><codeline></codeline>
+<linenumber line="168"/><codeline>     mWidth = twidth;</codeline>
+<linenumber line="169"/><codeline>     mHeight = theight;</codeline>
+<linenumber line="170"/><codeline>     </codeline>
+<linenumber line="171"/><codeline>     mCenterX = pInfo-&gt;centerX;</codeline>
+<linenumber line="172"/><codeline>     mCenterY = pInfo-&gt;centerY;</codeline>
+<linenumber line="173"/><codeline></codeline>
+<linenumber line="174"/><codeline>     mCellWidth = pInfo-&gt;cellWidth;</codeline>
+<linenumber line="175"/><codeline>     mCellHeight = pInfo-&gt;cellHeight;</codeline>
+<linenumber line="176"/><codeline></codeline>
+<linenumber line="177"/><codeline></codeline>
+<linenumber line="178"/><codeline><highlight class="comment">/*        if(pInfo-&gt;cellWidth){</highlight></codeline>
+<linenumber line="179"/><codeline><highlight class="comment">          twidth = mCellWidth = pInfo-&gt;cellWidth;</highlight></codeline>
+<linenumber line="180"/><codeline><highlight class="comment">  }</highlight></codeline>
+<linenumber line="181"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="182"/><codeline><highlight class="comment">  if(pInfo-&gt;cellHeight){</highlight></codeline>
+<linenumber line="183"/><codeline><highlight class="comment">          theight = mCellHeight = pInfo-&gt;cellHeight;</highlight></codeline>
+<linenumber line="184"/><codeline><highlight class="comment">  }</highlight></codeline>
+<linenumber line="185"/><codeline><highlight class="comment">*/</highlight></codeline>
+<linenumber line="186"/><codeline>     <highlight class="comment">// \D!?\A\A\\81P\1\D\A\O\!!E2D\1\\81~\e\?\EE??\81NIN!E?IA\81CAR</highlight></codeline>
+<linenumber line="187"/><codeline>     <highlight class="keywordflow">if</highlight>(FAILED(hr = mpD3DDevice-&gt;CreateVertexBuffer(</codeline>
+<linenumber line="188"/><codeline>             4 * <highlight class="keyword">sizeof</highlight>(Vertex), </codeline>
+<linenumber line="189"/><codeline>             0 ,</codeline>
+<linenumber line="190"/><codeline>             <ref idref="namespacesf_1_1system_1_1console_1a9">VertexFVF</ref>, </codeline>
+<linenumber line="191"/><codeline>             D3DPOOL_MANAGED, &amp;mpSpriteVtBuf)))</codeline>
+<linenumber line="192"/><codeline>     {</codeline>
+<linenumber line="193"/><codeline>             std::string tmpErr(<highlight class="stringliteral">&quot;VertexBuffer Create Error:&quot;</highlight>);</codeline>
+<linenumber line="194"/><codeline>             tmpErr += DXGetErrorString8(hr);</codeline>
+<linenumber line="195"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(tmpErr,__FILE__,__LINE__);</codeline>
+<linenumber line="196"/><codeline>     }</codeline>
+<linenumber line="197"/><codeline>     </codeline>
+<linenumber line="198"/><codeline>     use(<highlight class="keyword">true</highlight>);</codeline>
+<linenumber line="199"/><codeline>}<highlight class="comment">//loadSprite2D()</highlight></codeline>
+<linenumber line="200"/><codeline></codeline>
+<linenumber line="201"/><codeline><highlight class="comment">// \81\922\81\92A\1\\81~\e\?\E?IEA2e!E\81âI3N\81EA!E!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="202"/><codeline><highlight class="keywordtype">void</highlight> Sprite2D::draw(<highlight class="keyword">const</highlight> ObjRectangle * <highlight class="keyword">const</highlight> pObj)</codeline>
+<linenumber line="203"/><codeline>{</codeline>
+<linenumber line="204"/><codeline></codeline>
+<linenumber line="205"/><codeline>     HRESULT hr;</codeline>
+<linenumber line="206"/><codeline>     </codeline>
+<linenumber line="207"/><codeline>     <highlight class="keywordtype">float</highlight> width;</codeline>
+<linenumber line="208"/><codeline>     <highlight class="keywordtype">float</highlight> height;</codeline>
+<linenumber line="209"/><codeline>     <highlight class="keywordtype">float</highlight> left,right,top,bottom;</codeline>
+<linenumber line="210"/><codeline>     <highlight class="keywordtype">float</highlight> cos_,sin_;</codeline>
+<linenumber line="211"/><codeline>     <highlight class="keywordtype">float</highlight> tu1,tu2,tv1,tv2;</codeline>
+<linenumber line="212"/><codeline>     </codeline>
+<linenumber line="213"/><codeline>     <highlight class="keywordflow">if</highlight>(!pObj-&gt;visibility() || !isUsed())</codeline>
+<linenumber line="214"/><codeline>             <highlight class="keywordflow">return</highlight>;</codeline>
+<linenumber line="215"/><codeline></codeline>
+<linenumber line="216"/><codeline>     D3DCOLOR diffuse = pObj-&gt;color();</codeline>
+<linenumber line="217"/><codeline>     D3DCOLOR specular = pObj-&gt;specular();</codeline>
+<linenumber line="218"/><codeline></codeline>
+<linenumber line="219"/><codeline>     calcUVPos(pObj,tu1,tu2,tv1,tv2);</codeline>
+<linenumber line="220"/><codeline></codeline>
+<linenumber line="221"/><codeline>     Vertex* tlv;</codeline>
+<linenumber line="222"/><codeline>     </codeline>
+<linenumber line="223"/><codeline>     <highlight class="keywordflow">if</highlight>(!mCellHeight)</codeline>
+<linenumber line="224"/><codeline>             height = mHeight * pObj-&gt;scalingY();</codeline>
+<linenumber line="225"/><codeline>     <highlight class="keywordflow">else</highlight></codeline>
+<linenumber line="226"/><codeline>             height = mCellHeight * pObj-&gt;scalingY();</codeline>
+<linenumber line="227"/><codeline></codeline>
+<linenumber line="228"/><codeline>     <highlight class="keywordflow">if</highlight>(!mCellWidth)</codeline>
+<linenumber line="229"/><codeline>             width = mWidth * pObj-&gt;scalingX();</codeline>
+<linenumber line="230"/><codeline>     <highlight class="keywordflow">else</highlight></codeline>
+<linenumber line="231"/><codeline>             width = mCellWidth * pObj-&gt;scalingX(); </codeline>
+<linenumber line="232"/><codeline>             </codeline>
+<linenumber line="233"/><codeline>     left = - (width / 2.0f) + mCenterX;</codeline>
+<linenumber line="234"/><codeline>     right = width / 2.0f + mCenterX;</codeline>
+<linenumber line="235"/><codeline>     top = - (height / 2.0f) + mCenterY;</codeline>
+<linenumber line="236"/><codeline>     bottom = (height / 2.0f) + mCenterY;</codeline>
+<linenumber line="237"/><codeline>             </codeline>
+<linenumber line="238"/><codeline>     <highlight class="keywordflow">if</highlight>(pObj-&gt;angle() != 0.0f)</codeline>
+<linenumber line="239"/><codeline>     {</codeline>
+<linenumber line="240"/><codeline>             cos_ = cosf(pObj-&gt;angle());</codeline>
+<linenumber line="241"/><codeline>             sin_ = sinf(pObj-&gt;angle());</codeline>
+<linenumber line="242"/><codeline></codeline>
+<linenumber line="243"/><codeline></codeline>
+<linenumber line="244"/><codeline>             <highlight class="keywordtype">float</highlight> left_cos = left * cos_;</codeline>
+<linenumber line="245"/><codeline>             <highlight class="keywordtype">float</highlight> left_sin = left * sin_;</codeline>
+<linenumber line="246"/><codeline>     </codeline>
+<linenumber line="247"/><codeline>             <highlight class="keywordtype">float</highlight> right_cos = right * cos_;</codeline>
+<linenumber line="248"/><codeline>             <highlight class="keywordtype">float</highlight> right_sin = right * sin_;</codeline>
+<linenumber line="249"/><codeline></codeline>
+<linenumber line="250"/><codeline>             <highlight class="keywordtype">float</highlight> top_cos = top * cos_;</codeline>
+<linenumber line="251"/><codeline>             <highlight class="keywordtype">float</highlight> top_sin = top * sin_;</codeline>
+<linenumber line="252"/><codeline></codeline>
+<linenumber line="253"/><codeline>             <highlight class="keywordtype">float</highlight> bottom_cos = bottom * cos_;</codeline>
+<linenumber line="254"/><codeline>             <highlight class="keywordtype">float</highlight> bottom_sin = bottom * sin_;</codeline>
+<linenumber line="255"/><codeline></codeline>
+<linenumber line="256"/><codeline>             mpSpriteVtBuf-&gt;Lock(0,0,(BYTE **)&amp;tlv,0);</codeline>
+<linenumber line="257"/><codeline>     </codeline>
+<linenumber line="258"/><codeline>             tlv[0].x = pObj-&gt;x() + left_cos - top_sin;</codeline>
+<linenumber line="259"/><codeline>             tlv[0].y = pObj-&gt;y() + left_sin + top_cos; </codeline>
+<linenumber line="260"/><codeline>             tlv[0].z = pObj-&gt;z();</codeline>
+<linenumber line="261"/><codeline>             tlv[0].diffuse = diffuse;</codeline>
+<linenumber line="262"/><codeline>             tlv[0].specular = specular;</codeline>
+<linenumber line="263"/><codeline>             tlv[0].tu = tu1;</codeline>
+<linenumber line="264"/><codeline>             tlv[0].tv = tv1;</codeline>
+<linenumber line="265"/><codeline>             tlv[0].rhw = 1.0f;</codeline>
+<linenumber line="266"/><codeline>             </codeline>
+<linenumber line="267"/><codeline>             tlv[1].x = pObj-&gt;x() + right_cos - top_sin;</codeline>
+<linenumber line="268"/><codeline>             tlv[1].y = pObj-&gt;y() + right_sin + top_cos; </codeline>
+<linenumber line="269"/><codeline>             tlv[1].z = pObj-&gt;z();</codeline>
+<linenumber line="270"/><codeline>             tlv[1].diffuse = diffuse;</codeline>
+<linenumber line="271"/><codeline>             tlv[1].specular = specular;</codeline>
+<linenumber line="272"/><codeline>             tlv[1].tu = tu2;</codeline>
+<linenumber line="273"/><codeline>             tlv[1].tv = tv1;</codeline>
+<linenumber line="274"/><codeline>             tlv[1].rhw = 1.0f;</codeline>
+<linenumber line="275"/><codeline></codeline>
+<linenumber line="276"/><codeline>             tlv[2].x = pObj-&gt;x() + left_cos - bottom_sin;</codeline>
+<linenumber line="277"/><codeline>             tlv[2].y = pObj-&gt;y() + left_sin + bottom_cos; </codeline>
+<linenumber line="278"/><codeline>             tlv[2].z = pObj-&gt;z();</codeline>
+<linenumber line="279"/><codeline>             tlv[2].diffuse = diffuse;</codeline>
+<linenumber line="280"/><codeline>             tlv[2].specular = specular;</codeline>
+<linenumber line="281"/><codeline>             tlv[2].tu = tu1;</codeline>
+<linenumber line="282"/><codeline>             tlv[2].tv = tv2;</codeline>
+<linenumber line="283"/><codeline>             tlv[2].rhw = 1.0f;</codeline>
+<linenumber line="284"/><codeline>             </codeline>
+<linenumber line="285"/><codeline>             </codeline>
+<linenumber line="286"/><codeline>             tlv[3].x = pObj-&gt;x() + right_cos - bottom_sin;</codeline>
+<linenumber line="287"/><codeline>             tlv[3].y = pObj-&gt;y() + right_sin + bottom_cos; </codeline>
+<linenumber line="288"/><codeline>             tlv[3].z = pObj-&gt;z();</codeline>
+<linenumber line="289"/><codeline>             tlv[3].diffuse = diffuse;</codeline>
+<linenumber line="290"/><codeline>             tlv[3].specular = specular;</codeline>
+<linenumber line="291"/><codeline>             tlv[3].tu = tu2;</codeline>
+<linenumber line="292"/><codeline>             tlv[3].tv = tv2;</codeline>
+<linenumber line="293"/><codeline>             tlv[3].rhw = 1.0f;</codeline>
+<linenumber line="294"/><codeline>     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="295"/><codeline>             mpSpriteVtBuf-&gt;Lock(0,0,(BYTE **)&amp;tlv,0);</codeline>
+<linenumber line="296"/><codeline>     </codeline>
+<linenumber line="297"/><codeline>             tlv[0].x = pObj-&gt;x() + left;</codeline>
+<linenumber line="298"/><codeline>             tlv[0].y = pObj-&gt;y() + top; </codeline>
+<linenumber line="299"/><codeline>             tlv[0].z = pObj-&gt;z();</codeline>
+<linenumber line="300"/><codeline>             tlv[0].diffuse = diffuse;</codeline>
+<linenumber line="301"/><codeline>             tlv[0].specular = specular;</codeline>
+<linenumber line="302"/><codeline>             tlv[0].tu = tu1;</codeline>
+<linenumber line="303"/><codeline>             tlv[0].tv = tv1;</codeline>
+<linenumber line="304"/><codeline>             tlv[0].rhw = 1.0f;</codeline>
+<linenumber line="305"/><codeline>             </codeline>
+<linenumber line="306"/><codeline>             tlv[1].x = pObj-&gt;x() + right;</codeline>
+<linenumber line="307"/><codeline>             tlv[1].y = pObj-&gt;y() + top; </codeline>
+<linenumber line="308"/><codeline>             tlv[1].z = pObj-&gt;z();</codeline>
+<linenumber line="309"/><codeline>             tlv[1].diffuse = diffuse;</codeline>
+<linenumber line="310"/><codeline>             tlv[1].specular = specular;</codeline>
+<linenumber line="311"/><codeline>             tlv[1].tu = tu2;</codeline>
+<linenumber line="312"/><codeline>             tlv[1].tv = tv1;</codeline>
+<linenumber line="313"/><codeline>             tlv[1].rhw = 1.0f;</codeline>
+<linenumber line="314"/><codeline>             </codeline>
+<linenumber line="315"/><codeline>             tlv[2].x = pObj-&gt;x() + left;</codeline>
+<linenumber line="316"/><codeline>             tlv[2].y = pObj-&gt;y() + bottom; </codeline>
+<linenumber line="317"/><codeline>             tlv[2].z = pObj-&gt;z();</codeline>
+<linenumber line="318"/><codeline>             tlv[2].diffuse = diffuse;</codeline>
+<linenumber line="319"/><codeline>             tlv[2].specular = specular;</codeline>
+<linenumber line="320"/><codeline>             tlv[2].tu = tu1;</codeline>
+<linenumber line="321"/><codeline>             tlv[2].tv = tv2;</codeline>
+<linenumber line="322"/><codeline>             tlv[2].rhw = 1.0f;</codeline>
+<linenumber line="323"/><codeline>             </codeline>
+<linenumber line="324"/><codeline>             </codeline>
+<linenumber line="325"/><codeline>             tlv[3].x = pObj-&gt;x() + right;</codeline>
+<linenumber line="326"/><codeline>             tlv[3].y = pObj-&gt;y() + bottom; </codeline>
+<linenumber line="327"/><codeline>             tlv[3].z = pObj-&gt;z();</codeline>
+<linenumber line="328"/><codeline>             tlv[3].diffuse = diffuse;</codeline>
+<linenumber line="329"/><codeline>             tlv[3].specular = specular;</codeline>
+<linenumber line="330"/><codeline>             tlv[3].tu = tu2;</codeline>
+<linenumber line="331"/><codeline>             tlv[3].tv = tv2;</codeline>
+<linenumber line="332"/><codeline>             tlv[3].rhw = 1.0f;</codeline>
+<linenumber line="333"/><codeline></codeline>
+<linenumber line="334"/><codeline>     }</codeline>
+<linenumber line="335"/><codeline>     </codeline>
+<linenumber line="336"/><codeline>     mpSpriteVtBuf-&gt;Unlock();</codeline>
+<linenumber line="337"/><codeline></codeline>
+<linenumber line="338"/><codeline>     mpD3DDevice-&gt;SetRenderState(D3DRS_LIGHTING,            FALSE);</codeline>
+<linenumber line="339"/><codeline></codeline>
+<linenumber line="340"/><codeline>     mpD3DDevice-&gt;SetTexture(0,mpSpriteTexture);</codeline>
+<linenumber line="341"/><codeline>     </codeline>
+<linenumber line="342"/><codeline>     mpD3DDevice-&gt;SetVertexShader(<ref idref="namespacesf_1_1system_1_1console_1a9">VertexFVF</ref>);</codeline>
+<linenumber line="343"/><codeline>     mpD3DDevice-&gt;SetStreamSource(0,mpSpriteVtBuf, <highlight class="keyword">sizeof</highlight>(Vertex));</codeline>
+<linenumber line="344"/><codeline>     </codeline>
+<linenumber line="345"/><codeline>     setRenderState(pObj-&gt;drawMode());</codeline>
+<linenumber line="346"/><codeline>     </codeline>
+<linenumber line="347"/><codeline>     hr = mpD3DDevice-&gt;DrawPrimitive(D3DPT_TRIANGLESTRIP,0,2);</codeline>
+<linenumber line="348"/><codeline>     mpD3DDevice-&gt;SetTexture(0,NULL);</codeline>
+<linenumber line="349"/><codeline></codeline>
+<linenumber line="350"/><codeline>}<highlight class="comment">//  draw()</highlight></codeline>
+<linenumber line="351"/><codeline></codeline>
+<linenumber line="352"/><codeline></codeline>
+<linenumber line="353"/><codeline><highlight class="comment">// \1\\81~\e\?\E?IEA2e ------------------------------------------------------------</highlight></codeline>
+<linenumber line="354"/><codeline><highlight class="keywordtype">void</highlight> Sprite2D::draw(<highlight class="keyword">const</highlight> ObjQuadrangle * <highlight class="keyword">const</highlight> pObj)</codeline>
+<linenumber line="355"/><codeline>{</codeline>
+<linenumber line="356"/><codeline>     <highlight class="keywordflow">if</highlight>(!pObj-&gt;visibility() || !isUsed() )</codeline>
+<linenumber line="357"/><codeline>             <highlight class="keywordflow">return</highlight>;</codeline>
+<linenumber line="358"/><codeline></codeline>
+<linenumber line="359"/><codeline>     HRESULT hr;</codeline>
+<linenumber line="360"/><codeline>     </codeline>
+<linenumber line="361"/><codeline>     <highlight class="keywordtype">float</highlight> cos_,sin_;</codeline>
+<linenumber line="362"/><codeline>     </codeline>
+<linenumber line="363"/><codeline>     <highlight class="keyword">const</highlight> Vertex* vertex;</codeline>
+<linenumber line="364"/><codeline>     Vertex* ptlv;</codeline>
+<linenumber line="365"/><codeline></codeline>
+<linenumber line="366"/><codeline>     <highlight class="keywordtype">float</highlight> rot_x = mCenterX;</codeline>
+<linenumber line="367"/><codeline>     <highlight class="keywordtype">float</highlight> rot_y = mCenterY;</codeline>
+<linenumber line="368"/><codeline></codeline>
+<linenumber line="369"/><codeline>     <highlight class="keywordtype">float</highlight> scaling_x = pObj-&gt;scalingX();</codeline>
+<linenumber line="370"/><codeline>     <highlight class="keywordtype">float</highlight> scaling_y = pObj-&gt;scalingY();</codeline>
+<linenumber line="371"/><codeline></codeline>
+<linenumber line="372"/><codeline>     <highlight class="keywordtype">float</highlight> u1,u2,v1,v2;</codeline>
+<linenumber line="373"/><codeline>     </codeline>
+<linenumber line="374"/><codeline>     calcUVPos(pObj,u1,u2,v1,v2);</codeline>
+<linenumber line="375"/><codeline></codeline>
+<linenumber line="376"/><codeline>     mpSpriteVtBuf-&gt;Lock(0,0,(BYTE **)&amp;ptlv,0);</codeline>
+<linenumber line="377"/><codeline>     </codeline>
+<linenumber line="378"/><codeline>     ptlv[0].tu = u1;</codeline>
+<linenumber line="379"/><codeline>     ptlv[0].tv = v1;</codeline>
+<linenumber line="380"/><codeline>     ptlv[1].tu = u2;</codeline>
+<linenumber line="381"/><codeline>     ptlv[1].tv = v1;</codeline>
+<linenumber line="382"/><codeline>     ptlv[2].tu = u1;</codeline>
+<linenumber line="383"/><codeline>     ptlv[2].tv = v2;</codeline>
+<linenumber line="384"/><codeline>     ptlv[3].tu = u2;</codeline>
+<linenumber line="385"/><codeline>     ptlv[3].tv = v2;</codeline>
+<linenumber line="386"/><codeline></codeline>
+<linenumber line="387"/><codeline>     <highlight class="keywordflow">if</highlight>(pObj-&gt;angle() != 0.0f)</codeline>
+<linenumber line="388"/><codeline>     {</codeline>
+<linenumber line="389"/><codeline>             cos_ = cosf(pObj-&gt;angle());</codeline>
+<linenumber line="390"/><codeline>             sin_ = sinf(pObj-&gt;angle());</codeline>
+<linenumber line="391"/><codeline></codeline>
+<linenumber line="392"/><codeline></codeline>
+<linenumber line="393"/><codeline>             <highlight class="keywordflow">for</highlight>(<highlight class="keywordtype">int</highlight> i = 0;i &lt; 4;i++)</codeline>
+<linenumber line="394"/><codeline>             {</codeline>
+<linenumber line="395"/><codeline>                     vertex = pObj-&gt;vertex(i);</codeline>
+<linenumber line="396"/><codeline></codeline>
+<linenumber line="397"/><codeline>                     ptlv[i].x = pObj-&gt;x() </codeline>
+<linenumber line="398"/><codeline>                             + ( vertex-&gt;x - rot_x) * cos_</codeline>
+<linenumber line="399"/><codeline>                             - ( vertex-&gt;y - rot_y) * sin_;</codeline>
+<linenumber line="400"/><codeline>                     ptlv[i].y = pObj-&gt;y() </codeline>
+<linenumber line="401"/><codeline>                             + ( vertex-&gt;x - rot_x) * sin_</codeline>
+<linenumber line="402"/><codeline>                             + ( vertex-&gt;y - rot_y) * cos_;</codeline>
+<linenumber line="403"/><codeline></codeline>
+<linenumber line="404"/><codeline>                     ptlv[i].diffuse = vertex-&gt;diffuse;</codeline>
+<linenumber line="405"/><codeline>                     ptlv[i].specular = vertex-&gt;specular;</codeline>
+<linenumber line="406"/><codeline><highlight class="comment">//                        ptlv[i].tu = vertex-&gt;tu;</highlight></codeline>
+<linenumber line="407"/><codeline><highlight class="comment">//                        ptlv[i].tv = vertex-&gt;tv;</highlight></codeline>
+<linenumber line="408"/><codeline>                     ptlv[i].rhw = 1.0f;</codeline>
+<linenumber line="409"/><codeline>             }</codeline>
+<linenumber line="410"/><codeline>             </codeline>
+<linenumber line="411"/><codeline>     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="412"/><codeline></codeline>
+<linenumber line="413"/><codeline>             <highlight class="keywordflow">for</highlight>(<highlight class="keywordtype">int</highlight> i = 0;i &lt; 4;i++)</codeline>
+<linenumber line="414"/><codeline>             {</codeline>
+<linenumber line="415"/><codeline>                     vertex = pObj-&gt;vertex(i);</codeline>
+<linenumber line="416"/><codeline></codeline>
+<linenumber line="417"/><codeline>                     ptlv[i].x = pObj-&gt;x() + vertex-&gt;x * scaling_x;</codeline>
+<linenumber line="418"/><codeline>                     ptlv[i].y = pObj-&gt;y() + vertex-&gt;y * scaling_y;</codeline>
+<linenumber line="419"/><codeline></codeline>
+<linenumber line="420"/><codeline>                     ptlv[i].diffuse = vertex-&gt;diffuse;</codeline>
+<linenumber line="421"/><codeline>                     ptlv[i].specular = vertex-&gt;specular;</codeline>
+<linenumber line="422"/><codeline><highlight class="comment">//                        ptlv[i].tu = vertex-&gt;tu;</highlight></codeline>
+<linenumber line="423"/><codeline><highlight class="comment">//                        ptlv[i].tv = vertex-&gt;tv;</highlight></codeline>
+<linenumber line="424"/><codeline>                     ptlv[i].rhw = 1.0f;</codeline>
+<linenumber line="425"/><codeline>             }</codeline>
+<linenumber line="426"/><codeline></codeline>
+<linenumber line="427"/><codeline>     }</codeline>
+<linenumber line="428"/><codeline>     </codeline>
+<linenumber line="429"/><codeline>     mpSpriteVtBuf-&gt;Unlock();</codeline>
+<linenumber line="430"/><codeline>     </codeline>
+<linenumber line="431"/><codeline>     mpD3DDevice-&gt;SetTexture(0,mpSpriteTexture);</codeline>
+<linenumber line="432"/><codeline>     mpD3DDevice-&gt;SetVertexShader(<ref idref="namespacesf_1_1system_1_1console_1a9">VertexFVF</ref>);</codeline>
+<linenumber line="433"/><codeline></codeline>
+<linenumber line="434"/><codeline>     mpD3DDevice-&gt;SetStreamSource(0,mpSpriteVtBuf,<highlight class="keyword">sizeof</highlight>(Vertex));</codeline>
+<linenumber line="435"/><codeline></codeline>
+<linenumber line="436"/><codeline>     setRenderState(pObj-&gt;drawMode());</codeline>
+<linenumber line="437"/><codeline>     mpD3DDevice-&gt;SetRenderState(D3DRS_LIGHTING,            FALSE);</codeline>
+<linenumber line="438"/><codeline>     </codeline>
+<linenumber line="439"/><codeline>     hr = mpD3DDevice-&gt;DrawPrimitive(D3DPT_TRIANGLESTRIP,0,2);</codeline>
+<linenumber line="440"/><codeline>     mpD3DDevice-&gt;SetTexture(0,NULL);</codeline>
+<linenumber line="441"/><codeline>             </codeline>
+<linenumber line="442"/><codeline>}<highlight class="comment">// draw</highlight></codeline>
+<linenumber line="443"/><codeline></codeline>
+<linenumber line="444"/><codeline><highlight class="comment">// \A\\81P\1\A\a?I\81\8bIAO?o\83Êa?a?e !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="445"/><codeline><highlight class="keywordtype">void</highlight> Sprite2D::calcUVPos(<highlight class="keyword">const</highlight> Obj2D * <highlight class="keyword">const</highlight> pObj,<highlight class="keywordtype">float</highlight>&amp; u1,<highlight class="keywordtype">float</highlight>&amp; u2,<highlight class="keywordtype">float</highlight>&amp; v1,<highlight class="keywordtype">float</highlight>&amp; v2)</codeline>
+<linenumber line="446"/><codeline>{</codeline>
+<linenumber line="447"/><codeline>     <highlight class="keywordtype">float</highlight> cu1,cu2,cv1,cv2;</codeline>
+<linenumber line="448"/><codeline>     </codeline>
+<linenumber line="449"/><codeline>     <highlight class="keywordflow">if</highlight>(mCellWidth){</codeline>
+<linenumber line="450"/><codeline>             <highlight class="keywordtype">int</highlight> cell_ix = pObj-&gt;index() % (int)(mWidth / mCellWidth);</codeline>
+<linenumber line="451"/><codeline>             cu1 = (float)cell_ix * mCellWidth / mWidth;</codeline>
+<linenumber line="452"/><codeline>             cu2 = (float)(cell_ix + 1) * (mCellWidth - 0.008f) / mWidth;</codeline>
+<linenumber line="453"/><codeline>     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="454"/><codeline>             cu1 = 0.0f;</codeline>
+<linenumber line="455"/><codeline>             cu2 = 1.0f;</codeline>
+<linenumber line="456"/><codeline>     }</codeline>
+<linenumber line="457"/><codeline></codeline>
+<linenumber line="458"/><codeline>     <highlight class="keywordflow">if</highlight>(mCellHeight){</codeline>
+<linenumber line="459"/><codeline>             <highlight class="keywordtype">int</highlight> cell_iy = pObj-&gt;index() / (mWidth / mCellHeight);</codeline>
+<linenumber line="460"/><codeline>             cv1 = (float)cell_iy * mCellHeight / mHeight;</codeline>
+<linenumber line="461"/><codeline>             cv2 = (float)(cell_iy + 1) * (mCellHeight - 0.008f) / mHeight;</codeline>
+<linenumber line="462"/><codeline>     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="463"/><codeline>             cv1 = 0.0f;</codeline>
+<linenumber line="464"/><codeline>             cv2 = 1.0f;</codeline>
+<linenumber line="465"/><codeline>     }</codeline>
+<linenumber line="466"/><codeline></codeline>
+<linenumber line="467"/><codeline>     <highlight class="comment">// XE?A?</highlight></codeline>
+<linenumber line="468"/><codeline>     <highlight class="keywordflow">if</highlight>(pObj-&gt;reverseX()){</codeline>
+<linenumber line="469"/><codeline>             u1 = cu2;</codeline>
+<linenumber line="470"/><codeline>             u2 = cu1;</codeline>
+<linenumber line="471"/><codeline>     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="472"/><codeline>             u1 = cu1;</codeline>
+<linenumber line="473"/><codeline>             u2 = cu2;</codeline>
+<linenumber line="474"/><codeline>     }</codeline>
+<linenumber line="475"/><codeline></codeline>
+<linenumber line="476"/><codeline>     <highlight class="comment">// YE?A?</highlight></codeline>
+<linenumber line="477"/><codeline>     <highlight class="keywordflow">if</highlight>(pObj-&gt;reverseY()){</codeline>
+<linenumber line="478"/><codeline>             v1 = cv2;</codeline>
+<linenumber line="479"/><codeline>             v2 = cv1;</codeline>
+<linenumber line="480"/><codeline>     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="481"/><codeline>             v1 = cv1;</codeline>
+<linenumber line="482"/><codeline>             v2 = cv2;</codeline>
+<linenumber line="483"/><codeline>     }</codeline>
+<linenumber line="484"/><codeline></codeline>
+<linenumber line="485"/><codeline>};</codeline>
+<linenumber line="486"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Sprite2D.cpp"/>
+  </compounddef>
+  <compounddef id="Sprite2D_8h" kind="file">
+    <compoundname>Sprite2D.h</compoundname>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includes id="Console_8h" local="yes">Console.h</includes>
+    <includedby id="ConsoleImpl_8cpp" local="yes">ConsoleImpl.cpp</includedby>
+    <includedby id="Sprite2D_8cpp" local="yes">Sprite2D.cpp</includedby>
+    <incdepgraph>
+      <node id="686">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="687">
+        <label>Console.h</label>
+        <link id="Console_8h"/>
+        <childnode id="688" relation="public-inheritance">
+        </childnode>
+        <childnode id="686" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="685">
+        <label>Sprite2D.h</label>
+        <link id="Sprite2D.h"/>
+        <childnode id="686" relation="public-inheritance">
+        </childnode>
+        <childnode id="687" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="688">
+        <label>memory</label>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="691">
+        <label>Sprite2D.cpp</label>
+        <link id="Sprite2D_8cpp-source"/>
+      </node>
+      <node id="690">
+        <label>ConsoleImpl.cpp</label>
+        <link id="ConsoleImpl_8cpp-source"/>
+      </node>
+      <node id="689">
+        <label>Sprite2D.h</label>
+        <link id="Sprite2D.h"/>
+        <childnode id="690" relation="public-inheritance">
+        </childnode>
+        <childnode id="691" relation="public-inheritance">
+        </childnode>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console">sf::system::console</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console_1_1sprite">sf::system::console::sprite</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="Sprite2D_8h_1a0" virt="normal" prot="public">
+        <name>AFX_SPRITE2D_H__6DA7673D_29FF_4B0A_838E_FE14D70C7E27__INCLUDED_</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite2D.h" line="32" bodystart="32" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// Sprite2D.h: Sprite2D \\81P\e\1?I\?\o\?!?\O\\81\98\?\1</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  IuIo!\81\98</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// $Log: Sprite2D.h,v $</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// Revision 1.3  2001/11/06 21:27:42  fujiwara</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// AcEy11?\81EA\81\8b\D\A\\81P\\81\91\A\\81~</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// Revision 1.2  2001/10/28 21:35:56  fujiwara</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:36  fujiwara</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">// Revision 1.4  2001/07/09 20:30:09  fujiwara</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">// Revision 1.3  2001/05/13 20:04:24  fujiwara</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P?\81ÊE\81PA\81C?\81E???I?C?e?e?u?\81P!\81\92</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">// ?\81áAA?I\\83Ê\|\o\E\A\1\E</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:48:55  fujiwara</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="30"/><codeline></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor">#if !defined(AFX_SPRITE2D_H__6DA7673D_29FF_4B0A_838E_FE14D70C7E27__INCLUDED_)</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_SPRITE2D_H__6DA7673D_29FF_4B0A_838E_FE14D70C7E27__INCLUDED_</highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="34"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="35"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="36"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="37"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight> </codeline>
+<linenumber line="38"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="Console_8h">Console.h</ref>&quot;</highlight></codeline>
+<linenumber line="39"/><codeline><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="40"/><codeline><highlight class="keyword">namespace </highlight>sf{</codeline>
+<linenumber line="41"/><codeline>      <highlight class="keyword">namespace </highlight>system{</codeline>
+<linenumber line="42"/><codeline>              <highlight class="keyword">namespace </highlight>console {</codeline>
+<linenumber line="43"/><codeline>                      <highlight class="keyword">namespace </highlight>sprite {</codeline>
+<linenumber line="44"/><codeline></codeline>
+<linenumber line="45"/><codeline><highlight class="keyword">class </highlight>Sprite2D : <highlight class="keyword">public</highlight> AbstractSprite  </codeline>
+<linenumber line="46"/><codeline>{</codeline>
+<linenumber line="47"/><codeline>      <highlight class="comment">// LIFECYCLE //</highlight></codeline>
+<linenumber line="48"/><codeline><highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="49"/><codeline>      Sprite2D(LPDIRECT3DDEVICE8 pD3DDevice);</codeline>
+<linenumber line="50"/><codeline>      <highlight class="keyword">virtual</highlight> ~Sprite2D();</codeline>
+<linenumber line="51"/><codeline>      <highlight class="comment">// OPERATIONS //</highlight></codeline>
+<linenumber line="52"/><codeline>      <highlight class="keywordtype">void</highlight> initialize(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="53"/><codeline>      <highlight class="keywordtype">void</highlight> initialize(LPDIRECT3DDEVICE8    pD3DDevice);</codeline>
+<linenumber line="54"/><codeline>      <highlight class="keywordtype">void</highlight> uninitialize(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="55"/><codeline>      <highlight class="keywordtype">void</highlight> load(<highlight class="keyword">const</highlight> sprite::Info *pInfo,<highlight class="keyword">const</highlight> D3DFORMAT textureFormat,<highlight class="keyword">const</highlight> COLOR color);</codeline>
+<linenumber line="56"/><codeline>      <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a1">draw</ref>(<highlight class="keyword">const</highlight> ObjRectangle * <highlight class="keyword">const</highlight> pObj);</codeline>
+<linenumber line="57"/><codeline>      <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a1">draw</ref>(<highlight class="keyword">const</highlight> ObjQuadrangle * <highlight class="keyword">const</highlight> pObj);</codeline>
+<linenumber line="58"/><codeline>      <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a1">draw</ref>(<highlight class="keyword">const</highlight> Obj3DL * <highlight class="keyword">const</highlight> pObj){<highlight class="keywordflow">return</highlight>;};</codeline>
+<linenumber line="59"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> width(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight></codeline>
+<linenumber line="60"/><codeline><highlight class="keyword">   </highlight>{</codeline>
+<linenumber line="61"/><codeline>              <highlight class="keywordflow">if</highlight>(mCellWidth != 0.0f)</codeline>
+<linenumber line="62"/><codeline>                      <highlight class="keywordflow">return</highlight> mCellWidth;</codeline>
+<linenumber line="63"/><codeline>              <highlight class="keywordflow">return</highlight> mWidth;</codeline>
+<linenumber line="64"/><codeline>      };</codeline>
+<linenumber line="65"/><codeline></codeline>
+<linenumber line="66"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> height(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{</codeline>
+<linenumber line="67"/><codeline>              <highlight class="keywordflow">if</highlight>(mCellHeight != 0.0f)</codeline>
+<linenumber line="68"/><codeline>                      <highlight class="keywordflow">return</highlight> mCellHeight;</codeline>
+<linenumber line="69"/><codeline>              <highlight class="keywordflow">return</highlight> mHeight;</codeline>
+<linenumber line="70"/><codeline>      };</codeline>
+<linenumber line="71"/><codeline></codeline>
+<linenumber line="72"/><codeline><highlight class="keyword">private</highlight>:</codeline>
+<linenumber line="73"/><codeline>      <highlight class="keywordtype">void</highlight> calcUVPos(<highlight class="keyword">const</highlight> Obj2D * <highlight class="keyword">const</highlight> pObj,<highlight class="keywordtype">float</highlight>&amp; u1,<highlight class="keywordtype">float</highlight>&amp; u2,<highlight class="keywordtype">float</highlight>&amp; v1,<highlight class="keywordtype">float</highlight>&amp; v2);</codeline>
+<linenumber line="74"/><codeline>      IDirect3DTexture8* mpSpriteTexture;</codeline>
+<linenumber line="75"/><codeline>      IDirect3DVertexBuffer8* mpSpriteVtBuf;</codeline>
+<linenumber line="76"/><codeline></codeline>
+<linenumber line="77"/><codeline>      <highlight class="keywordtype">float</highlight> mCellWidth;</codeline>
+<linenumber line="78"/><codeline>      <highlight class="keywordtype">float</highlight> mCellHeight;</codeline>
+<linenumber line="79"/><codeline>      <highlight class="keywordtype">float</highlight> mCellCount;</codeline>
+<linenumber line="80"/><codeline></codeline>
+<linenumber line="81"/><codeline>};<highlight class="comment">// SpriteImpl</highlight></codeline>
+<linenumber line="82"/><codeline>                      }</codeline>
+<linenumber line="83"/><codeline>              }</codeline>
+<linenumber line="84"/><codeline>      }</codeline>
+<linenumber line="85"/><codeline>}</codeline>
+<linenumber line="86"/><codeline>}</codeline>
+<linenumber line="87"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_SPRITE2D_H__6DA7673D_29FF_4B0A_838E_FE14D70C7E27__INCLUDED_)</highlight></codeline>
+<linenumber line="88"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Sprite2D.h"/>
+  </compounddef>
+  <compounddef id="Sprite3D_8cpp" kind="file">
+    <compoundname>Sprite3D.cpp</compoundname>
+    <includes id="sfdebug_8h" local="yes">sfdebug.h</includes>
+    <includes local="no">stdio.h</includes>
+    <includes local="no">queue</includes>
+    <includes local="yes">windows.h</includes>
+    <includes local="yes">windowsx.h</includes>
+    <includes local="yes">d3d8.h</includes>
+    <includes local="yes">d3dx8.h</includes>
+    <includes id="dxerr8sf_8h" local="yes">dxerr8sf.h</includes>
+    <includes local="yes">exception.h</includes>
+    <includes local="yes">sound.h</includes>
+    <includes id="System_8h" local="yes">System.h</includes>
+    <includes local="yes">console.h</includes>
+    <includes id="Obj_8h" local="yes">Obj.h</includes>
+    <includes id="Obj3D_8h" local="yes">Obj3D.h</includes>
+    <includes id="Obj3DL_8h" local="yes">Obj3DL.h</includes>
+    <includes id="AbstractSprite_8h" local="yes">AbstractSprite.h</includes>
+    <includes id="ConsoleImpl_8h" local="yes">ConsoleImpl.h</includes>
+    <includes id="Sprite3D_8h" local="yes">Sprite3D.h</includes>
+    <incdepgraph>
+      <node id="701">
+        <label>dxerr8.h</label>
+      </node>
+      <node id="695">
+        <label>queue</label>
+      </node>
+      <node id="696">
+        <label>windows.h</label>
+      </node>
+      <node id="704">
+        <label>System.h</label>
+        <link id="System_8h"/>
+        <childnode id="705" relation="public-inheritance">
+        </childnode>
+        <childnode id="706" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="697">
+        <label>windowsx.h</label>
+      </node>
+      <node id="705">
+        <label>string</label>
+      </node>
+      <node id="714">
+        <label>ConsoleImpl.h</label>
+        <link id="ConsoleImpl_8h"/>
+        <childnode id="706" relation="public-inheritance">
+        </childnode>
+        <childnode id="712" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="700">
+        <label>dxerr8sf.h</label>
+        <link id="dxerr8sf_8h-source"/>
+        <childnode id="701" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="693">
+        <label>sfdebug.h</label>
+        <link id="sfdebug_8h"/>
+      </node>
+      <node id="711">
+        <label>AbstractSprite.h</label>
+        <link id="AbstractSprite_8h-source"/>
+        <childnode id="706" relation="public-inheritance">
+        </childnode>
+        <childnode id="712" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="706">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="703">
+        <label>sound.h</label>
+      </node>
+      <node id="712">
+        <label>Console.h</label>
+        <link id="Console_8h"/>
+        <childnode id="713" relation="public-inheritance">
+        </childnode>
+        <childnode id="706" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="707">
+        <label>console.h</label>
+      </node>
+      <node id="709">
+        <label>Obj3D.h</label>
+        <link id="Obj3D_8h-source"/>
+        <childnode id="706" relation="public-inheritance">
+        </childnode>
+        <childnode id="708" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="715">
+        <label>Sprite3D.h</label>
+        <link id="Sprite3D_8h-source"/>
+        <childnode id="706" relation="public-inheritance">
+        </childnode>
+        <childnode id="711" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="710">
+        <label>Obj3DL.h</label>
+        <link id="Obj3DL_8h-source"/>
+        <childnode id="706" relation="public-inheritance">
+        </childnode>
+        <childnode id="709" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="708">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="706" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="698">
+        <label>d3d8.h</label>
+      </node>
+      <node id="702">
+        <label>exception.h</label>
+      </node>
+      <node id="699">
+        <label>d3dx8.h</label>
+      </node>
+      <node id="694">
+        <label>stdio.h</label>
+      </node>
+      <node id="692">
+        <label>Sprite3D.cpp</label>
+        <link id="Sprite3D.cpp"/>
+        <childnode id="693" relation="public-inheritance">
+        </childnode>
+        <childnode id="694" relation="public-inheritance">
+        </childnode>
+        <childnode id="695" relation="public-inheritance">
+        </childnode>
+        <childnode id="696" relation="public-inheritance">
+        </childnode>
+        <childnode id="697" relation="public-inheritance">
+        </childnode>
+        <childnode id="698" relation="public-inheritance">
+        </childnode>
+        <childnode id="699" relation="public-inheritance">
+        </childnode>
+        <childnode id="700" relation="public-inheritance">
+        </childnode>
+        <childnode id="702" relation="public-inheritance">
+        </childnode>
+        <childnode id="703" relation="public-inheritance">
+        </childnode>
+        <childnode id="704" relation="public-inheritance">
+        </childnode>
+        <childnode id="707" relation="public-inheritance">
+        </childnode>
+        <childnode id="708" relation="public-inheritance">
+        </childnode>
+        <childnode id="709" relation="public-inheritance">
+        </childnode>
+        <childnode id="710" relation="public-inheritance">
+        </childnode>
+        <childnode id="711" relation="public-inheritance">
+        </childnode>
+        <childnode id="714" relation="public-inheritance">
+        </childnode>
+        <childnode id="715" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="713">
+        <label>memory</label>
+      </node>
+    </incdepgraph>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// Sprite3D.cpp: Sprite3D \\81P\e\1?I\?\o\\81~\e\a\o\A!?\\81E\c\o</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  IuIo!\81\98</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// $Log: Sprite3D.cpp,v $</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:36  fujiwara</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// Revision 1.4  2001/07/09 20:30:09  fujiwara</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// Revision 1.3  2001/07/01 21:30:34  fujiwara</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// \a\a\e\e!?\\81P\A\\81\98\A\\81P\81C\81áA??\81E</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:48:55  fujiwara</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor">#pragma warning( disable : 4786 )     //STL?I\81EU1d3\81\8b?\81E</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="sfdebug_8h">sfdebug.h</ref>&quot;</highlight></codeline>
+<linenumber line="27"/><codeline></codeline>
+<linenumber line="28"/><codeline><highlight class="comment">// SYSTEM INCLUDES</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor">#include &lt;stdio.h&gt;</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor">#include &lt;queue&gt;</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor">#include &quot;windows.h&quot;</highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="preprocessor">#include &quot;windowsx.h&quot;</highlight></codeline>
+<linenumber line="34"/><codeline></codeline>
+<linenumber line="35"/><codeline><highlight class="preprocessor">#include &quot;d3d8.h&quot;</highlight></codeline>
+<linenumber line="36"/><codeline><highlight class="preprocessor">#include &quot;d3dx8.h&quot;</highlight></codeline>
+<linenumber line="37"/><codeline><highlight class="preprocessor">#include &quot;dxerr8sf.h&quot;</highlight></codeline>
+<linenumber line="38"/><codeline></codeline>
+<linenumber line="39"/><codeline></codeline>
+<linenumber line="40"/><codeline><highlight class="comment">// PROJECT INCLUDES</highlight></codeline>
+<linenumber line="41"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="42"/><codeline><highlight class="preprocessor">#include &quot;exception.h&quot;</highlight></codeline>
+<linenumber line="43"/><codeline><highlight class="preprocessor">#include &quot;sound.h&quot;</highlight></codeline>
+<linenumber line="44"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="System_8h">System.h</ref>&quot;</highlight></codeline>
+<linenumber line="45"/><codeline><highlight class="preprocessor">#include &quot;console.h&quot;</highlight></codeline>
+<linenumber line="46"/><codeline><highlight class="preprocessor">#include &quot;Obj.h&quot;</highlight></codeline>
+<linenumber line="47"/><codeline><highlight class="preprocessor">#include &quot;Obj3D.h&quot;</highlight></codeline>
+<linenumber line="48"/><codeline><highlight class="preprocessor">#include &quot;Obj3DL.h&quot;</highlight></codeline>
+<linenumber line="49"/><codeline><highlight class="preprocessor">#include &quot;AbstractSprite.h&quot;</highlight></codeline>
+<linenumber line="50"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="ConsoleImpl_8h">ConsoleImpl.h</ref>&quot;</highlight></codeline>
+<linenumber line="51"/><codeline></codeline>
+<linenumber line="52"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="53"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define new DEBUG_NEW</highlight></codeline>
+<linenumber line="54"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="55"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="56"/><codeline><highlight class="preprocessor">#include &quot;Sprite3D.h&quot;</highlight></codeline>
+<linenumber line="57"/><codeline></codeline>
+<linenumber line="58"/><codeline><highlight class="keyword">using</highlight> <highlight class="keyword">namespace </highlight>sf::system::console;</codeline>
+<linenumber line="59"/><codeline>using namespace sf::system::console::sprite;</codeline>
+<linenumber line="60"/><codeline></codeline>
+<linenumber line="62"/><codeline><highlight class="comment">// 1?AU/?AIC</highlight></codeline>
+<linenumber line="64"/><codeline><highlight class="comment">// \3\o\1\E\e\\81P\? !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="65"/><codeline>Sprite3D::Sprite3D(LPDIRECT3DDEVICE8 pD3DDevice)</codeline>
+<linenumber line="66"/><codeline>{</codeline>
+<linenumber line="67"/><codeline>      mpSprite3DVtBuf = NULL;</codeline>
+<linenumber line="68"/><codeline>      mpSpriteTexture = NULL;</codeline>
+<linenumber line="69"/><codeline>      mCellWidth = mCellHeight = 0.0f;</codeline>
+<linenumber line="70"/><codeline>      mCellCount = 0.0f;</codeline>
+<linenumber line="71"/><codeline></codeline>
+<linenumber line="72"/><codeline>      initialize(pD3DDevice);</codeline>
+<linenumber line="73"/><codeline>}</codeline>
+<linenumber line="74"/><codeline></codeline>
+<linenumber line="75"/><codeline><highlight class="comment">// \C\1\E\e\\81P\? !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="76"/><codeline>Sprite3D::~Sprite3D()</codeline>
+<linenumber line="77"/><codeline>{</codeline>
+<linenumber line="78"/><codeline>      uninitialize();</codeline>
+<linenumber line="79"/><codeline>}<highlight class="comment">//Sprite3D</highlight></codeline>
+<linenumber line="80"/><codeline></codeline>
+<linenumber line="81"/><codeline><highlight class="comment">// ?e\81Lu2? !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="82"/><codeline><highlight class="keywordtype">void</highlight> Sprite3D::initialize(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="83"/><codeline>{</codeline>
+<linenumber line="84"/><codeline>      uninitialize();</codeline>
+<linenumber line="85"/><codeline>      mbUse = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="86"/><codeline></codeline>
+<linenumber line="87"/><codeline>}<highlight class="comment">// initialize()</highlight></codeline>
+<linenumber line="88"/><codeline><highlight class="comment">// ?e\81Lu2? !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="89"/><codeline><highlight class="keywordtype">void</highlight> Sprite3D::initialize(LPDIRECT3DDEVICE8        pD3DDevice)</codeline>
+<linenumber line="90"/><codeline>{</codeline>
+<linenumber line="91"/><codeline>      <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a13">initialize</ref>();</codeline>
+<linenumber line="92"/><codeline></codeline>
+<linenumber line="93"/><codeline>      mpD3DDevice = pD3DDevice;</codeline>
+<linenumber line="94"/><codeline>}<highlight class="comment">// initialize()</highlight></codeline>
+<linenumber line="95"/><codeline></codeline>
+<linenumber line="96"/><codeline><highlight class="comment">// \1\\81~\e\?\EIN\?\o\?!?\O\\81\98!?\1?I\e\e!?\1 !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="97"/><codeline><highlight class="keywordtype">void</highlight> Sprite3D::uninitialize(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="98"/><codeline>{</codeline>
+<linenumber line="99"/><codeline></codeline>
+<linenumber line="100"/><codeline>     <highlight class="keywordflow">if</highlight>(mpSprite3DVtBuf)</codeline>
+<linenumber line="101"/><codeline>     {</codeline>
+<linenumber line="102"/><codeline>             mpSprite3DVtBuf-&gt;Release();</codeline>
+<linenumber line="103"/><codeline>             mpSprite3DVtBuf = NULL;</codeline>
+<linenumber line="104"/><codeline>     }</codeline>
+<linenumber line="105"/><codeline></codeline>
+<linenumber line="106"/><codeline>     <highlight class="keywordflow">if</highlight>(mpSpriteTexture){</codeline>
+<linenumber line="107"/><codeline>             mpSpriteTexture-&gt;Release();</codeline>
+<linenumber line="108"/><codeline>             mpSpriteTexture = NULL;</codeline>
+<linenumber line="109"/><codeline>     }</codeline>
+<linenumber line="110"/><codeline><highlight class="comment">/*</highlight></codeline>
+<linenumber line="111"/><codeline><highlight class="comment">    if( mpMeshMaterials != NULL ) </highlight></codeline>
+<linenumber line="112"/><codeline><highlight class="comment">        delete[] mpMeshMaterials;</highlight></codeline>
+<linenumber line="113"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="114"/><codeline><highlight class="comment">    if( mpMeshTextures )</highlight></codeline>
+<linenumber line="115"/><codeline><highlight class="comment">    {</highlight></codeline>
+<linenumber line="116"/><codeline><highlight class="comment">        for( DWORD i = 0; i &lt; mNumMaterials; i++ )</highlight></codeline>
+<linenumber line="117"/><codeline><highlight class="comment">        {</highlight></codeline>
+<linenumber line="118"/><codeline><highlight class="comment">            if( mpMeshTextures[i] )</highlight></codeline>
+<linenumber line="119"/><codeline><highlight class="comment">                mpMeshTextures[i]-&gt;Release();</highlight></codeline>
+<linenumber line="120"/><codeline><highlight class="comment">        }</highlight></codeline>
+<linenumber line="121"/><codeline><highlight class="comment">        delete[] mpMeshTextures;</highlight></codeline>
+<linenumber line="122"/><codeline><highlight class="comment">    }</highlight></codeline>
+<linenumber line="123"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="124"/><codeline><highlight class="comment">  if( mpMesh != NULL )</highlight></codeline>
+<linenumber line="125"/><codeline><highlight class="comment">        mpMesh-&gt;Release();</highlight></codeline>
+<linenumber line="126"/><codeline><highlight class="comment"> */</highlight>   </codeline>
+<linenumber line="127"/><codeline>     mbUse = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="128"/><codeline>}<highlight class="comment">// uninitialize()</highlight></codeline>
+<linenumber line="129"/><codeline></codeline>
+<linenumber line="130"/><codeline></codeline>
+<linenumber line="131"/><codeline><highlight class="comment">// 3D\1\\81~\e\?\E?I\i!?\E -!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="132"/><codeline><highlight class="keywordtype">void</highlight> Sprite3D::load(<highlight class="keyword">const</highlight> sprite::Info *pInfo,<highlight class="keyword">const</highlight> D3DFORMAT textureFormat,<highlight class="keyword">const</highlight> COLOR color)</codeline>
+<linenumber line="133"/><codeline>{</codeline>
+<linenumber line="134"/><codeline>     <highlight class="comment">// \A\\81P\1\A\a?I\i!?\E </highlight></codeline>
+<linenumber line="135"/><codeline>     D3DXIMAGE_INFO img_info;</codeline>
+<linenumber line="136"/><codeline>     HRESULT hr = D3DXCreateTextureFromFileExA(</codeline>
+<linenumber line="137"/><codeline>             mpD3DDevice,</codeline>
+<linenumber line="138"/><codeline>             pInfo-&gt;fileName,</codeline>
+<linenumber line="139"/><codeline>             D3DX_DEFAULT,</codeline>
+<linenumber line="140"/><codeline>             D3DX_DEFAULT,</codeline>
+<linenumber line="141"/><codeline>             0,</codeline>
+<linenumber line="142"/><codeline>             0,</codeline>
+<linenumber line="143"/><codeline>             textureFormat,</codeline>
+<linenumber line="144"/><codeline>             D3DPOOL_MANAGED,</codeline>
+<linenumber line="145"/><codeline>             D3DX_FILTER_NONE,</codeline>
+<linenumber line="146"/><codeline>             D3DX_FILTER_NONE,</codeline>
+<linenumber line="147"/><codeline>             color,</codeline>
+<linenumber line="148"/><codeline>             &amp;img_info,</codeline>
+<linenumber line="149"/><codeline>             NULL,</codeline>
+<linenumber line="150"/><codeline>             &amp;mpSpriteTexture);</codeline>
+<linenumber line="151"/><codeline>     </codeline>
+<linenumber line="152"/><codeline>     <highlight class="keywordflow">if</highlight>(FAILED(hr))</codeline>
+<linenumber line="153"/><codeline>     {</codeline>
+<linenumber line="154"/><codeline>             std::string tmpErr(<highlight class="stringliteral">&quot;Sprite Load Error:&quot;</highlight>);</codeline>
+<linenumber line="155"/><codeline>             tmpErr += DXGetErrorString8(hr);</codeline>
+<linenumber line="156"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(tmpErr,__FILE__,__LINE__);</codeline>
+<linenumber line="157"/><codeline>     }</codeline>
+<linenumber line="158"/><codeline></codeline>
+<linenumber line="159"/><codeline>     <ref idref="namespacesf_1a0">DWORD</ref> twidth = img_info.Width;</codeline>
+<linenumber line="160"/><codeline>     <ref idref="namespacesf_1a0">DWORD</ref> theight = img_info.Height;</codeline>
+<linenumber line="161"/><codeline></codeline>
+<linenumber line="162"/><codeline></codeline>
+<linenumber line="163"/><codeline>     mWidth = twidth;</codeline>
+<linenumber line="164"/><codeline>     mHeight = theight;</codeline>
+<linenumber line="165"/><codeline>     </codeline>
+<linenumber line="166"/><codeline>     <highlight class="keywordflow">if</highlight>(pInfo-&gt;cellWidth){</codeline>
+<linenumber line="167"/><codeline>             twidth = mCellWidth = pInfo-&gt;cellWidth;</codeline>
+<linenumber line="168"/><codeline>     }</codeline>
+<linenumber line="169"/><codeline></codeline>
+<linenumber line="170"/><codeline>     <highlight class="keywordflow">if</highlight>(pInfo-&gt;cellHeight){</codeline>
+<linenumber line="171"/><codeline>             theight = mCellHeight = pInfo-&gt;cellHeight;</codeline>
+<linenumber line="172"/><codeline>     }</codeline>
+<linenumber line="173"/><codeline>     </codeline>
+<linenumber line="174"/><codeline></codeline>
+<linenumber line="175"/><codeline>     <highlight class="comment">//\?\a!?\\81C\\83Ê\?\o?I?eAA</highlight></codeline>
+<linenumber line="176"/><codeline>     </codeline>
+<linenumber line="177"/><codeline>     <highlight class="keywordtype">float</highlight> width  = (float)twidth / screen::HEIGHT;</codeline>
+<linenumber line="178"/><codeline>     <highlight class="keywordtype">float</highlight> height = (float)theight / screen::HEIGHT;</codeline>
+<linenumber line="179"/><codeline></codeline>
+<linenumber line="180"/><codeline>     <highlight class="keywordtype">float</highlight> center_x = pInfo-&gt;centerX / (float)screen::HEIGHT;</codeline>
+<linenumber line="181"/><codeline>     <highlight class="keywordtype">float</highlight> center_y = pInfo-&gt;centerY / (float)screen::HEIGHT;</codeline>
+<linenumber line="182"/><codeline></codeline>
+<linenumber line="183"/><codeline>     mCenterX = pInfo-&gt;centerX;</codeline>
+<linenumber line="184"/><codeline>     mCenterY = pInfo-&gt;centerY;</codeline>
+<linenumber line="185"/><codeline></codeline>
+<linenumber line="186"/><codeline>     <highlight class="keywordtype">float</highlight> start_x = center_x - width;</codeline>
+<linenumber line="187"/><codeline>     <highlight class="keywordtype">float</highlight> start_y = center_y - height;</codeline>
+<linenumber line="188"/><codeline></codeline>
+<linenumber line="189"/><codeline>     <highlight class="keywordtype">float</highlight> end_x = center_x + width;</codeline>
+<linenumber line="190"/><codeline>     <highlight class="keywordtype">float</highlight> end_y = center_y + height;</codeline>
+<linenumber line="191"/><codeline></codeline>
+<linenumber line="192"/><codeline>     D3DSURFACE_DESC d3dsd;</codeline>
+<linenumber line="193"/><codeline></codeline>
+<linenumber line="194"/><codeline>     mpSpriteTexture-&gt;GetLevelDesc(0,&amp;d3dsd);</codeline>
+<linenumber line="195"/><codeline>     </codeline>
+<linenumber line="196"/><codeline>     <highlight class="keywordtype">float</highlight> cell_width = (float)twidth / (float)d3dsd.Width;</codeline>
+<linenumber line="197"/><codeline>     <highlight class="keywordtype">float</highlight> cell_height = (float)theight / (float)d3dsd.Height;</codeline>
+<linenumber line="198"/><codeline></codeline>
+<linenumber line="199"/><codeline>     <highlight class="keywordtype">int</highlight> count_x = 1;</codeline>
+<linenumber line="200"/><codeline>     <highlight class="keywordtype">int</highlight> count_y = 1;</codeline>
+<linenumber line="201"/><codeline></codeline>
+<linenumber line="202"/><codeline>     <highlight class="keywordflow">if</highlight>(mCellWidth &amp;&amp; mCellHeight)</codeline>
+<linenumber line="203"/><codeline>     {</codeline>
+<linenumber line="204"/><codeline>             count_x = mWidth / mCellWidth;</codeline>
+<linenumber line="205"/><codeline>             count_y = mHeight / mCellHeight;</codeline>
+<linenumber line="206"/><codeline>             mCellCount = count_x * count_y;</codeline>
+<linenumber line="207"/><codeline>     }</codeline>
+<linenumber line="208"/><codeline>     <highlight class="keywordflow">else</highlight></codeline>
+<linenumber line="209"/><codeline>     {</codeline>
+<linenumber line="210"/><codeline>             mCellCount = 1;</codeline>
+<linenumber line="211"/><codeline>     }</codeline>
+<linenumber line="212"/><codeline></codeline>
+<linenumber line="213"/><codeline>     <highlight class="keywordtype">int</highlight> vert_size = <highlight class="keyword">sizeof</highlight>(Vertex2) * 4 * mCellCount;</codeline>
+<linenumber line="214"/><codeline></codeline>
+<linenumber line="215"/><codeline>     hr = mpD3DDevice-&gt;CreateVertexBuffer( vert_size,</codeline>
+<linenumber line="216"/><codeline>                     0, <ref idref="namespacesf_1_1system_1_1console_1a10">Vertex2FVF</ref>,D3DPOOL_MANAGED , &amp;mpSprite3DVtBuf );                </codeline>
+<linenumber line="217"/><codeline></codeline>
+<linenumber line="218"/><codeline>     <highlight class="keywordflow">if</highlight>(FAILED(hr)){</codeline>
+<linenumber line="219"/><codeline>             std::string tmpErr(<highlight class="stringliteral">&quot;Sprite Load Error:&quot;</highlight>);</codeline>
+<linenumber line="220"/><codeline>             tmpErr += DXGetErrorString8(hr);</codeline>
+<linenumber line="221"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(tmpErr,__FILE__,__LINE__);</codeline>
+<linenumber line="222"/><codeline>     }</codeline>
+<linenumber line="223"/><codeline></codeline>
+<linenumber line="224"/><codeline>     LPBYTE pvertices;</codeline>
+<linenumber line="225"/><codeline></codeline>
+<linenumber line="226"/><codeline>     mpSprite3DVtBuf-&gt;Lock( 0, vert_size, (BYTE**)&amp;pvertices, 0 );</codeline>
+<linenumber line="227"/><codeline>     </codeline>
+<linenumber line="228"/><codeline>     <highlight class="keywordtype">int</highlight> i,j;</codeline>
+<linenumber line="229"/><codeline>     <highlight class="keywordflow">for</highlight>(j = 0;j &lt; count_y;j++)</codeline>
+<linenumber line="230"/><codeline>     {</codeline>
+<linenumber line="231"/><codeline>             <highlight class="keywordflow">for</highlight>(i = 0;i &lt; count_x;i++)</codeline>
+<linenumber line="232"/><codeline>             {</codeline>
+<linenumber line="233"/><codeline>                     Vertex2 vert_image[] =</codeline>
+<linenumber line="234"/><codeline>                     {</codeline>
+<linenumber line="235"/><codeline>                             { start_x,start_y, 0.0f, 0xffffffff,0x0000000,cell_width*i,    cell_height*(j+1)},</codeline>
+<linenumber line="236"/><codeline>                             { start_x,end_y,   0.0f, 0xffffffff,0x0000000,cell_width*i,    cell_height*(j)},</codeline>
+<linenumber line="237"/><codeline>                             { end_x,  start_y, 0.0f, 0xffffffff,0x0000000,cell_width*(i+1),cell_height*(j+1)},</codeline>
+<linenumber line="238"/><codeline>                             { end_x,  end_y,   0.0f, 0xffffffff,0x0000000,cell_width*(i+1),cell_height*(j)}</codeline>
+<linenumber line="239"/><codeline>                     };</codeline>
+<linenumber line="240"/><codeline>                     memcpy( pvertices, vert_image, <highlight class="keyword">sizeof</highlight>(vert_image) );</codeline>
+<linenumber line="241"/><codeline>                     pvertices += <highlight class="keyword">sizeof</highlight>(Vertex2) * 4;</codeline>
+<linenumber line="242"/><codeline>             }</codeline>
+<linenumber line="243"/><codeline>     }</codeline>
+<linenumber line="244"/><codeline>     </codeline>
+<linenumber line="245"/><codeline>     mpSprite3DVtBuf-&gt;Unlock();</codeline>
+<linenumber line="246"/><codeline></codeline>
+<linenumber line="247"/><codeline>     use(<highlight class="keyword">true</highlight>);</codeline>
+<linenumber line="248"/><codeline></codeline>
+<linenumber line="249"/><codeline>}<highlight class="comment">//load()</highlight></codeline>
+<linenumber line="250"/><codeline></codeline>
+<linenumber line="251"/><codeline><highlight class="comment">// \1\\81~\e\?\E?IEA2e(3D) -------------------------------------------------------</highlight></codeline>
+<linenumber line="252"/><codeline><highlight class="keywordtype">void</highlight> Sprite3D::draw(<highlight class="keyword">const</highlight> Obj3DL * <highlight class="keyword">const</highlight> pObj)</codeline>
+<linenumber line="253"/><codeline>{</codeline>
+<linenumber line="254"/><codeline></codeline>
+<linenumber line="255"/><codeline>     HRESULT hr;</codeline>
+<linenumber line="256"/><codeline>     <highlight class="keywordflow">if</highlight>(!pObj-&gt;visibility())</codeline>
+<linenumber line="257"/><codeline>             <highlight class="keywordflow">return</highlight>;</codeline>
+<linenumber line="258"/><codeline></codeline>
+<linenumber line="259"/><codeline>     D3DMATRIX matrix_scaling=</codeline>
+<linenumber line="260"/><codeline>     {</codeline>
+<linenumber line="261"/><codeline>             pObj-&gt;scalingX(),0,0,0,</codeline>
+<linenumber line="262"/><codeline>             0,pObj-&gt;scalingY(),0,0,</codeline>
+<linenumber line="263"/><codeline>             0,0,pObj-&gt;scalingZ(),0,</codeline>
+<linenumber line="264"/><codeline>             0,0,0,1</codeline>
+<linenumber line="265"/><codeline>     };</codeline>
+<linenumber line="266"/><codeline>     </codeline>
+<linenumber line="267"/><codeline>     D3DMATRIX matrix_trans=</codeline>
+<linenumber line="268"/><codeline>     {</codeline>
+<linenumber line="269"/><codeline>             1,0,0,0,</codeline>
+<linenumber line="270"/><codeline>             0,1,0,0,</codeline>
+<linenumber line="271"/><codeline>             0,0,1,0,</codeline>
+<linenumber line="272"/><codeline>             pObj-&gt;spaceX(),pObj-&gt;spaceY(),pObj-&gt;spaceZ(),1</codeline>
+<linenumber line="273"/><codeline>     };</codeline>
+<linenumber line="274"/><codeline>     </codeline>
+<linenumber line="275"/><codeline></codeline>
+<linenumber line="276"/><codeline>     D3DMATRIX matrix_rotx =</codeline>
+<linenumber line="277"/><codeline>     {</codeline>
+<linenumber line="278"/><codeline>             1,0,0,0,</codeline>
+<linenumber line="279"/><codeline>             0,pObj-&gt;rotXCos(),pObj-&gt;rotXSin(),0,</codeline>
+<linenumber line="280"/><codeline>             0,-pObj-&gt;rotXSin(),pObj-&gt;rotXCos(),0,</codeline>
+<linenumber line="281"/><codeline>             0,0,0,1</codeline>
+<linenumber line="282"/><codeline>     };</codeline>
+<linenumber line="283"/><codeline></codeline>
+<linenumber line="284"/><codeline>     D3DMATRIX matrix_roty=</codeline>
+<linenumber line="285"/><codeline>     {</codeline>
+<linenumber line="286"/><codeline>             pObj-&gt;rotYCos(),0,-pObj-&gt;rotYSin(),0,</codeline>
+<linenumber line="287"/><codeline>             0,1,0,0,</codeline>
+<linenumber line="288"/><codeline>             pObj-&gt;rotYSin(),0,pObj-&gt;rotYCos(),0,</codeline>
+<linenumber line="289"/><codeline>             0,0,0,1</codeline>
+<linenumber line="290"/><codeline>     };</codeline>
+<linenumber line="291"/><codeline></codeline>
+<linenumber line="292"/><codeline></codeline>
+<linenumber line="293"/><codeline>     D3DMATRIX matrix_rotz =</codeline>
+<linenumber line="294"/><codeline>     {</codeline>
+<linenumber line="295"/><codeline>             pObj-&gt;rotZCos(),pObj-&gt;rotZSin(),0,0,</codeline>
+<linenumber line="296"/><codeline>             -pObj-&gt;rotZSin(),pObj-&gt;rotZCos(),0,0,</codeline>
+<linenumber line="297"/><codeline>             0,0,1,0,</codeline>
+<linenumber line="298"/><codeline>             0,0,0,1</codeline>
+<linenumber line="299"/><codeline>     };</codeline>
+<linenumber line="300"/><codeline></codeline>
+<linenumber line="301"/><codeline></codeline>
+<linenumber line="302"/><codeline></codeline>
+<linenumber line="303"/><codeline>     hr = mpD3DDevice-&gt;SetTransform(D3DTS_WORLD ,&amp;matrix_trans);</codeline>
+<linenumber line="304"/><codeline>     </codeline>
+<linenumber line="305"/><codeline>     hr = mpD3DDevice-&gt;MultiplyTransform(D3DTS_WORLD ,&amp;matrix_scaling);</codeline>
+<linenumber line="306"/><codeline>     hr = mpD3DDevice-&gt;MultiplyTransform(D3DTS_WORLD ,&amp;matrix_rotx);</codeline>
+<linenumber line="307"/><codeline>     hr = mpD3DDevice-&gt;MultiplyTransform(D3DTS_WORLD ,&amp;matrix_roty);</codeline>
+<linenumber line="308"/><codeline>     hr = mpD3DDevice-&gt;MultiplyTransform(D3DTS_WORLD ,&amp;matrix_rotz);</codeline>
+<linenumber line="309"/><codeline></codeline>
+<linenumber line="310"/><codeline></codeline>
+<linenumber line="311"/><codeline>     Vertex2 *ptlv;</codeline>
+<linenumber line="312"/><codeline>     mpSprite3DVtBuf-&gt;Lock(0,0,(BYTE **)&amp;ptlv,0);</codeline>
+<linenumber line="313"/><codeline></codeline>
+<linenumber line="314"/><codeline>     ptlv[0].specular = </codeline>
+<linenumber line="315"/><codeline>             ptlv[1].specular = </codeline>
+<linenumber line="316"/><codeline>             ptlv[2].specular = </codeline>
+<linenumber line="317"/><codeline>             ptlv[3].specular = pObj-&gt;specular();</codeline>
+<linenumber line="318"/><codeline>     </codeline>
+<linenumber line="319"/><codeline>     ptlv[0].diffuse =</codeline>
+<linenumber line="320"/><codeline>             ptlv[1].diffuse = </codeline>
+<linenumber line="321"/><codeline>             ptlv[2].diffuse =</codeline>
+<linenumber line="322"/><codeline>             ptlv[3].diffuse = pObj-&gt;color();</codeline>
+<linenumber line="323"/><codeline>     </codeline>
+<linenumber line="324"/><codeline>     mpSprite3DVtBuf-&gt;Unlock();</codeline>
+<linenumber line="325"/><codeline></codeline>
+<linenumber line="326"/><codeline>     hr = mpD3DDevice-&gt;SetTexture(0,mpSpriteTexture);</codeline>
+<linenumber line="327"/><codeline>     setRenderState(pObj-&gt;drawMode());</codeline>
+<linenumber line="328"/><codeline>     mpD3DDevice-&gt;SetRenderState(D3DRS_LIGHTING,            FALSE);</codeline>
+<linenumber line="329"/><codeline>     mpD3DDevice-&gt;SetRenderState(D3DRS_CULLMODE ,           D3DCULL_NONE  );</codeline>
+<linenumber line="330"/><codeline></codeline>
+<linenumber line="331"/><codeline>     hr = mpD3DDevice-&gt;SetStreamSource(0,mpSprite3DVtBuf,<highlight class="keyword">sizeof</highlight>(Vertex2));</codeline>
+<linenumber line="332"/><codeline>     hr = mpD3DDevice-&gt;SetVertexShader(<ref idref="namespacesf_1_1system_1_1console_1a10">Vertex2FVF</ref>);</codeline>
+<linenumber line="333"/><codeline></codeline>
+<linenumber line="334"/><codeline>     hr = mpD3DDevice-&gt;DrawPrimitive(D3DPT_TRIANGLESTRIP,pObj-&gt;index(),2);</codeline>
+<linenumber line="335"/><codeline></codeline>
+<linenumber line="336"/><codeline>     mpD3DDevice-&gt;SetTexture(0,NULL);</codeline>
+<linenumber line="337"/><codeline></codeline>
+<linenumber line="338"/><codeline>}<highlight class="comment">// draw()</highlight></codeline>
+<linenumber line="339"/><codeline></codeline>
+<linenumber line="340"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Sprite3D.cpp"/>
+  </compounddef>
+  <compounddef id="Sprite3D_8h" kind="file">
+    <compoundname>Sprite3D.h</compoundname>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includes id="AbstractSprite_8h" local="yes">AbstractSprite.h</includes>
+    <includedby id="ConsoleImpl_8cpp" local="yes">ConsoleImpl.cpp</includedby>
+    <includedby id="Sprite3D_8cpp" local="yes">Sprite3D.cpp</includedby>
+    <incdepgraph>
+      <node id="719">
+        <label>AbstractSprite.h</label>
+        <link id="AbstractSprite_8h-source"/>
+        <childnode id="718" relation="public-inheritance">
+        </childnode>
+        <childnode id="720" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="718">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="720">
+        <label>Console.h</label>
+        <link id="Console_8h"/>
+        <childnode id="721" relation="public-inheritance">
+        </childnode>
+        <childnode id="718" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="717">
+        <label>Sprite3D.h</label>
+        <link id="Sprite3D.h"/>
+        <childnode id="718" relation="public-inheritance">
+        </childnode>
+        <childnode id="719" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="721">
+        <label>memory</label>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="723">
+        <label>ConsoleImpl.cpp</label>
+        <link id="ConsoleImpl_8cpp-source"/>
+      </node>
+      <node id="722">
+        <label>Sprite3D.h</label>
+        <link id="Sprite3D.h"/>
+        <childnode id="723" relation="public-inheritance">
+        </childnode>
+        <childnode id="724" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="724">
+        <label>Sprite3D.cpp</label>
+        <link id="Sprite3D_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console">sf::system::console</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console_1_1sprite">sf::system::console::sprite</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="Sprite3D_8h_1a0" virt="normal" prot="public">
+        <name>AFX_SPRITE3D_H__AA321D29_F334_4A4F_A2DC_76B6891F09A7__INCLUDED_</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/Sprite3D.h" line="31" bodystart="31" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// Sprite3D.h: Sprite3D \\81P\e\1?I\?\o\?!?\O\\81\98\?\1</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  IuIo!\81\98</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// $Log: Sprite3D.h,v $</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// Revision 1.3  2001/11/06 21:27:42  fujiwara</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// AcEy11?\81EA\81\8b\D\A\\81P\\81\91\A\\81~</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// Revision 1.2  2001/10/28 21:35:56  fujiwara</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:36  fujiwara</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">// Revision 1.4  2001/07/09 20:30:09  fujiwara</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">// Revision 1.3  2001/05/13 20:04:24  fujiwara</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P?\81ÊE\81PA\81C?\81E???I?C?e?e?u?\81P!\81\92</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">// ?\81áAA?I\\83Ê\|\o\E\A\1\E</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:48:55  fujiwara</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor">#if !defined(AFX_SPRITE3D_H__AA321D29_F334_4A4F_A2DC_76B6891F09A7__INCLUDED_)</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_SPRITE3D_H__AA321D29_F334_4A4F_A2DC_76B6891F09A7__INCLUDED_</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="34"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="35"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="36"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight> </codeline>
+<linenumber line="37"/><codeline><highlight class="preprocessor">#include &quot;AbstractSprite.h&quot;</highlight></codeline>
+<linenumber line="38"/><codeline><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="39"/><codeline><highlight class="keyword">namespace </highlight>sf {</codeline>
+<linenumber line="40"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="41"/><codeline>              <highlight class="keyword">namespace </highlight>console {</codeline>
+<linenumber line="42"/><codeline>                      <highlight class="keyword">namespace </highlight>sprite {</codeline>
+<linenumber line="43"/><codeline></codeline>
+<linenumber line="44"/><codeline></codeline>
+<linenumber line="45"/><codeline><highlight class="keyword">class </highlight>Sprite3D : <highlight class="keyword">public</highlight> AbstractSprite  </codeline>
+<linenumber line="46"/><codeline>{</codeline>
+<linenumber line="47"/><codeline><highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="48"/><codeline>      <highlight class="comment">// LIFECYCLE //</highlight></codeline>
+<linenumber line="49"/><codeline>      Sprite3D(LPDIRECT3DDEVICE8 pD3DDevice);</codeline>
+<linenumber line="50"/><codeline>      <highlight class="keyword">virtual</highlight> ~Sprite3D();</codeline>
+<linenumber line="51"/><codeline>      <highlight class="comment">// OPERATIONS //</highlight></codeline>
+<linenumber line="52"/><codeline>      <highlight class="keywordtype">void</highlight> initialize(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="53"/><codeline>      <highlight class="keywordtype">void</highlight> initialize(LPDIRECT3DDEVICE8    pD3DDevice);</codeline>
+<linenumber line="54"/><codeline>      <highlight class="keywordtype">void</highlight> uninitialize(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="55"/><codeline>      <highlight class="keywordtype">void</highlight> load(<highlight class="keyword">const</highlight> sprite::Info *pInfo,<highlight class="keyword">const</highlight> D3DFORMAT textureFormat,<highlight class="keyword">const</highlight> COLOR color);</codeline>
+<linenumber line="56"/><codeline>      </codeline>
+<linenumber line="57"/><codeline>      <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a1">draw</ref>(<highlight class="keyword">const</highlight> ObjRectangle * <highlight class="keyword">const</highlight> pObj){<highlight class="keywordflow">return</highlight>;}</codeline>
+<linenumber line="58"/><codeline>      <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a1">draw</ref>(<highlight class="keyword">const</highlight> ObjQuadrangle * <highlight class="keyword">const</highlight> pObj){<highlight class="keywordflow">return</highlight>;}</codeline>
+<linenumber line="59"/><codeline>      <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a1">draw</ref>(<highlight class="keyword">const</highlight> Obj3DL * <highlight class="keyword">const</highlight> pObj);</codeline>
+<linenumber line="60"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> width(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const</highlight></codeline>
+<linenumber line="61"/><codeline><highlight class="keyword">   </highlight>{</codeline>
+<linenumber line="62"/><codeline>              <highlight class="keywordflow">if</highlight>(mCellWidth != 0.0f)</codeline>
+<linenumber line="63"/><codeline>                      <highlight class="keywordflow">return</highlight> mCellWidth;</codeline>
+<linenumber line="64"/><codeline>              <highlight class="keywordflow">return</highlight> mWidth;</codeline>
+<linenumber line="65"/><codeline>      };</codeline>
+<linenumber line="66"/><codeline></codeline>
+<linenumber line="67"/><codeline>      <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> height(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{</codeline>
+<linenumber line="68"/><codeline>              <highlight class="keywordflow">if</highlight>(mCellHeight != 0.0f)</codeline>
+<linenumber line="69"/><codeline>                      <highlight class="keywordflow">return</highlight> mCellHeight;</codeline>
+<linenumber line="70"/><codeline>              <highlight class="keywordflow">return</highlight> mHeight;</codeline>
+<linenumber line="71"/><codeline>      };</codeline>
+<linenumber line="72"/><codeline></codeline>
+<linenumber line="73"/><codeline><highlight class="keyword">private</highlight>:</codeline>
+<linenumber line="74"/><codeline>      IDirect3DTexture8* mpSpriteTexture;</codeline>
+<linenumber line="75"/><codeline>      IDirect3DVertexBuffer8* mpSprite3DVtBuf;</codeline>
+<linenumber line="76"/><codeline></codeline>
+<linenumber line="77"/><codeline>      <highlight class="keywordtype">float</highlight> mCellWidth;</codeline>
+<linenumber line="78"/><codeline>      <highlight class="keywordtype">float</highlight> mCellHeight;</codeline>
+<linenumber line="79"/><codeline>      <highlight class="keywordtype">float</highlight> mCellCount;</codeline>
+<linenumber line="80"/><codeline>              </codeline>
+<linenumber line="81"/><codeline>};</codeline>
+<linenumber line="82"/><codeline>                      }</codeline>
+<linenumber line="83"/><codeline>              }</codeline>
+<linenumber line="84"/><codeline>      }</codeline>
+<linenumber line="85"/><codeline>}</codeline>
+<linenumber line="86"/><codeline>}</codeline>
+<linenumber line="87"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_SPRITE3D_H__AA321D29_F334_4A4F_A2DC_76B6891F09A7__INCLUDED_)</highlight></codeline>
+<linenumber line="88"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/Sprite3D.h"/>
+  </compounddef>
+  <compounddef id="SpriteMesh_8cpp" kind="file">
+    <compoundname>SpriteMesh.cpp</compoundname>
+    <includes id="sfdebug_8h" local="yes">sfdebug.h</includes>
+    <includes local="no">stdio.h</includes>
+    <includes local="no">queue</includes>
+    <includes local="yes">windows.h</includes>
+    <includes local="yes">windowsx.h</includes>
+    <includes local="yes">d3d8.h</includes>
+    <includes local="yes">d3dx8.h</includes>
+    <includes id="dxerr8sf_8h" local="yes">dxerr8sf.h</includes>
+    <includes local="yes">exception.h</includes>
+    <includes local="yes">sound.h</includes>
+    <includes id="System_8h" local="yes">System.h</includes>
+    <includes local="yes">console.h</includes>
+    <includes id="Obj_8h" local="yes">Obj.h</includes>
+    <includes id="Obj3D_8h" local="yes">Obj3D.h</includes>
+    <includes id="Obj3DL_8h" local="yes">Obj3DL.h</includes>
+    <includes id="AbstractSprite_8h" local="yes">AbstractSprite.h</includes>
+    <includes id="SpriteMesh_8h" local="yes">SpriteMesh.h</includes>
+    <incdepgraph>
+      <node id="734">
+        <label>dxerr8.h</label>
+      </node>
+      <node id="728">
+        <label>queue</label>
+      </node>
+      <node id="729">
+        <label>windows.h</label>
+      </node>
+      <node id="737">
+        <label>System.h</label>
+        <link id="System_8h"/>
+        <childnode id="738" relation="public-inheritance">
+        </childnode>
+        <childnode id="739" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="730">
+        <label>windowsx.h</label>
+      </node>
+      <node id="738">
+        <label>string</label>
+      </node>
+      <node id="733">
+        <label>dxerr8sf.h</label>
+        <link id="dxerr8sf_8h-source"/>
+        <childnode id="734" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="726">
+        <label>sfdebug.h</label>
+        <link id="sfdebug_8h"/>
+      </node>
+      <node id="744">
+        <label>AbstractSprite.h</label>
+        <link id="AbstractSprite_8h-source"/>
+        <childnode id="739" relation="public-inheritance">
+        </childnode>
+        <childnode id="745" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="747">
+        <label>SpriteMesh.h</label>
+        <link id="SpriteMesh_8h-source"/>
+        <childnode id="739" relation="public-inheritance">
+        </childnode>
+        <childnode id="744" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="739">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="725">
+        <label>SpriteMesh.cpp</label>
+        <link id="SpriteMesh.cpp"/>
+        <childnode id="726" relation="public-inheritance">
+        </childnode>
+        <childnode id="727" relation="public-inheritance">
+        </childnode>
+        <childnode id="728" relation="public-inheritance">
+        </childnode>
+        <childnode id="729" relation="public-inheritance">
+        </childnode>
+        <childnode id="730" relation="public-inheritance">
+        </childnode>
+        <childnode id="731" relation="public-inheritance">
+        </childnode>
+        <childnode id="732" relation="public-inheritance">
+        </childnode>
+        <childnode id="733" relation="public-inheritance">
+        </childnode>
+        <childnode id="735" relation="public-inheritance">
+        </childnode>
+        <childnode id="736" relation="public-inheritance">
+        </childnode>
+        <childnode id="737" relation="public-inheritance">
+        </childnode>
+        <childnode id="740" relation="public-inheritance">
+        </childnode>
+        <childnode id="741" relation="public-inheritance">
+        </childnode>
+        <childnode id="742" relation="public-inheritance">
+        </childnode>
+        <childnode id="743" relation="public-inheritance">
+        </childnode>
+        <childnode id="744" relation="public-inheritance">
+        </childnode>
+        <childnode id="747" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="736">
+        <label>sound.h</label>
+      </node>
+      <node id="745">
+        <label>Console.h</label>
+        <link id="Console_8h"/>
+        <childnode id="746" relation="public-inheritance">
+        </childnode>
+        <childnode id="739" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="740">
+        <label>console.h</label>
+      </node>
+      <node id="742">
+        <label>Obj3D.h</label>
+        <link id="Obj3D_8h-source"/>
+        <childnode id="739" relation="public-inheritance">
+        </childnode>
+        <childnode id="741" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="743">
+        <label>Obj3DL.h</label>
+        <link id="Obj3DL_8h-source"/>
+        <childnode id="739" relation="public-inheritance">
+        </childnode>
+        <childnode id="742" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="741">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="739" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="731">
+        <label>d3d8.h</label>
+      </node>
+      <node id="735">
+        <label>exception.h</label>
+      </node>
+      <node id="732">
+        <label>d3dx8.h</label>
+      </node>
+      <node id="727">
+        <label>stdio.h</label>
+      </node>
+      <node id="746">
+        <label>memory</label>
+      </node>
+    </incdepgraph>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// SpriteMesh.cpp: SpriteMesh \\81P\e\1?I\?\o\\81~\e\a\o\A!?\\81E\c\o</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  IuIo!\81\98</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// $Log: SpriteMesh.cpp,v $</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:36  fujiwara</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// Revision 1.4  2001/07/09 20:30:10  fujiwara</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// Revision 1.3  2001/07/01 21:30:34  fujiwara</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// \a\a\e\e!?\\81P\A\\81\98\A\\81P\81C\81áA??\81E</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:48:55  fujiwara</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment">#pragma warning( disable : 4786 )  //STL?I\81EU1d3\81\8b?\81E</highlight></codeline>
+<linenumber line="23"/><codeline></codeline>
+<linenumber line="24"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="sfdebug_8h">sfdebug.h</ref>&quot;</highlight></codeline>
+<linenumber line="26"/><codeline></codeline>
+<linenumber line="27"/><codeline><highlight class="comment">// SYSTEM INCLUDES</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="29"/><codeline></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor">#include &lt;stdio.h&gt;</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor">#include &lt;queue&gt;</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor">#include &quot;windows.h&quot;</highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="preprocessor">#include &quot;windowsx.h&quot;</highlight></codeline>
+<linenumber line="34"/><codeline></codeline>
+<linenumber line="35"/><codeline><highlight class="preprocessor">#include &quot;d3d8.h&quot;</highlight></codeline>
+<linenumber line="36"/><codeline><highlight class="preprocessor">#include &quot;d3dx8.h&quot;</highlight></codeline>
+<linenumber line="37"/><codeline><highlight class="preprocessor">#include &quot;dxerr8sf.h&quot;</highlight></codeline>
+<linenumber line="38"/><codeline></codeline>
+<linenumber line="39"/><codeline></codeline>
+<linenumber line="40"/><codeline><highlight class="comment">// PROJECT INCLUDES</highlight></codeline>
+<linenumber line="41"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="42"/><codeline></codeline>
+<linenumber line="43"/><codeline><highlight class="preprocessor">#include &quot;exception.h&quot;</highlight></codeline>
+<linenumber line="44"/><codeline><highlight class="preprocessor">#include &quot;sound.h&quot;</highlight></codeline>
+<linenumber line="45"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="System_8h">System.h</ref>&quot;</highlight></codeline>
+<linenumber line="46"/><codeline><highlight class="preprocessor">#include &quot;console.h&quot;</highlight></codeline>
+<linenumber line="47"/><codeline><highlight class="preprocessor">#include &quot;Obj.h&quot;</highlight></codeline>
+<linenumber line="48"/><codeline><highlight class="preprocessor">#include &quot;Obj3D.h&quot;</highlight></codeline>
+<linenumber line="49"/><codeline><highlight class="preprocessor">#include &quot;Obj3DL.h&quot;</highlight></codeline>
+<linenumber line="50"/><codeline><highlight class="preprocessor">#include &quot;AbstractSprite.h&quot;</highlight></codeline>
+<linenumber line="51"/><codeline></codeline>
+<linenumber line="52"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="53"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define new DEBUG_NEW</highlight></codeline>
+<linenumber line="54"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="55"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="56"/><codeline><highlight class="preprocessor">#include &quot;SpriteMesh.h&quot;</highlight></codeline>
+<linenumber line="57"/><codeline></codeline>
+<linenumber line="58"/><codeline></codeline>
+<linenumber line="59"/><codeline><highlight class="keyword">using</highlight> <highlight class="keyword">namespace </highlight>sf::system::console;</codeline>
+<linenumber line="60"/><codeline>using namespace sf::system::console::sprite;</codeline>
+<linenumber line="61"/><codeline></codeline>
+<linenumber line="62"/><codeline></codeline>
+<linenumber line="64"/><codeline><highlight class="comment">// 1?AU/?AIC</highlight></codeline>
+<linenumber line="66"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="67"/><codeline>SpriteMesh::SpriteMesh(LPDIRECT3DDEVICE8 pD3DDevice)</codeline>
+<linenumber line="68"/><codeline>{</codeline>
+<linenumber line="69"/><codeline>      mNumMaterials = 0;</codeline>
+<linenumber line="70"/><codeline>      mpMesh = NULL;</codeline>
+<linenumber line="71"/><codeline>      mpMeshMaterials = NULL;</codeline>
+<linenumber line="72"/><codeline>      mpMeshTextures = NULL;</codeline>
+<linenumber line="73"/><codeline></codeline>
+<linenumber line="74"/><codeline>      initialize(pD3DDevice);</codeline>
+<linenumber line="75"/><codeline></codeline>
+<linenumber line="76"/><codeline>}</codeline>
+<linenumber line="77"/><codeline></codeline>
+<linenumber line="78"/><codeline>SpriteMesh::~SpriteMesh()</codeline>
+<linenumber line="79"/><codeline>{</codeline>
+<linenumber line="80"/><codeline>      uninitialize();</codeline>
+<linenumber line="81"/><codeline>}</codeline>
+<linenumber line="82"/><codeline></codeline>
+<linenumber line="83"/><codeline><highlight class="comment">// ?e\81Lu2? !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="84"/><codeline><highlight class="keywordtype">void</highlight> SpriteMesh::initialize(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="85"/><codeline>{</codeline>
+<linenumber line="86"/><codeline>      uninitialize();</codeline>
+<linenumber line="87"/><codeline>      mbUse = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="88"/><codeline></codeline>
+<linenumber line="89"/><codeline>}<highlight class="comment">// initialize()</highlight></codeline>
+<linenumber line="90"/><codeline></codeline>
+<linenumber line="91"/><codeline><highlight class="comment">// ?e\81Lu2? !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="92"/><codeline><highlight class="keywordtype">void</highlight> SpriteMesh::initialize(LPDIRECT3DDEVICE8      pD3DDevice)</codeline>
+<linenumber line="93"/><codeline>{</codeline>
+<linenumber line="94"/><codeline>      <ref idref="classsf_1_1system_1_1sound_1_1SoundImpl_1a13">initialize</ref>();</codeline>
+<linenumber line="95"/><codeline></codeline>
+<linenumber line="96"/><codeline>      mpD3DDevice = pD3DDevice;</codeline>
+<linenumber line="97"/><codeline>}<highlight class="comment">// initialize()</highlight></codeline>
+<linenumber line="98"/><codeline></codeline>
+<linenumber line="99"/><codeline><highlight class="comment">// \1\\81~\e\?\EIN\?\o\?!?\O\\81\98!?\1?I\e\e!?\1 !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="100"/><codeline><highlight class="keywordtype">void</highlight> SpriteMesh::uninitialize(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="101"/><codeline>{</codeline>
+<linenumber line="102"/><codeline></codeline>
+<linenumber line="103"/><codeline></codeline>
+<linenumber line="104"/><codeline>    <highlight class="keywordflow">if</highlight>( mpMeshMaterials != NULL ) </codeline>
+<linenumber line="105"/><codeline>        <highlight class="keyword">delete</highlight>[] mpMeshMaterials;</codeline>
+<linenumber line="106"/><codeline></codeline>
+<linenumber line="107"/><codeline>    <highlight class="keywordflow">if</highlight>( mpMeshTextures )</codeline>
+<linenumber line="108"/><codeline>    {</codeline>
+<linenumber line="109"/><codeline>        <highlight class="keywordflow">for</highlight>( <ref idref="namespacesf_1a0">DWORD</ref> i = 0; i &lt; mNumMaterials; i++ )</codeline>
+<linenumber line="110"/><codeline>        {</codeline>
+<linenumber line="111"/><codeline>            <highlight class="keywordflow">if</highlight>( mpMeshTextures[i] )</codeline>
+<linenumber line="112"/><codeline>                mpMeshTextures[i]-&gt;Release();</codeline>
+<linenumber line="113"/><codeline>        }</codeline>
+<linenumber line="114"/><codeline>        <highlight class="keyword">delete</highlight>[] mpMeshTextures;</codeline>
+<linenumber line="115"/><codeline>    }</codeline>
+<linenumber line="116"/><codeline></codeline>
+<linenumber line="117"/><codeline>     <highlight class="keywordflow">if</highlight>( mpMesh != NULL )</codeline>
+<linenumber line="118"/><codeline>        mpMesh-&gt;Release();</codeline>
+<linenumber line="119"/><codeline></codeline>
+<linenumber line="120"/><codeline>     mbUse = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="121"/><codeline>}<highlight class="comment">// uninitialize</highlight></codeline>
+<linenumber line="122"/><codeline></codeline>
+<linenumber line="123"/><codeline><highlight class="comment">// \a\A\\81E\a?I\i!?\E !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="124"/><codeline><highlight class="keywordtype">void</highlight> SpriteMesh::load(<highlight class="keyword">const</highlight> Info *pInfo,<highlight class="keyword">const</highlight> D3DFORMAT textureFormat,<highlight class="keyword">const</highlight> COLOR color)</codeline>
+<linenumber line="125"/><codeline>{</codeline>
+<linenumber line="126"/><codeline>     LPD3DXBUFFER pD3DXMtrlBuffer;</codeline>
+<linenumber line="127"/><codeline>     HRESULT hr;</codeline>
+<linenumber line="128"/><codeline></codeline>
+<linenumber line="129"/><codeline>    <highlight class="comment">// Load the mesh from the specified file</highlight></codeline>
+<linenumber line="130"/><codeline>    <highlight class="keywordflow">if</highlight>( FAILED( hr = D3DXLoadMeshFromX( (<highlight class="keywordtype">char</highlight> *)(pInfo-&gt;fileName), D3DXMESH_SYSTEMMEM, </codeline>
+<linenumber line="131"/><codeline>                                   mpD3DDevice, NULL, </codeline>
+<linenumber line="132"/><codeline>                                   &amp;pD3DXMtrlBuffer, &amp;mNumMaterials, </codeline>
+<linenumber line="133"/><codeline>                                   &amp;mpMesh ) ) )</codeline>
+<linenumber line="134"/><codeline>    {</codeline>
+<linenumber line="135"/><codeline>             std::string tmpErr(<highlight class="stringliteral">&quot;Sprite Load Error:&quot;</highlight>);</codeline>
+<linenumber line="136"/><codeline>             tmpErr += DXGetErrorString8(hr);</codeline>
+<linenumber line="137"/><codeline>             <highlight class="keywordflow">throw</highlight> FatalErrorException(tmpErr,__FILE__,__LINE__);</codeline>
+<linenumber line="138"/><codeline>   }</codeline>
+<linenumber line="139"/><codeline></codeline>
+<linenumber line="140"/><codeline>    <highlight class="comment">// We need to extract the material properties and texture names from the </highlight></codeline>
+<linenumber line="141"/><codeline>    <highlight class="comment">// pD3DXMtrlBuffer</highlight></codeline>
+<linenumber line="142"/><codeline></codeline>
+<linenumber line="143"/><codeline>    D3DXMATERIAL* d3dxMaterials = (D3DXMATERIAL*)pD3DXMtrlBuffer-&gt;GetBufferPointer();</codeline>
+<linenumber line="144"/><codeline>    mpMeshMaterials = <highlight class="keyword">new</highlight> D3DMATERIAL8[mNumMaterials];</codeline>
+<linenumber line="145"/><codeline>    mpMeshTextures  = <highlight class="keyword">new</highlight> LPDIRECT3DTEXTURE8[mNumMaterials];</codeline>
+<linenumber line="146"/><codeline></codeline>
+<linenumber line="147"/><codeline>    <highlight class="keywordflow">for</highlight>( <ref idref="namespacesf_1a0">DWORD</ref> i = 0; i &lt; mNumMaterials; i++ )</codeline>
+<linenumber line="148"/><codeline>    {</codeline>
+<linenumber line="149"/><codeline>        <highlight class="comment">// Copy the material</highlight></codeline>
+<linenumber line="150"/><codeline>        mpMeshMaterials[i] = d3dxMaterials[i].MatD3D;</codeline>
+<linenumber line="151"/><codeline></codeline>
+<linenumber line="152"/><codeline>        <highlight class="comment">// Set the ambient color for the material (D3DX does not do this)</highlight></codeline>
+<linenumber line="153"/><codeline>        mpMeshMaterials[i].Ambient = mpMeshMaterials[i].Diffuse;</codeline>
+<linenumber line="154"/><codeline>     </codeline>
+<linenumber line="155"/><codeline>        <highlight class="comment">// Create the texture</highlight></codeline>
+<linenumber line="156"/><codeline> <highlight class="comment">//       if( FAILED( hr = D3DXCreateTextureFromFile( mpD3DDevice, </highlight></codeline>
+<linenumber line="157"/><codeline>  <highlight class="comment">//                                             d3dxMaterials[i].pTextureFilename, </highlight></codeline>
+<linenumber line="158"/><codeline>   <highlight class="comment">//                                            &amp;mpMeshTextures[i] ) ) )</highlight></codeline>
+<linenumber line="159"/><codeline>             HRESULT hr = D3DXCreateTextureFromFileExA(</codeline>
+<linenumber line="160"/><codeline>                     mpD3DDevice,</codeline>
+<linenumber line="161"/><codeline>                     d3dxMaterials[i].pTextureFilename,</codeline>
+<linenumber line="162"/><codeline>                     D3DX_DEFAULT,</codeline>
+<linenumber line="163"/><codeline>                     D3DX_DEFAULT,</codeline>
+<linenumber line="164"/><codeline>                     0,</codeline>
+<linenumber line="165"/><codeline>                     0,</codeline>
+<linenumber line="166"/><codeline>                     textureFormat,</codeline>
+<linenumber line="167"/><codeline>                     D3DPOOL_MANAGED,</codeline>
+<linenumber line="168"/><codeline>                     D3DX_FILTER_NONE,</codeline>
+<linenumber line="169"/><codeline>                     D3DX_FILTER_NONE,</codeline>
+<linenumber line="170"/><codeline>                     color,</codeline>
+<linenumber line="171"/><codeline>                     NULL,</codeline>
+<linenumber line="172"/><codeline>                     NULL,</codeline>
+<linenumber line="173"/><codeline>                     &amp;mpMeshTextures[i]);</codeline>
+<linenumber line="174"/><codeline>             <highlight class="keywordflow">if</highlight>(FAILED(hr))</codeline>
+<linenumber line="175"/><codeline>             {</codeline>
+<linenumber line="176"/><codeline>    </codeline>
+<linenumber line="177"/><codeline>                     mpMeshTextures[i] = NULL;</codeline>
+<linenumber line="178"/><codeline>        }</codeline>
+<linenumber line="179"/><codeline>    }</codeline>
+<linenumber line="180"/><codeline></codeline>
+<linenumber line="181"/><codeline>    <highlight class="comment">// Done with the material buffer</highlight></codeline>
+<linenumber line="182"/><codeline>    pD3DXMtrlBuffer-&gt;Release();</codeline>
+<linenumber line="183"/><codeline>}<highlight class="comment">// loadMesh()</highlight></codeline>
+<linenumber line="184"/><codeline></codeline>
+<linenumber line="185"/><codeline></codeline>
+<linenumber line="186"/><codeline><highlight class="comment">// \1\\81~\e\?\E?IEA2e(3D) -------------------------------------------------------</highlight></codeline>
+<linenumber line="187"/><codeline><highlight class="keywordtype">void</highlight> SpriteMesh::draw(<highlight class="keyword">const</highlight> Obj3DL * <highlight class="keyword">const</highlight> pObj)</codeline>
+<linenumber line="188"/><codeline>{</codeline>
+<linenumber line="189"/><codeline></codeline>
+<linenumber line="190"/><codeline>     HRESULT hr;</codeline>
+<linenumber line="191"/><codeline>     <highlight class="keywordflow">if</highlight>(!pObj-&gt;visibility())</codeline>
+<linenumber line="192"/><codeline>             <highlight class="keywordflow">return</highlight>;</codeline>
+<linenumber line="193"/><codeline></codeline>
+<linenumber line="194"/><codeline>     D3DMATRIX matrix_scaling=</codeline>
+<linenumber line="195"/><codeline>     {</codeline>
+<linenumber line="196"/><codeline>             pObj-&gt;scalingX(),0,0,0,</codeline>
+<linenumber line="197"/><codeline>             0,pObj-&gt;scalingY(),0,0,</codeline>
+<linenumber line="198"/><codeline>             0,0,pObj-&gt;scalingZ(),0,</codeline>
+<linenumber line="199"/><codeline>             0,0,0,1</codeline>
+<linenumber line="200"/><codeline>     };</codeline>
+<linenumber line="201"/><codeline></codeline>
+<linenumber line="202"/><codeline>     D3DMATRIX matrix_trans=</codeline>
+<linenumber line="203"/><codeline>     {</codeline>
+<linenumber line="204"/><codeline>             1,0,0,0,</codeline>
+<linenumber line="205"/><codeline>             0,1,0,0,</codeline>
+<linenumber line="206"/><codeline>             0,0,1,0,</codeline>
+<linenumber line="207"/><codeline>             pObj-&gt;spaceX(),pObj-&gt;spaceY(),pObj-&gt;spaceZ(),1</codeline>
+<linenumber line="208"/><codeline>     };</codeline>
+<linenumber line="209"/><codeline>     </codeline>
+<linenumber line="210"/><codeline></codeline>
+<linenumber line="211"/><codeline>     D3DMATRIX matrix_rotx =</codeline>
+<linenumber line="212"/><codeline>     {</codeline>
+<linenumber line="213"/><codeline>             1,0,0,0,</codeline>
+<linenumber line="214"/><codeline>             0,pObj-&gt;rotXCos(),pObj-&gt;rotXSin(),0,</codeline>
+<linenumber line="215"/><codeline>             0,-pObj-&gt;rotXSin(),pObj-&gt;rotXCos(),0,</codeline>
+<linenumber line="216"/><codeline>             0,0,0,1</codeline>
+<linenumber line="217"/><codeline>     };</codeline>
+<linenumber line="218"/><codeline></codeline>
+<linenumber line="219"/><codeline>     D3DMATRIX matrix_roty=</codeline>
+<linenumber line="220"/><codeline>     {</codeline>
+<linenumber line="221"/><codeline>             pObj-&gt;rotYCos(),0,-pObj-&gt;rotYSin(),0,</codeline>
+<linenumber line="222"/><codeline>             0,1,0,0,</codeline>
+<linenumber line="223"/><codeline>             pObj-&gt;rotYSin(),0,pObj-&gt;rotYCos(),0,</codeline>
+<linenumber line="224"/><codeline>             0,0,0,1</codeline>
+<linenumber line="225"/><codeline>     };</codeline>
+<linenumber line="226"/><codeline></codeline>
+<linenumber line="227"/><codeline></codeline>
+<linenumber line="228"/><codeline>     D3DMATRIX matrix_rotz =</codeline>
+<linenumber line="229"/><codeline>     {</codeline>
+<linenumber line="230"/><codeline>             pObj-&gt;rotZCos(),pObj-&gt;rotZSin(),0,0,</codeline>
+<linenumber line="231"/><codeline>             -pObj-&gt;rotZSin(),pObj-&gt;rotZCos(),0,0,</codeline>
+<linenumber line="232"/><codeline>             0,0,1,0,</codeline>
+<linenumber line="233"/><codeline>             0,0,0,1</codeline>
+<linenumber line="234"/><codeline>     };</codeline>
+<linenumber line="235"/><codeline></codeline>
+<linenumber line="236"/><codeline></codeline>
+<linenumber line="237"/><codeline></codeline>
+<linenumber line="238"/><codeline>     hr = mpD3DDevice-&gt;SetTransform(D3DTS_WORLD ,&amp;matrix_trans);</codeline>
+<linenumber line="239"/><codeline></codeline>
+<linenumber line="240"/><codeline>     hr = mpD3DDevice-&gt;MultiplyTransform(D3DTS_WORLD ,&amp;matrix_scaling);</codeline>
+<linenumber line="241"/><codeline>     hr = mpD3DDevice-&gt;MultiplyTransform(D3DTS_WORLD ,&amp;matrix_rotx);</codeline>
+<linenumber line="242"/><codeline>     hr = mpD3DDevice-&gt;MultiplyTransform(D3DTS_WORLD ,&amp;matrix_roty);</codeline>
+<linenumber line="243"/><codeline>     hr = mpD3DDevice-&gt;MultiplyTransform(D3DTS_WORLD ,&amp;matrix_rotz);</codeline>
+<linenumber line="244"/><codeline></codeline>
+<linenumber line="245"/><codeline>     setRenderState(pObj-&gt;drawMode());</codeline>
+<linenumber line="246"/><codeline>     mpD3DDevice-&gt;SetRenderState(D3DRS_LIGHTING,            TRUE);</codeline>
+<linenumber line="247"/><codeline>     mpD3DDevice-&gt;SetRenderState(D3DRS_CULLMODE ,           D3DCULL_CCW  );</codeline>
+<linenumber line="248"/><codeline></codeline>
+<linenumber line="249"/><codeline>     <highlight class="keywordflow">for</highlight>( <ref idref="namespacesf_1a0">DWORD</ref> i = 0; i &lt; mNumMaterials; i++ )</codeline>
+<linenumber line="250"/><codeline>     {</codeline>
+<linenumber line="251"/><codeline>             <highlight class="comment">// Set the material and texture for this subset</highlight></codeline>
+<linenumber line="252"/><codeline>             mpD3DDevice-&gt;SetMaterial( &amp;mpMeshMaterials[i] );</codeline>
+<linenumber line="253"/><codeline>             mpD3DDevice-&gt;SetTexture( 0, mpMeshTextures[i] );</codeline>
+<linenumber line="254"/><codeline>    </codeline>
+<linenumber line="255"/><codeline>             <highlight class="comment">// Draw the mesh subset</highlight></codeline>
+<linenumber line="256"/><codeline>             mpMesh-&gt;DrawSubset( i );</codeline>
+<linenumber line="257"/><codeline>     }</codeline>
+<linenumber line="258"/><codeline></codeline>
+<linenumber line="259"/><codeline>}<highlight class="comment">// draw()</highlight></codeline>
+<linenumber line="260"/><codeline></codeline>
+<linenumber line="261"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/SpriteMesh.cpp"/>
+  </compounddef>
+  <compounddef id="SpriteMesh_8h" kind="file">
+    <compoundname>SpriteMesh.h</compoundname>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includes id="AbstractSprite_8h" local="yes">AbstractSprite.h</includes>
+    <includedby id="ConsoleImpl_8cpp" local="yes">ConsoleImpl.cpp</includedby>
+    <includedby id="SpriteMesh_8cpp" local="yes">SpriteMesh.cpp</includedby>
+    <incdepgraph>
+      <node id="751">
+        <label>AbstractSprite.h</label>
+        <link id="AbstractSprite_8h-source"/>
+        <childnode id="750" relation="public-inheritance">
+        </childnode>
+        <childnode id="752" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="749">
+        <label>SpriteMesh.h</label>
+        <link id="SpriteMesh.h"/>
+        <childnode id="750" relation="public-inheritance">
+        </childnode>
+        <childnode id="751" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="750">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="752">
+        <label>Console.h</label>
+        <link id="Console_8h"/>
+        <childnode id="753" relation="public-inheritance">
+        </childnode>
+        <childnode id="750" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="753">
+        <label>memory</label>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="754">
+        <label>SpriteMesh.h</label>
+        <link id="SpriteMesh.h"/>
+        <childnode id="755" relation="public-inheritance">
+        </childnode>
+        <childnode id="756" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="755">
+        <label>ConsoleImpl.cpp</label>
+        <link id="ConsoleImpl_8cpp-source"/>
+      </node>
+      <node id="756">
+        <label>SpriteMesh.cpp</label>
+        <link id="SpriteMesh_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console">sf::system::console</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console_1_1sprite">sf::system::console::sprite</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="SpriteMesh_8h_1a0" virt="normal" prot="public">
+        <name>AFX_SPRITEMESH_H__572D6B9D_63CF_41E9_8D17_4A37518A0CA2__INCLUDED_</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SpriteMesh.h" line="26" bodystart="26" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// SpriteMesh.h: SpriteMesh \\81P\e\1?I\?\o\?!?\O\\81\98\?\1</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//  IuIo!\81\98</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">// $Log: SpriteMesh.h,v $</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// Revision 1.3  2001/11/06 21:27:42  fujiwara</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// AcEy11?\81EA\81\8b\D\A\\81P\\81\91\A\\81~</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// Revision 1.2  2001/10/28 21:35:56  fujiwara</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:36  fujiwara</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">// Revision 1.3  2001/07/09 20:30:10  fujiwara</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:48:55  fujiwara</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor">#if !defined(AFX_SPRITEMESH_H__572D6B9D_63CF_41E9_8D17_4A37518A0CA2__INCLUDED_)</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_SPRITEMESH_H__572D6B9D_63CF_41E9_8D17_4A37518A0CA2__INCLUDED_</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight> </codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor">#include &quot;AbstractSprite.h&quot;</highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="34"/><codeline><highlight class="keyword">namespace </highlight>sf {</codeline>
+<linenumber line="35"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="36"/><codeline>              <highlight class="keyword">namespace </highlight>console {</codeline>
+<linenumber line="37"/><codeline>                      <highlight class="keyword">namespace </highlight>sprite {</codeline>
+<linenumber line="38"/><codeline></codeline>
+<linenumber line="39"/><codeline><highlight class="keyword">class </highlight>SpriteMesh : <highlight class="keyword">public</highlight> AbstractSprite  </codeline>
+<linenumber line="40"/><codeline>{</codeline>
+<linenumber line="41"/><codeline><highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="42"/><codeline>      <highlight class="comment">// LIFECYCLE //</highlight></codeline>
+<linenumber line="43"/><codeline>      SpriteMesh(LPDIRECT3DDEVICE8    pD3DDevice);</codeline>
+<linenumber line="44"/><codeline>      <highlight class="keyword">virtual</highlight> ~SpriteMesh();</codeline>
+<linenumber line="45"/><codeline>      <highlight class="comment">// OPERATIONS //</highlight></codeline>
+<linenumber line="46"/><codeline>      <highlight class="keywordtype">void</highlight> initialize(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="47"/><codeline>      <highlight class="keywordtype">void</highlight> initialize(LPDIRECT3DDEVICE8    pD3DDevice);</codeline>
+<linenumber line="48"/><codeline>      <highlight class="keywordtype">void</highlight> uninitialize(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="49"/><codeline>      <highlight class="comment">// EA2eIN\i\o\A\e\o\\81\8b\1\A!?\E?IAsAe</highlight></codeline>
+<linenumber line="50"/><codeline>      <highlight class="keywordtype">void</highlight> load(<highlight class="keyword">const</highlight> sprite::Info *pInfo,<highlight class="keyword">const</highlight> D3DFORMAT textureFormat,<highlight class="keyword">const</highlight> COLOR color);</codeline>
+<linenumber line="51"/><codeline>      </codeline>
+<linenumber line="52"/><codeline>      <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a1">draw</ref>(<highlight class="keyword">const</highlight> ObjRectangle * <highlight class="keyword">const</highlight> pObj){<highlight class="keywordflow">return</highlight>;};</codeline>
+<linenumber line="53"/><codeline>      <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a1">draw</ref>(<highlight class="keyword">const</highlight> ObjQuadrangle * <highlight class="keyword">const</highlight> pObj){<highlight class="keywordflow">return</highlight>;};</codeline>
+<linenumber line="54"/><codeline>      <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1console_1_1sprite_1_1Sprite_1a1">draw</ref>(<highlight class="keyword">const</highlight> Obj3DL * <highlight class="keyword">const</highlight> pObj);</codeline>
+<linenumber line="55"/><codeline></codeline>
+<linenumber line="56"/><codeline><highlight class="keyword">private</highlight>:</codeline>
+<linenumber line="57"/><codeline></codeline>
+<linenumber line="58"/><codeline>      LPD3DXMESH              mpMesh         ;  <highlight class="comment">// Our mesh object in sysmem</highlight></codeline>
+<linenumber line="59"/><codeline>      D3DMATERIAL8*           mpMeshMaterials;  <highlight class="comment">// Materials for our mesh</highlight></codeline>
+<linenumber line="60"/><codeline>      LPDIRECT3DTEXTURE8*     mpMeshTextures;  <highlight class="comment">// Textures for our mesh</highlight></codeline>
+<linenumber line="61"/><codeline>      <ref idref="namespacesf_1a0">DWORD</ref>                   mNumMaterials;    <highlight class="comment">// Number of mesh materials</highlight></codeline>
+<linenumber line="62"/><codeline></codeline>
+<linenumber line="63"/><codeline>};<highlight class="comment">// SpriteMesh                            </highlight></codeline>
+<linenumber line="64"/><codeline>                      }</codeline>
+<linenumber line="65"/><codeline>              }</codeline>
+<linenumber line="66"/><codeline>      }</codeline>
+<linenumber line="67"/><codeline>}</codeline>
+<linenumber line="68"/><codeline>}</codeline>
+<linenumber line="69"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_SPRITEMESH_H__572D6B9D_63CF_41E9_8D17_4A37518A0CA2__INCLUDED_)</highlight></codeline>
+<linenumber line="70"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/SpriteMesh.h"/>
+  </compounddef>
+  <compounddef id="StdAfx_8cpp" kind="file">
+    <compoundname>StdAfx.cpp</compoundname>
+    <includes local="yes">stdafx.h</includes>
+    <incdepgraph>
+      <node id="758">
+        <label>stdafx.h</label>
+      </node>
+      <node id="757">
+        <label>StdAfx.cpp</label>
+        <link id="StdAfx.cpp"/>
+        <childnode id="758" relation="public-inheritance">
+        </childnode>
+      </node>
+    </incdepgraph>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">// stdafx.cpp : E\81C?a\?\o\\81P\e!?\E\O\!\?\e?o\81LT?a\?!?\1 \O\!\?\e</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//              sfglib.pch A\81CAR?\83Ê?i?e\\81~\e\3\o\N\?\eoN\O\A\A!?</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">//              stdafx.obj A\81CAR?\83Ê?i?e\\81~\e\3\o\N\?\eoN\?\?\\81~?dEo</highlight></codeline>
+<linenumber line="4"/><codeline></codeline>
+<linenumber line="5"/><codeline><highlight class="preprocessor">#include &quot;stdafx.h&quot;</highlight></codeline>
+<linenumber line="6"/><codeline></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// TODO: STDAFX.H ?E\81LT?T?i?A???A!\81\91?3?I\O\!\?\e?E\83Ê-?O?\83Ê?i?A???E??</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// \O\A\A!?\O\!\?\e?oAE2A?\81E?A?\81P?A?\83Ê??!\81\92</highlight></codeline>
+<linenumber line="9"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/StdAfx.cpp"/>
+  </compounddef>
+  <compounddef id="StdAfx_8h" kind="file">
+    <compoundname>StdAfx.h</compoundname>
+    <includes local="no">windows.h</includes>
+    <incdepgraph>
+      <node id="761">
+        <label>windows.h</label>
+      </node>
+      <node id="760">
+        <label>StdAfx.h</label>
+        <link id="StdAfx.h"/>
+        <childnode id="761" relation="public-inheritance">
+        </childnode>
+      </node>
+    </incdepgraph>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="StdAfx_8h_1a0" virt="normal" prot="public">
+        <name>AFX_STDAFX_H__050FFF83_35A1_43A9_B1B8_BAC18FC87245__INCLUDED_</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/StdAfx.h" line="7" bodystart="7" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="StdAfx_8h_1a1" virt="normal" prot="public">
+        <name>WIN32_LEAN_AND_MEAN</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/StdAfx.h" line="15" bodystart="15" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">// stdafx.h : E\81C?a?I\\81E\1\A\a \?\o\\81P\e!?\E \O\!\?\e!\81\91</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//            ?T???I\81â2?E2o?o?\81ÊA??\81P!\81\91?\81á?A?\81\91?T?eEN11?\83Ê?i?E??</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">//            \\81~\i\\81C\\81\98\\81P\EAiIN?I\?\o\\81P\e!?\E \O\!\?\e?o\83Ê-?O?\81E?T?1!\81\92</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="5"/><codeline></codeline>
+<linenumber line="6"/><codeline><highlight class="preprocessor">#if !defined(AFX_STDAFX_H__050FFF83_35A1_43A9_B1B8_BAC18FC87245__INCLUDED_)</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_STDAFX_H__050FFF83_35A1_43A9_B1B8_BAC18FC87245__INCLUDED_</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="13"/><codeline></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">// ?3?I\81\8bIAO?E\O\A\A!??oATAt?\81E?A?\81P?A?\83Ê??</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="preprocessor">#define WIN32_LEAN_AND_MEAN           // Windows \O\A\A!??\81á?eEO?E\81âEIN?\83Ê?i?E??\1\?\A\O?o?u3\81\8b?\81E?T?1</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="preprocessor">#include &lt;windows.h&gt;</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">// TODO: \\81~\i\\81\8b\e\a?CE\81ÊI\81~?E\O\A\A!?\81â2?E?oAE2A?\81E?A?\81P?A?\83Ê??!\81\92</highlight></codeline>
+<linenumber line="19"/><codeline></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">//{{AFX_INSERT_LOCATION}}</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment">// Microsoft Visual C++ ?IA\81\8b1O?IA?A\81\8b?EAE2A?IAe\81CA?oATAt?\81E?T?1!\81\92</highlight></codeline>
+<linenumber line="22"/><codeline></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_STDAFX_H__050FFF83_35A1_43A9_B1B8_BAC18FC87245__INCLUDED_)</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/StdAfx.h"/>
+  </compounddef>
+  <compounddef id="System_8cpp" kind="file">
+    <compoundname>System.cpp</compoundname>
+    <includes local="yes">math.h</includes>
+    <includes local="no">list</includes>
+    <includes local="no">queue</includes>
+    <includes local="no">map</includes>
+    <includes local="yes">windows.h</includes>
+    <includes local="yes">windowsx.h</includes>
+    <includes local="yes">d3d8.h</includes>
+    <includes local="yes">d3dx8.h</includes>
+    <includes local="yes">dmusici.h</includes>
+    <includes local="yes">dinput.h</includes>
+    <includes local="yes">exception.h</includes>
+    <includes id="System_8h" local="yes">System.h</includes>
+    <includes id="sfglib_2resource_8h" local="yes">resource.h</includes>
+    <includes id="Console_8h" local="yes">Console.h</includes>
+    <includes id="Obj_8h" local="yes">Obj.h</includes>
+    <includes id="singleton_8h" local="yes">singleton.h</includes>
+    <includes id="AbstractSprite_8h" local="yes">AbstractSprite.h</includes>
+    <includes id="ConsoleImpl_8h" local="yes">ConsoleImpl.h</includes>
+    <includes id="SoundImpl_8h" local="yes">SoundImpl.h</includes>
+    <includes id="InputImpl_8h" local="yes">InputImpl.h</includes>
+    <includes id="Main_8h" local="yes">Main.h</includes>
+    <includes id="SystemImpl_8h" local="yes">SystemImpl.h</includes>
+    <incdepgraph>
+      <node id="765">
+        <label>list</label>
+      </node>
+      <node id="782">
+        <label>singleton.h</label>
+        <link id="singleton_8h"/>
+        <childnode id="780" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="766">
+        <label>queue</label>
+      </node>
+      <node id="785">
+        <label>SoundImpl.h</label>
+        <link id="SoundImpl_8h"/>
+        <childnode id="777" relation="public-inheritance">
+        </childnode>
+        <childnode id="786" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="768">
+        <label>windows.h</label>
+      </node>
+      <node id="788">
+        <label>Input.h</label>
+        <link id="Input_8h"/>
+        <childnode id="777" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="775">
+        <label>System.h</label>
+        <link id="System_8h"/>
+        <childnode id="776" relation="public-inheritance">
+        </childnode>
+        <childnode id="777" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="769">
+        <label>windowsx.h</label>
+      </node>
+      <node id="778">
+        <label>resource.h</label>
+        <link id="sfglib_2resource_8h-source"/>
+      </node>
+      <node id="772">
+        <label>dmusici.h</label>
+      </node>
+      <node id="776">
+        <label>string</label>
+      </node>
+      <node id="784">
+        <label>ConsoleImpl.h</label>
+        <link id="ConsoleImpl_8h"/>
+        <childnode id="777" relation="public-inheritance">
+        </childnode>
+        <childnode id="779" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="767">
+        <label>map</label>
+      </node>
+      <node id="783">
+        <label>AbstractSprite.h</label>
+        <link id="AbstractSprite_8h-source"/>
+        <childnode id="777" relation="public-inheritance">
+        </childnode>
+        <childnode id="779" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="790">
+        <label>SystemImpl.h</label>
+        <link id="SystemImpl_8h-source"/>
+        <childnode id="777" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="777">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="779">
+        <label>Console.h</label>
+        <link id="Console_8h"/>
+        <childnode id="780" relation="public-inheritance">
+        </childnode>
+        <childnode id="777" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="787">
+        <label>InputImpl.h</label>
+        <link id="InputImpl_8h"/>
+        <childnode id="777" relation="public-inheritance">
+        </childnode>
+        <childnode id="788" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="763">
+        <label>System.cpp</label>
+        <link id="System.cpp"/>
+        <childnode id="764" relation="public-inheritance">
+        </childnode>
+        <childnode id="765" relation="public-inheritance">
+        </childnode>
+        <childnode id="766" relation="public-inheritance">
+        </childnode>
+        <childnode id="767" relation="public-inheritance">
+        </childnode>
+        <childnode id="768" relation="public-inheritance">
+        </childnode>
+        <childnode id="769" relation="public-inheritance">
+        </childnode>
+        <childnode id="770" relation="public-inheritance">
+        </childnode>
+        <childnode id="771" relation="public-inheritance">
+        </childnode>
+        <childnode id="772" relation="public-inheritance">
+        </childnode>
+        <childnode id="773" relation="public-inheritance">
+        </childnode>
+        <childnode id="774" relation="public-inheritance">
+        </childnode>
+        <childnode id="775" relation="public-inheritance">
+        </childnode>
+        <childnode id="778" relation="public-inheritance">
+        </childnode>
+        <childnode id="779" relation="public-inheritance">
+        </childnode>
+        <childnode id="781" relation="public-inheritance">
+        </childnode>
+        <childnode id="782" relation="public-inheritance">
+        </childnode>
+        <childnode id="783" relation="public-inheritance">
+        </childnode>
+        <childnode id="784" relation="public-inheritance">
+        </childnode>
+        <childnode id="785" relation="public-inheritance">
+        </childnode>
+        <childnode id="787" relation="public-inheritance">
+        </childnode>
+        <childnode id="789" relation="public-inheritance">
+        </childnode>
+        <childnode id="790" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="786">
+        <label>Sound.h</label>
+        <link id="Sound_8h"/>
+        <childnode id="777" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="764">
+        <label>math.h</label>
+      </node>
+      <node id="781">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="777" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="770">
+        <label>d3d8.h</label>
+      </node>
+      <node id="789">
+        <label>Main.h</label>
+        <link id="Main_8h-source"/>
+      </node>
+      <node id="774">
+        <label>exception.h</label>
+      </node>
+      <node id="771">
+        <label>d3dx8.h</label>
+      </node>
+      <node id="780">
+        <label>memory</label>
+      </node>
+      <node id="773">
+        <label>dinput.h</label>
+      </node>
+    </incdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=\81L\81\8bAR</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// System Ae?Y\\81P\e\1</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">// StaticEoE\81Ê?I?AAo</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">//  IuIo:</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// $Log: System.cpp,v $</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// Revision 1.3  2001/11/06 21:27:42  fujiwara</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// AcEy11?\81EA\81\8b\D\A\\81P\\81\91\A\\81~</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// Revision 1.2  2001/10/28 21:35:56  fujiwara</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// Revision 1.1  2001/10/21 12:12:36  fujiwara</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">// (none)</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// Revision 1.5  2001/07/09 20:30:10  fujiwara</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">// Revision 1.4  2001/07/01 01:03:44  fujiwara</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">// const ?I\81C\81áA??\81E</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment">// CUAO\\81N\C\\81\92\??IAOAa\81ED2a</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="comment">// Revision 1.3  2001/05/29 01:12:25  fujiwara</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="comment">// \81â\81N\83Êu\-\a\e(Eo1OEa!E?IoiAR!\81\92CUAO\\81N\C\\81\92\??I\D\\81\8b??A\83Ê</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:48:48  fujiwara</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="comment">// 2001/01/29 \a\a\e!?\e!?\\81P\81C!?DIN\e\?\O\e\e?IAE2A </highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="31"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="34"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="35"/><codeline><highlight class="preprocessor">#pragma warning( disable : 4786 )     //STL?I\81EU1d3\81\8b?\81E</highlight></codeline>
+<linenumber line="36"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="37"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="38"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="39"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#ifndef _BORLAND</highlight></codeline>
+<linenumber line="40"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define _CRTDBG_MAP_ALLOC</highlight></codeline>
+<linenumber line="41"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &lt;stdlib.h&gt;</highlight></codeline>
+<linenumber line="42"/><codeline><highlight class="preprocessor">#include &lt;crtdbg.h&gt;</highlight></codeline>
+<linenumber line="43"/><codeline><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="44"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="45"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="46"/><codeline><highlight class="comment">// SYSTEM INCLUDES</highlight></codeline>
+<linenumber line="47"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="48"/><codeline><highlight class="comment">//#define INITGUID</highlight></codeline>
+<linenumber line="49"/><codeline><highlight class="preprocessor">#include &quot;math.h&quot;</highlight></codeline>
+<linenumber line="50"/><codeline><highlight class="preprocessor">#include &lt;list&gt;</highlight></codeline>
+<linenumber line="51"/><codeline><highlight class="preprocessor">#include &lt;queue&gt;</highlight></codeline>
+<linenumber line="52"/><codeline><highlight class="preprocessor">#include &lt;map&gt;</highlight></codeline>
+<linenumber line="53"/><codeline></codeline>
+<linenumber line="54"/><codeline><highlight class="preprocessor">#include &quot;windows.h&quot;</highlight></codeline>
+<linenumber line="55"/><codeline><highlight class="preprocessor">#include &quot;windowsx.h&quot;</highlight></codeline>
+<linenumber line="56"/><codeline><highlight class="preprocessor">#include &quot;d3d8.h&quot;</highlight></codeline>
+<linenumber line="57"/><codeline><highlight class="preprocessor">#include &quot;d3dx8.h&quot;</highlight></codeline>
+<linenumber line="58"/><codeline><highlight class="preprocessor">#include &quot;dmusici.h&quot;</highlight></codeline>
+<linenumber line="59"/><codeline><highlight class="preprocessor">#include &quot;dinput.h&quot;</highlight></codeline>
+<linenumber line="60"/><codeline></codeline>
+<linenumber line="61"/><codeline><highlight class="comment">// PROJECT INCLUDES</highlight></codeline>
+<linenumber line="62"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="63"/><codeline><highlight class="comment">//#include &quot;console.h&quot;</highlight></codeline>
+<linenumber line="64"/><codeline><highlight class="comment">//#include &quot;input.h&quot;</highlight></codeline>
+<linenumber line="65"/><codeline><highlight class="comment">//#include &quot;sound.h&quot;</highlight></codeline>
+<linenumber line="66"/><codeline></codeline>
+<linenumber line="67"/><codeline><highlight class="preprocessor">#include &quot;exception.h&quot;</highlight></codeline>
+<linenumber line="68"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="System_8h">System.h</ref>&quot;</highlight></codeline>
+<linenumber line="69"/><codeline><highlight class="preprocessor">#include &quot;resource.h&quot;</highlight></codeline>
+<linenumber line="70"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="Console_8h">Console.h</ref>&quot;</highlight></codeline>
+<linenumber line="71"/><codeline><highlight class="preprocessor">#include &quot;Obj.h&quot;</highlight></codeline>
+<linenumber line="72"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="singleton_8h">singleton.h</ref>&quot;</highlight></codeline>
+<linenumber line="73"/><codeline><highlight class="preprocessor">#include &quot;AbstractSprite.h&quot;</highlight></codeline>
+<linenumber line="74"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="ConsoleImpl_8h">ConsoleImpl.h</ref>&quot;</highlight>      </codeline>
+<linenumber line="75"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="SoundImpl_8h">SoundImpl.h</ref>&quot;</highlight></codeline>
+<linenumber line="76"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="InputImpl_8h">InputImpl.h</ref>&quot;</highlight></codeline>
+<linenumber line="77"/><codeline><highlight class="preprocessor">#include &quot;Main.h&quot;</highlight></codeline>
+<linenumber line="78"/><codeline><highlight class="preprocessor">#include &quot;SystemImpl.h&quot;</highlight></codeline>
+<linenumber line="79"/><codeline></codeline>
+<linenumber line="80"/><codeline><highlight class="comment">// namespace</highlight></codeline>
+<linenumber line="81"/><codeline><highlight class="keyword">namespace </highlight>sf {</codeline>
+<linenumber line="82"/><codeline><highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="83"/><codeline></codeline>
+<linenumber line="84"/><codeline>}<highlight class="comment">// system</highlight></codeline>
+<linenumber line="85"/><codeline>}<highlight class="comment">// namespace sf</highlight></codeline>
+<linenumber line="86"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/System.cpp"/>
+  </compounddef>
+  <compounddef id="System_8h" kind="file">
+    <compoundname>System.h</compoundname>
+    <includes local="no">string</includes>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includedby id="AbstractSprite_8cpp" local="yes">AbstractSprite.cpp</includedby>
+    <includedby id="ConsoleImpl_8cpp" local="yes">ConsoleImpl.cpp</includedby>
+    <includedby id="InputImpl_8cpp" local="yes">InputImpl.cpp</includedby>
+    <includedby id="sfglib_8cpp" local="yes">sfglib.cpp</includedby>
+    <includedby id="SoundImpl_8cpp" local="yes">SoundImpl.cpp</includedby>
+    <includedby id="Sprite2D_8cpp" local="yes">Sprite2D.cpp</includedby>
+    <includedby id="Sprite3D_8cpp" local="yes">Sprite3D.cpp</includedby>
+    <includedby id="SpriteMesh_8cpp" local="yes">SpriteMesh.cpp</includedby>
+    <includedby id="System_8cpp" local="yes">System.cpp</includedby>
+    <includedby id="SystemImpl_8cpp" local="yes">SystemImpl.cpp</includedby>
+    <incdepgraph>
+      <node id="792">
+        <label>System.h</label>
+        <link id="System.h"/>
+        <childnode id="793" relation="public-inheritance">
+        </childnode>
+        <childnode id="794" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="793">
+        <label>string</label>
+      </node>
+      <node id="794">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="799">
+        <label>sfglib.cpp</label>
+        <link id="sfglib_8cpp-source"/>
+      </node>
+      <node id="800">
+        <label>SoundImpl.cpp</label>
+        <link id="SoundImpl_8cpp-source"/>
+      </node>
+      <node id="801">
+        <label>Sprite2D.cpp</label>
+        <link id="Sprite2D_8cpp-source"/>
+      </node>
+      <node id="795">
+        <label>System.h</label>
+        <link id="System.h"/>
+        <childnode id="796" relation="public-inheritance">
+        </childnode>
+        <childnode id="797" relation="public-inheritance">
+        </childnode>
+        <childnode id="798" relation="public-inheritance">
+        </childnode>
+        <childnode id="799" relation="public-inheritance">
+        </childnode>
+        <childnode id="800" relation="public-inheritance">
+        </childnode>
+        <childnode id="801" relation="public-inheritance">
+        </childnode>
+        <childnode id="802" relation="public-inheritance">
+        </childnode>
+        <childnode id="803" relation="public-inheritance">
+        </childnode>
+        <childnode id="804" relation="public-inheritance">
+        </childnode>
+        <childnode id="805" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="805">
+        <label>SystemImpl.cpp</label>
+        <link id="SystemImpl_8cpp-source"/>
+      </node>
+      <node id="798">
+        <label>InputImpl.cpp</label>
+        <link id="InputImpl_8cpp-source"/>
+      </node>
+      <node id="797">
+        <label>ConsoleImpl.cpp</label>
+        <link id="ConsoleImpl_8cpp-source"/>
+      </node>
+      <node id="803">
+        <label>SpriteMesh.cpp</label>
+        <link id="SpriteMesh_8cpp-source"/>
+      </node>
+      <node id="804">
+        <label>System.cpp</label>
+        <link id="System_8cpp-source"/>
+      </node>
+      <node id="796">
+        <label>AbstractSprite.cpp</label>
+        <link id="AbstractSprite_8cpp-source"/>
+      </node>
+      <node id="802">
+        <label>Sprite3D.cpp</label>
+        <link id="Sprite3D_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1application">sf::application</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1console">sf::system::console</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1input">sf::system::input</innernamespace>
+    <innernamespace refid="namespacesf_1_1system_1_1sound">sf::system::sound</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="System_8h_1a0" virt="normal" prot="public">
+        <name>AFX_System_H__DD8D138F_B5A2_4C7B_B543_6BCE1BFB1ED5__INCLUDED_</name>
+        <briefdescription>
+<para>
+2?A\?\o\\81P\e!?\E?oEE\81âs?1?e???a?IAe\83ÊA. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/System.h" line="12" bodystart="12" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+OS?O?I\?\o\?!?\O\\81\98!?\1?C?1. </para>
+    </briefdescription>
+    <detaileddescription>
+<simplesect kind="author"><title>oi?O: </title><para>
+S.F. </para>
+</simplesect><simplesect kind="version"><title>\D!?\\81C\c\o: </title><para>
+$Id:</para>
+</simplesect><para>
+Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved. </para>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline></codeline>
+<linenumber line="10"/><codeline><highlight class="preprocessor">#if !defined(AFX_System_H__DD8D138F_B5A2_4C7B_B543_6BCE1BFB1ED5__INCLUDED_)</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="12" refid="System_8h_1a0"/><codeline><highlight class="preprocessor">#define AFX_System_H__DD8D138F_B5A2_4C7B_B543_6BCE1BFB1ED5__INCLUDED_</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="preprocessor">#include &lt;string&gt;</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight></codeline>
+<linenumber line="20"/><codeline></codeline>
+<linenumber line="21"/><codeline><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="22"/><codeline></codeline>
+<linenumber line="26"/><codeline><highlight class="keyword">namespace </highlight>sf {</codeline>
+<linenumber line="27"/><codeline></codeline>
+<linenumber line="29"/><codeline><highlight class="keyword">typedef</highlight> <highlight class="keywordtype">unsigned</highlight> <highlight class="keywordtype">long</highlight> <ref idref="namespacesf_1a0">DWORD</ref>;</codeline>
+<linenumber line="30"/><codeline></codeline>
+<linenumber line="31"/><codeline><highlight class="keyword">namespace </highlight>application {</codeline>
+<linenumber line="32"/><codeline>      <highlight class="keyword">class </highlight>Main;</codeline>
+<linenumber line="33"/><codeline>}</codeline>
+<linenumber line="34"/><codeline></codeline>
+<linenumber line="39"/><codeline><highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="40"/><codeline></codeline>
+<linenumber line="41"/><codeline><highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="namespacesf_1_1system_1a0">PI</ref> = 3.1415926f;</codeline>
+<linenumber line="42"/><codeline><highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> <ref idref="namespacesf_1_1system_1a1">MAX_PATH_</ref> = 256;</codeline>
+<linenumber line="43"/><codeline></codeline>
+<linenumber line="44"/><codeline><highlight class="keyword">namespace </highlight>console {</codeline>
+<linenumber line="45"/><codeline>      <highlight class="keyword">class </highlight>Console;</codeline>
+<linenumber line="46"/><codeline>}</codeline>
+<linenumber line="47"/><codeline></codeline>
+<linenumber line="48"/><codeline><highlight class="keyword">namespace </highlight>sound {</codeline>
+<linenumber line="49"/><codeline>      <highlight class="keyword">class </highlight>Sound;</codeline>
+<linenumber line="50"/><codeline>}</codeline>
+<linenumber line="51"/><codeline></codeline>
+<linenumber line="52"/><codeline><highlight class="keyword">namespace </highlight>input {</codeline>
+<linenumber line="53"/><codeline>      <highlight class="keyword">class </highlight>Input;</codeline>
+<linenumber line="54"/><codeline>}</codeline>
+<linenumber line="55"/><codeline></codeline>
+<linenumber line="56"/><codeline><highlight class="comment">// System ?I\?\o\?!?\O\\81\98!?\1 --------------------------------------------------</highlight></codeline>
+<linenumber line="57"/><codeline></codeline>
+<linenumber line="58"/><codeline><highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> <ref idref="namespacesf_1_1system_1a2">TIMER_INTERVAL</ref> = 32;</codeline>
+<linenumber line="59"/><codeline></codeline>
+<linenumber line="60"/><codeline><highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="namespacesf_1_1system_1a3">FRAME_SEC</ref> = 30.0f;</codeline>
+<linenumber line="61"/><codeline></codeline>
+<linenumber line="67" refid="classsf_1_1system_1_1System_1"/><codeline><highlight class="keyword">class </highlight>System</codeline>
+<linenumber line="68"/><codeline>{</codeline>
+<linenumber line="69"/><codeline>      <highlight class="comment">// LIFECYCLE</highlight></codeline>
+<linenumber line="70"/><codeline><highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="72" refid="classsf_1_1system_1_1System_1a0"/><codeline>      <ref idref="classsf_1_1system_1_1System_1a0">System</ref>(){}; </codeline>
+<linenumber line="73"/><codeline></codeline>
+<linenumber line="74" refid="classsf_1_1system_1_1System_1a1"/><codeline>      <highlight class="keyword">virtual</highlight> <ref idref="classsf_1_1system_1_1System_1a1">~System</ref>(){}; </codeline>
+<linenumber line="75"/><codeline>      <highlight class="comment">// OPERATORS</highlight></codeline>
+<linenumber line="76"/><codeline></codeline>
+<linenumber line="77"/><codeline>      <highlight class="comment">// OPERATIONS</highlight></codeline>
+<linenumber line="78"/><codeline></codeline>
+<linenumber line="79"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1System_1a2">wait</ref>(<highlight class="keywordtype">void</highlight>) = 0; </codeline>
+<linenumber line="80"/><codeline>      </codeline>
+<linenumber line="84"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1System_1a3">errorTerminate</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> *errString) = 0;</codeline>
+<linenumber line="87"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1System_1a4">outputError</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> *errString) = 0;</codeline>
+<linenumber line="88"/><codeline></codeline>
+<linenumber line="89"/><codeline>      <highlight class="comment">// ACCESS</highlight></codeline>
+<linenumber line="90"/><codeline>      </codeline>
+<linenumber line="93"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1System_1a6">timerInterval</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">unsigned</highlight> <highlight class="keywordtype">long</highlight> msValue) = 0;</codeline>
+<linenumber line="94"/><codeline>      </codeline>
+<linenumber line="97"/><codeline>      <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">unsigned</highlight> <highlight class="keywordtype">long</highlight> <ref idref="classsf_1_1system_1_1System_1a6">timerInterval</ref> (<highlight class="keywordtype">void</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="98"/><codeline>      </codeline>
+<linenumber line="101"/><codeline>     <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref>    <ref idref="classsf_1_1system_1_1System_1a7">time</ref>(<highlight class="keywordtype">void</highlight>) <highlight class="keyword">const</highlight> = 0;</codeline>
+<linenumber line="102"/><codeline></codeline>
+<linenumber line="107"/><codeline>     <highlight class="keyword">virtual</highlight> console::Console * <highlight class="keyword">const</highlight> <ref idref="classsf_1_1system_1_1System_1a8">console</ref>(<highlight class="keywordtype">void</highlight>) = 0;</codeline>
+<linenumber line="108"/><codeline></codeline>
+<linenumber line="113"/><codeline>     <highlight class="keyword">virtual</highlight> sound::Sound * <highlight class="keyword">const</highlight> <ref idref="classsf_1_1system_1_1System_1a9">sound</ref>(<highlight class="keywordtype">void</highlight>) = 0;</codeline>
+<linenumber line="114"/><codeline>     </codeline>
+<linenumber line="118"/><codeline>     <highlight class="keyword">virtual</highlight> input::Input * <highlight class="keyword">const</highlight> <ref idref="classsf_1_1system_1_1System_1a10">input</ref>(<highlight class="keywordtype">void</highlight>) = 0;</codeline>
+<linenumber line="119"/><codeline></codeline>
+<linenumber line="124"/><codeline>     <highlight class="keyword">virtual</highlight> application::Main * <highlight class="keyword">const</highlight> <ref idref="classsf_1_1system_1_1System_1a11">main</ref>() = 0;</codeline>
+<linenumber line="125"/><codeline>     </codeline>
+<linenumber line="129"/><codeline>     <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1System_1a11">main</ref>(application::Main * <highlight class="keyword">const</highlight> pMain ) = 0;</codeline>
+<linenumber line="130"/><codeline>     </codeline>
+<linenumber line="136"/><codeline>     <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="classsf_1_1system_1_1System_1a13">deltaTime</ref>(<highlight class="keywordtype">void</highlight>) = 0;</codeline>
+<linenumber line="137"/><codeline>     </codeline>
+<linenumber line="141"/><codeline>     <highlight class="keyword">virtual</highlight>  <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight>   <ref idref="classsf_1_1system_1_1System_1a14">framePerSec</ref>(<highlight class="keywordtype">void</highlight>) = 0;</codeline>
+<linenumber line="142"/><codeline>     </codeline>
+<linenumber line="143"/><codeline>     <highlight class="comment">// INQUIRY</highlight></codeline>
+<linenumber line="147"/><codeline><highlight class="comment"></highlight>       <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1System_1a15">isActive</ref>(<highlight class="keywordtype">void</highlight>) = 0;</codeline>
+<linenumber line="148"/><codeline>}; <highlight class="comment">// System</highlight></codeline>
+<linenumber line="149"/><codeline></codeline>
+<linenumber line="154"/><codeline>SFDLL System * <highlight class="keyword">const</highlight> <ref idref="namespacesf_1_1system_1a4">instance</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="155"/><codeline></codeline>
+<linenumber line="156"/><codeline>} <highlight class="comment">// namespace system</highlight></codeline>
+<linenumber line="157"/><codeline>} <highlight class="comment">// namespace sf</highlight></codeline>
+<linenumber line="158"/><codeline>}</codeline>
+<linenumber line="159"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_System_H__DD8D138F_B5A2_4C7B_B543_6BCE1BFB1ED5__INCLUDED_)</highlight></codeline>
+<linenumber line="160"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/System.h"/>
+  </compounddef>
+  <compounddef id="SystemImpl_8cpp" kind="file">
+    <compoundname>SystemImpl.cpp</compoundname>
+    <includes id="sfdebug_8h" local="yes">sfdebug.h</includes>
+    <includes local="yes">math.h</includes>
+    <includes local="no">list</includes>
+    <includes local="no">queue</includes>
+    <includes local="no">memory</includes>
+    <includes local="no">map</includes>
+    <includes local="no">iostream</includes>
+    <includes local="no">strstream</includes>
+    <includes local="yes">windows.h</includes>
+    <includes local="yes">windowsx.h</includes>
+    <includes local="yes">d3d8.h</includes>
+    <includes local="yes">d3dx8.h</includes>
+    <includes local="yes">dmusici.h</includes>
+    <includes local="yes">dinput.h</includes>
+    <includes id="dxerr8sf_8h" local="yes">dxerr8sf.h</includes>
+    <includes local="yes">exception.h</includes>
+    <includes id="sfglib_2resource_8h" local="yes">resource.h</includes>
+    <includes id="System_8h" local="yes">System.h</includes>
+    <includes id="Console_8h" local="yes">Console.h</includes>
+    <includes id="Obj_8h" local="yes">Obj.h</includes>
+    <includes id="singleton_8h" local="yes">singleton.h</includes>
+    <includes id="AbstractSprite_8h" local="yes">AbstractSprite.h</includes>
+    <includes id="ConsoleImpl_8h" local="yes">ConsoleImpl.h</includes>
+    <includes id="SoundImpl_8h" local="yes">SoundImpl.h</includes>
+    <includes id="InputImpl_8h" local="yes">InputImpl.h</includes>
+    <includes id="Main_8h" local="yes">Main.h</includes>
+    <includes id="SystemWin32_8h" local="yes">SystemWin32.h</includes>
+    <includes id="SystemImpl_8h" local="yes">SystemImpl.h</includes>
+    <incdepgraph>
+      <node id="809">
+        <label>list</label>
+      </node>
+      <node id="830">
+        <label>singleton.h</label>
+        <link id="singleton_8h"/>
+        <childnode id="811" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="822">
+        <label>dxerr8.h</label>
+      </node>
+      <node id="810">
+        <label>queue</label>
+      </node>
+      <node id="833">
+        <label>SoundImpl.h</label>
+        <link id="SoundImpl_8h"/>
+        <childnode id="827" relation="public-inheritance">
+        </childnode>
+        <childnode id="834" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="815">
+        <label>windows.h</label>
+      </node>
+      <node id="836">
+        <label>Input.h</label>
+        <link id="Input_8h"/>
+        <childnode id="827" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="839">
+        <label>sfinterface.h</label>
+        <link id="sfinterface_8h-source"/>
+      </node>
+      <node id="814">
+        <label>strstream</label>
+      </node>
+      <node id="825">
+        <label>System.h</label>
+        <link id="System_8h"/>
+        <childnode id="826" relation="public-inheritance">
+        </childnode>
+        <childnode id="827" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="816">
+        <label>windowsx.h</label>
+      </node>
+      <node id="824">
+        <label>resource.h</label>
+        <link id="sfglib_2resource_8h-source"/>
+      </node>
+      <node id="819">
+        <label>dmusici.h</label>
+      </node>
+      <node id="826">
+        <label>string</label>
+      </node>
+      <node id="806">
+        <label>SystemImpl.cpp</label>
+        <link id="SystemImpl.cpp"/>
+        <childnode id="807" relation="public-inheritance">
+        </childnode>
+        <childnode id="808" relation="public-inheritance">
+        </childnode>
+        <childnode id="809" relation="public-inheritance">
+        </childnode>
+        <childnode id="810" relation="public-inheritance">
+        </childnode>
+        <childnode id="811" relation="public-inheritance">
+        </childnode>
+        <childnode id="812" relation="public-inheritance">
+        </childnode>
+        <childnode id="813" relation="public-inheritance">
+        </childnode>
+        <childnode id="814" relation="public-inheritance">
+        </childnode>
+        <childnode id="815" relation="public-inheritance">
+        </childnode>
+        <childnode id="816" relation="public-inheritance">
+        </childnode>
+        <childnode id="817" relation="public-inheritance">
+        </childnode>
+        <childnode id="818" relation="public-inheritance">
+        </childnode>
+        <childnode id="819" relation="public-inheritance">
+        </childnode>
+        <childnode id="820" relation="public-inheritance">
+        </childnode>
+        <childnode id="821" relation="public-inheritance">
+        </childnode>
+        <childnode id="823" relation="public-inheritance">
+        </childnode>
+        <childnode id="824" relation="public-inheritance">
+        </childnode>
+        <childnode id="825" relation="public-inheritance">
+        </childnode>
+        <childnode id="828" relation="public-inheritance">
+        </childnode>
+        <childnode id="829" relation="public-inheritance">
+        </childnode>
+        <childnode id="830" relation="public-inheritance">
+        </childnode>
+        <childnode id="831" relation="public-inheritance">
+        </childnode>
+        <childnode id="832" relation="public-inheritance">
+        </childnode>
+        <childnode id="833" relation="public-inheritance">
+        </childnode>
+        <childnode id="835" relation="public-inheritance">
+        </childnode>
+        <childnode id="837" relation="public-inheritance">
+        </childnode>
+        <childnode id="838" relation="public-inheritance">
+        </childnode>
+        <childnode id="840" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="832">
+        <label>ConsoleImpl.h</label>
+        <link id="ConsoleImpl_8h"/>
+        <childnode id="827" relation="public-inheritance">
+        </childnode>
+        <childnode id="828" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="821">
+        <label>dxerr8sf.h</label>
+        <link id="dxerr8sf_8h-source"/>
+        <childnode id="822" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="807">
+        <label>sfdebug.h</label>
+        <link id="sfdebug_8h"/>
+      </node>
+      <node id="812">
+        <label>map</label>
+      </node>
+      <node id="831">
+        <label>AbstractSprite.h</label>
+        <link id="AbstractSprite_8h-source"/>
+        <childnode id="827" relation="public-inheritance">
+        </childnode>
+        <childnode id="828" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="840">
+        <label>SystemImpl.h</label>
+        <link id="SystemImpl_8h-source"/>
+        <childnode id="827" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="827">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+      <node id="828">
+        <label>Console.h</label>
+        <link id="Console_8h"/>
+        <childnode id="811" relation="public-inheritance">
+        </childnode>
+        <childnode id="827" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="835">
+        <label>InputImpl.h</label>
+        <link id="InputImpl_8h"/>
+        <childnode id="827" relation="public-inheritance">
+        </childnode>
+        <childnode id="836" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="834">
+        <label>Sound.h</label>
+        <link id="Sound_8h"/>
+        <childnode id="827" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="808">
+        <label>math.h</label>
+      </node>
+      <node id="838">
+        <label>SystemWin32.h</label>
+        <link id="SystemWin32_8h"/>
+        <childnode id="839" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="813">
+        <label>iostream</label>
+      </node>
+      <node id="829">
+        <label>Obj.h</label>
+        <link id="Obj_8h-source"/>
+        <childnode id="827" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="817">
+        <label>d3d8.h</label>
+      </node>
+      <node id="837">
+        <label>Main.h</label>
+        <link id="Main_8h-source"/>
+      </node>
+      <node id="823">
+        <label>exception.h</label>
+      </node>
+      <node id="818">
+        <label>d3dx8.h</label>
+      </node>
+      <node id="811">
+        <label>memory</label>
+      </node>
+      <node id="820">
+        <label>dinput.h</label>
+      </node>
+    </incdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="SystemImpl_8cpp_1a0" virt="normal" prot="public">
+        <name>WIN32_LEAN_AND_MEAN</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.cpp" line="21" bodystart="21" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline></codeline>
+<linenumber line="13"/><codeline><highlight class="preprocessor">#pragma warning( disable : 4786 )     //STL?I\81EU1d3\81\8b?\81E</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;<ref idref="sfdebug_8h">sfdebug.h</ref>&quot;</highlight></codeline>
+<linenumber line="15"/><codeline></codeline>
+<linenumber line="16"/><codeline></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">// SYSTEM INCLUDES</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">//#define INITGUID</highlight></codeline>
+<linenumber line="20"/><codeline></codeline>
+<linenumber line="21"/><codeline><highlight class="preprocessor">#define WIN32_LEAN_AND_MEAN</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="preprocessor">#include &quot;math.h&quot;</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="preprocessor">#include &lt;list&gt;</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="preprocessor">#include &lt;queue&gt;</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="preprocessor">#include &lt;memory&gt;</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="preprocessor">#include &lt;map&gt;</highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="preprocessor">#include &lt;iostream&gt;</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="preprocessor">#include &lt;strstream&gt;</highlight></codeline>
+<linenumber line="30"/><codeline></codeline>
+<linenumber line="31"/><codeline><highlight class="preprocessor">#include &quot;windows.h&quot;</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="preprocessor">#include &quot;windowsx.h&quot;</highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="preprocessor">#include &quot;d3d8.h&quot;</highlight></codeline>
+<linenumber line="34"/><codeline><highlight class="preprocessor">#include &quot;d3dx8.h&quot;</highlight></codeline>
+<linenumber line="35"/><codeline><highlight class="preprocessor">#include &quot;dmusici.h&quot;</highlight></codeline>
+<linenumber line="36"/><codeline><highlight class="preprocessor">#include &quot;dinput.h&quot;</highlight></codeline>
+<linenumber line="37"/><codeline><highlight class="preprocessor">#include &quot;dxerr8sf.h&quot;</highlight></codeline>
+<linenumber line="38"/><codeline></codeline>
+<linenumber line="39"/><codeline><highlight class="comment">// PROJECT INCLUDES</highlight></codeline>
+<linenumber line="40"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="41"/><codeline></codeline>
+<linenumber line="42"/><codeline><highlight class="preprocessor">#include &quot;exception.h&quot;</highlight></codeline>
+<linenumber line="43"/><codeline><highlight class="preprocessor">#include &quot;resource.h&quot;</highlight></codeline>
+<linenumber line="44"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="System_8h">System.h</ref>&quot;</highlight></codeline>
+<linenumber line="45"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="Console_8h">Console.h</ref>&quot;</highlight></codeline>
+<linenumber line="46"/><codeline><highlight class="preprocessor">#include &quot;Obj.h&quot;</highlight></codeline>
+<linenumber line="47"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="singleton_8h">singleton.h</ref>&quot;</highlight></codeline>
+<linenumber line="48"/><codeline><highlight class="preprocessor">#include &quot;AbstractSprite.h&quot;</highlight></codeline>
+<linenumber line="49"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="ConsoleImpl_8h">ConsoleImpl.h</ref>&quot;</highlight>      </codeline>
+<linenumber line="50"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="SoundImpl_8h">SoundImpl.h</ref>&quot;</highlight></codeline>
+<linenumber line="51"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="InputImpl_8h">InputImpl.h</ref>&quot;</highlight></codeline>
+<linenumber line="52"/><codeline><highlight class="preprocessor">#include &quot;Main.h&quot;</highlight></codeline>
+<linenumber line="53"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="SystemWin32_8h">SystemWin32.h</ref>&quot;</highlight></codeline>
+<linenumber line="54"/><codeline><highlight class="preprocessor">#include &quot;SystemImpl.h&quot;</highlight></codeline>
+<linenumber line="55"/><codeline></codeline>
+<linenumber line="56"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="57"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define new DEBUG_NEW</highlight></codeline>
+<linenumber line="58"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="59"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="60"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P\81C!?DIN</highlight></codeline>
+<linenumber line="61"/><codeline></codeline>
+<linenumber line="62"/><codeline><highlight class="comment">// LOCAL INCLUDES</highlight></codeline>
+<linenumber line="63"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="64"/><codeline></codeline>
+<linenumber line="65"/><codeline><highlight class="comment">// FORWARD REFERENCES</highlight></codeline>
+<linenumber line="66"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="67"/><codeline></codeline>
+<linenumber line="68"/><codeline><highlight class="comment">// namespace</highlight></codeline>
+<linenumber line="69"/><codeline><highlight class="keyword">namespace </highlight>sf {</codeline>
+<linenumber line="70"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="71"/><codeline><highlight class="comment">// constant</highlight></codeline>
+<linenumber line="72"/><codeline></codeline>
+<linenumber line="73"/><codeline>System * <highlight class="keyword">const</highlight> <ref idref="namespacesf_1_1system_1a4">instance</ref>(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="74"/><codeline>{ </codeline>
+<linenumber line="75"/><codeline>      <highlight class="keywordflow">return</highlight> SystemImpl::instance();</codeline>
+<linenumber line="76"/><codeline>}<highlight class="comment">// getInstance()</highlight></codeline>
+<linenumber line="77"/><codeline></codeline>
+<linenumber line="78" refid="classsf_1_1system_1_1SystemImpl_1r1"/><codeline><highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> SystemImpl::smAppName[] = <highlight class="stringliteral">&quot;Shooting Game!&quot;</highlight>;   <highlight class="comment">// constant</highlight></codeline>
+<linenumber line="79"/><codeline></codeline>
+<linenumber line="80"/><codeline><highlight class="comment">// \\81E\o\\81\8b\e\E\o\N\?!?\o?oA?AT?e???a?I\T\\81P\i</highlight></codeline>
+<linenumber line="81"/><codeline><ref idref="singleton_8h_1a1">IMPLEMENT_SINGLETON</ref>(SystemImpl,SystemImpl);</codeline>
+<linenumber line="82"/><codeline></codeline>
+<linenumber line="83"/><codeline><highlight class="comment">// \3\o\1\E\e\\81P\? -------------------------------------------------------------</highlight></codeline>
+<linenumber line="84"/><codeline>SystemImpl::SystemImpl()</codeline>
+<linenumber line="85"/><codeline>{</codeline>
+<linenumber line="86"/><codeline>      <highlight class="comment">// ?a?i?a?i?I?e\81Lu2??eIy</highlight></codeline>
+<linenumber line="87"/><codeline>      <ref idref="classsf_1_1system_1_1SystemImpl_1o5">mIsWindowActive</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="88"/><codeline>      <ref idref="classsf_1_1system_1_1SystemImpl_1o1">mpConsole</ref> = NULL;</codeline>
+<linenumber line="89"/><codeline>      <ref idref="classsf_1_1system_1_1SystemImpl_1o2">mpSound</ref> = NULL;</codeline>
+<linenumber line="90"/><codeline>      <ref idref="classsf_1_1system_1_1SystemImpl_1o3">mpInput</ref> = NULL;</codeline>
+<linenumber line="91"/><codeline>      <ref idref="classsf_1_1system_1_1SystemImpl_1o4">mpMain</ref> = NULL;</codeline>
+<linenumber line="92"/><codeline>      <ref idref="classsf_1_1system_1_1SystemImpl_1o7">mTimerInterval</ref> = <ref idref="namespacesf_1_1system_1a2">TIMER_INTERVAL</ref>;</codeline>
+<linenumber line="93"/><codeline>      <ref idref="classsf_1_1system_1_1SystemImpl_1o6">mbWindowed</ref> = <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="94"/><codeline>      <ref idref="classsf_1_1system_1_1SystemImpl_1o10">mTimerElapsed</ref> = 0;</codeline>
+<linenumber line="95"/><codeline>      <ref idref="classsf_1_1system_1_1SystemImpl_1o8">mTimerValue</ref> = timeGetTime();</codeline>
+<linenumber line="96"/><codeline>      <ref idref="classsf_1_1system_1_1SystemImpl_1o9">mTimerBefore</ref> = <ref idref="classsf_1_1system_1_1SystemImpl_1o8">mTimerValue</ref>;</codeline>
+<linenumber line="97"/><codeline></codeline>
+<linenumber line="98"/><codeline>      <ref idref="classsf_1_1system_1_1SystemImpl_1o12">mFrameStep</ref> = (float)(TIMER_INTERVAL) / 32.0f;</codeline>
+<linenumber line="99"/><codeline>      <ref idref="classsf_1_1system_1_1SystemImpl_1o13">mFramePerSec</ref> = 1000.0f / (float)<ref idref="namespacesf_1_1system_1a2">TIMER_INTERVAL</ref>;</codeline>
+<linenumber line="100"/><codeline></codeline>
+<linenumber line="101"/><codeline>     <highlight class="comment">// COM ?I?e\81Lu2?</highlight></codeline>
+<linenumber line="102"/><codeline>     CoInitialize(NULL);</codeline>
+<linenumber line="103"/><codeline></codeline>
+<linenumber line="104"/><codeline>}<highlight class="comment">// SystemImpl()</highlight></codeline>
+<linenumber line="105"/><codeline></codeline>
+<linenumber line="106"/><codeline></codeline>
+<linenumber line="107"/><codeline><highlight class="comment">// \C\1\E\e\\81P\? ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="108"/><codeline>SystemImpl::~SystemImpl()</codeline>
+<linenumber line="109"/><codeline>{</codeline>
+<linenumber line="110"/><codeline>     OutputDebugString(<highlight class="stringliteral">&quot;~SystemImpl()&quot;</highlight>);</codeline>
+<linenumber line="111"/><codeline>     <ref idref="classsf_1_1system_1_1SystemImpl_1c1">uninitialize</ref>();</codeline>
+<linenumber line="112"/><codeline>     CoUninitialize();</codeline>
+<linenumber line="113"/><codeline>}<highlight class="comment">// ~SystemImpl()</highlight></codeline>
+<linenumber line="114"/><codeline></codeline>
+<linenumber line="117" refid="classsf_1_1system_1_1SystemImpl_1c1"/><codeline><highlight class="keywordtype">void</highlight> SystemImpl::uninitialize(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="118"/><codeline>{</codeline>
+<linenumber line="119"/><codeline>     <highlight class="comment">// Console\?\o\?!?\O\\81\98!?\1?I3\81áEu</highlight></codeline>
+<linenumber line="120"/><codeline>     <highlight class="keywordflow">if</highlight>(mpConsole){</codeline>
+<linenumber line="121"/><codeline>             <highlight class="keyword">delete</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1o1">mpConsole</ref>;</codeline>
+<linenumber line="122"/><codeline>             <ref idref="classsf_1_1system_1_1SystemImpl_1o1">mpConsole</ref> = NULL;</codeline>
+<linenumber line="123"/><codeline>     }</codeline>
+<linenumber line="124"/><codeline></codeline>
+<linenumber line="125"/><codeline>     <highlight class="comment">// Main\?\o\?!?\O\\81\98!?\1?I3\81áEu</highlight></codeline>
+<linenumber line="126"/><codeline>     <highlight class="comment">// auto_ptr?E?I?Cdelete?I?E?\81E</highlight></codeline>
+<linenumber line="127"/><codeline>     <highlight class="keywordflow">if</highlight>(mpMain){</codeline>
+<linenumber line="128"/><codeline>     </codeline>
+<linenumber line="129"/><codeline>             <ref idref="classsf_1_1system_1_1SystemImpl_1o4">mpMain</ref> = NULL;</codeline>
+<linenumber line="130"/><codeline>     }</codeline>
+<linenumber line="131"/><codeline></codeline>
+<linenumber line="132"/><codeline>     <highlight class="comment">// Sound\?\o\?!?\O\\81\98!?\1?I3\81áEu</highlight></codeline>
+<linenumber line="133"/><codeline>     <highlight class="keywordflow">if</highlight>(mpSound)</codeline>
+<linenumber line="134"/><codeline>     {</codeline>
+<linenumber line="135"/><codeline>             <highlight class="keyword">delete</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1o2">mpSound</ref>;</codeline>
+<linenumber line="136"/><codeline>             <ref idref="classsf_1_1system_1_1SystemImpl_1o2">mpSound</ref> = NULL;</codeline>
+<linenumber line="137"/><codeline>     }</codeline>
+<linenumber line="138"/><codeline></codeline>
+<linenumber line="139"/><codeline>     <highlight class="comment">// Input\?\o\?!?\O\\81\98!?\1?I3\81áEu</highlight></codeline>
+<linenumber line="140"/><codeline>     <highlight class="keywordflow">if</highlight>(mpInput)</codeline>
+<linenumber line="141"/><codeline>     {</codeline>
+<linenumber line="142"/><codeline>             <highlight class="keyword">delete</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1o3">mpInput</ref>;</codeline>
+<linenumber line="143"/><codeline>             <ref idref="classsf_1_1system_1_1SystemImpl_1o3">mpInput</ref> = NULL;</codeline>
+<linenumber line="144"/><codeline>     }</codeline>
+<linenumber line="145"/><codeline>     </codeline>
+<linenumber line="146"/><codeline>     <highlight class="comment">// WindowMessageMap?I3\81áEu</highlight></codeline>
+<linenumber line="147"/><codeline>     WindowMessageMap::iterator it;</codeline>
+<linenumber line="148"/><codeline>     <highlight class="keywordflow">for</highlight>(it = <ref idref="classsf_1_1system_1_1SystemImpl_1o11">mWindowMessageMap</ref>.begin();it != <ref idref="classsf_1_1system_1_1SystemImpl_1o11">mWindowMessageMap</ref>.end();++it)</codeline>
+<linenumber line="149"/><codeline>     {</codeline>
+<linenumber line="150"/><codeline>             <highlight class="keywordflow">if</highlight>((*it).second){</codeline>
+<linenumber line="151"/><codeline>                     <highlight class="keyword">delete</highlight> ((*it).second);</codeline>
+<linenumber line="152"/><codeline>             }</codeline>
+<linenumber line="153"/><codeline>     }</codeline>
+<linenumber line="154"/><codeline>     <ref idref="classsf_1_1system_1_1SystemImpl_1o11">mWindowMessageMap</ref>.erase(<ref idref="classsf_1_1system_1_1SystemImpl_1o11">mWindowMessageMap</ref>.begin(),<ref idref="classsf_1_1system_1_1SystemImpl_1o11">mWindowMessageMap</ref>.end());</codeline>
+<linenumber line="155"/><codeline></codeline>
+<linenumber line="156"/><codeline>}</codeline>
+<linenumber line="157"/><codeline></codeline>
+<linenumber line="158"/><codeline><highlight class="comment">// Windows\a\?\o --------------------------------------------------------------</highlight></codeline>
+<linenumber line="159"/><codeline><highlight class="comment">// Windows?\81P?A?\83Ê??EoE\81Ê</highlight></codeline>
+<linenumber line="160" refid="classsf_1_1system_1_1SystemImpl_1a1"/><codeline><highlight class="keywordtype">int</highlight> SystemImpl::winMain (<highlight class="keyword">const</highlight> HINSTANCE hThisInstance, <highlight class="keyword">const</highlight> HINSTANCE hPrevInstance,</codeline>
+<linenumber line="161"/><codeline>                                     <highlight class="keyword">const</highlight> LPSTR lpszCmdParam, <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> nCmdShow)</codeline>
+<linenumber line="162"/><codeline>{</codeline>
+<linenumber line="163"/><codeline>     MSG msg;</codeline>
+<linenumber line="164"/><codeline></codeline>
+<linenumber line="165"/><codeline>     <highlight class="comment">//   HWND mHWNDMain;</highlight></codeline>
+<linenumber line="166"/><codeline>     <highlight class="comment">// \C\D\A\\81\8bIN</highlight></codeline>
+<linenumber line="167"/><codeline></codeline>
+<linenumber line="168"/><codeline></codeline>
+<linenumber line="169"/><codeline>     <ref idref="classsf_1_1system_1_1SystemImpl_1c5">setupMessageMap</ref>();</codeline>
+<linenumber line="170"/><codeline></codeline>
+<linenumber line="171"/><codeline>     <highlight class="comment">//\|\\81\92\o\E\|\\81P\e\1?IADI?//</highlight></codeline>
+<linenumber line="172"/><codeline>     </codeline>
+<linenumber line="173"/><codeline>     <highlight class="comment">//Co\U\A!c?I\|\?\o\E\|?ooiAR?1?e!\81\92</highlight></codeline>
+<linenumber line="174"/><codeline>     WNDCLASS    wndclass;</codeline>
+<linenumber line="175"/><codeline>    </codeline>
+<linenumber line="176"/><codeline>     wndclass.style         = CS_DBLCLKS;   </codeline>
+<linenumber line="177"/><codeline>     wndclass.lpfnWndProc   = &amp;<ref idref="classsf_1_1system_1_1SystemImpl_1d0">wndFunc</ref>;    <highlight class="comment">// window function</highlight></codeline>
+<linenumber line="178"/><codeline>     wndclass.cbClsExtra    = 0;                      <highlight class="comment">// no extra count of bytes</highlight></codeline>
+<linenumber line="179"/><codeline>     wndclass.cbWndExtra    = 0;                      <highlight class="comment">// no extra count of bytes</highlight></codeline>
+<linenumber line="180"/><codeline>     wndclass.hInstance     = hThisInstance; <highlight class="comment">// this instance</highlight></codeline>
+<linenumber line="181"/><codeline>     wndclass.hIcon         = LoadIcon (hThisInstance,  MAKEINTRESOURCE(IDI_ICON1));</codeline>
+<linenumber line="182"/><codeline>     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW);</codeline>
+<linenumber line="183"/><codeline>     wndclass.hbrBackground = (HBRUSH)GetStockObject (WHITE_BRUSH);</codeline>
+<linenumber line="184"/><codeline>     wndclass.lpszMenuName  = NULL;          <highlight class="comment">//\a\E\a!??E?\81E?I\|\?\o\E\|</highlight></codeline>
+<linenumber line="185"/><codeline>     <highlight class="comment">//MAKEINTRESOURCE (IDR_MENU1);;</highlight></codeline>
+<linenumber line="186"/><codeline>    wndclass.lpszClassName = <ref idref="classsf_1_1system_1_1SystemImpl_1r1">smAppName</ref>;       <highlight class="comment">// \\81\91\\81~\e?II?A\81\8b</highlight></codeline>
+<linenumber line="187"/><codeline>   </codeline>
+<linenumber line="188"/><codeline>     RegisterClass (&amp;wndclass);</codeline>
+<linenumber line="189"/><codeline><highlight class="comment">//WS_EX_TOPMOST</highlight></codeline>
+<linenumber line="190"/><codeline>     <highlight class="comment">//!!?3?IEO?I?U?o?E?IConsole\\81P\e\1?I?AAo\\81P\e\1?EAt?i?????I?A?\81Ê...  </highlight></codeline>
+<linenumber line="191"/><codeline>    <ref idref="classsf_1_1system_1_1SystemImpl_1o0">mHWNDMain</ref> = CreateWindowEx (</codeline>
+<linenumber line="192"/><codeline>             WS_EX_APPWINDOW,                                <highlight class="comment">// window style</highlight></codeline>
+<linenumber line="193"/><codeline>             <ref idref="classsf_1_1system_1_1SystemImpl_1r1">smAppName</ref>,                                       <highlight class="comment">// window class name</highlight></codeline>
+<linenumber line="194"/><codeline>             <ref idref="classsf_1_1system_1_1SystemImpl_1r1">smAppName</ref>,       <highlight class="comment">// window caption</highlight></codeline>
+<linenumber line="195"/><codeline>             WS_VISIBLE | WS_POPUP | WS_SYSMENU, <highlight class="comment">// window style</highlight></codeline>
+<linenumber line="196"/><codeline>             CW_USEDEFAULT,                  <highlight class="comment">// initial x position</highlight></codeline>
+<linenumber line="197"/><codeline>             CW_USEDEFAULT,         <highlight class="comment">// initial y position</highlight></codeline>
+<linenumber line="198"/><codeline>             console::screen::WIDTH,                   <highlight class="comment">// initial x size</highlight></codeline>
+<linenumber line="199"/><codeline>             console::screen::HEIGHT,                   <highlight class="comment">// initial y size</highlight></codeline>
+<linenumber line="200"/><codeline>             NULL,                  <highlight class="comment">// parent window handle</highlight></codeline>
+<linenumber line="201"/><codeline>             NULL,                  <highlight class="comment">// window menu handle</highlight></codeline>
+<linenumber line="202"/><codeline>             hThisInstance,         <highlight class="comment">// program instance handle</highlight></codeline>
+<linenumber line="203"/><codeline>             NULL);                 <highlight class="comment">// creation parameters</highlight></codeline>
+<linenumber line="204"/><codeline></codeline>
+<linenumber line="205"/><codeline>    <highlight class="comment">// oi?i?E???i1c ?aI\81â</highlight></codeline>
+<linenumber line="206"/><codeline>     <highlight class="keywordflow">if</highlight> (!<ref idref="classsf_1_1system_1_1SystemImpl_1o0">mHWNDMain</ref>)</codeline>
+<linenumber line="207"/><codeline>             <highlight class="keywordflow">return</highlight> FALSE;</codeline>
+<linenumber line="208"/><codeline></codeline>
+<linenumber line="209"/><codeline>     ShowWindow (<ref idref="classsf_1_1system_1_1SystemImpl_1o0">mHWNDMain</ref>, nCmdShow);</codeline>
+<linenumber line="210"/><codeline>     UpdateWindow (<ref idref="classsf_1_1system_1_1SystemImpl_1o0">mHWNDMain</ref>);</codeline>
+<linenumber line="211"/><codeline>     SetFocus(<ref idref="classsf_1_1system_1_1SystemImpl_1o0">mHWNDMain</ref>);</codeline>
+<linenumber line="212"/><codeline></codeline>
+<linenumber line="213"/><codeline>     </codeline>
+<linenumber line="214"/><codeline></codeline>
+<linenumber line="215"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="216"/><codeline><highlight class="preprocessor"></highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1o6">mbWindowed</ref> = <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="217"/><codeline><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="218"/><codeline><highlight class="preprocessor"></highlight> <highlight class="keywordflow">try</highlight> {</codeline>
+<linenumber line="219"/><codeline>             <highlight class="comment">// 2eII\a\O\\81C\\81\98\\81P\E?oA\81CAR </highlight></codeline>
+<linenumber line="220"/><codeline>             <ref idref="classsf_1_1system_1_1SystemImpl_1o1">mpConsole</ref> = <highlight class="keyword">new</highlight> console::ConsoleImpl(<ref idref="classsf_1_1system_1_1SystemImpl_1o0">mHWNDMain</ref>,<ref idref="classsf_1_1system_1_1SystemImpl_1o6">mbWindowed</ref>);</codeline>
+<linenumber line="221"/><codeline>             <ref idref="classsf_1_1system_1_1SystemImpl_1o1">mpConsole</ref>-&gt;initialize();</codeline>
+<linenumber line="222"/><codeline>             </codeline>
+<linenumber line="223"/><codeline>             <highlight class="comment">// \\83Ê\|\o\E\a\O\\81C\\81\98\\81P\E?oA\81CAR</highlight></codeline>
+<linenumber line="224"/><codeline>             <ref idref="classsf_1_1system_1_1SystemImpl_1o2">mpSound</ref> = <highlight class="keyword">new</highlight> sound::SoundImpl();</codeline>
+<linenumber line="225"/><codeline>             <ref idref="classsf_1_1system_1_1SystemImpl_1o2">mpSound</ref>-&gt;initialize();</codeline>
+<linenumber line="226"/><codeline>     </codeline>
+<linenumber line="227"/><codeline>             <highlight class="comment">// \?\o\\81~\A\E\C\D\?\1\a\O\\81C\\81\98\\81P\E?IA\81CAR</highlight></codeline>
+<linenumber line="228"/><codeline>             <ref idref="classsf_1_1system_1_1SystemImpl_1o3">mpInput</ref> = <highlight class="keyword">new</highlight> input::InputImpl(<ref idref="classsf_1_1system_1_1SystemImpl_1o0">mHWNDMain</ref>);</codeline>
+<linenumber line="229"/><codeline>             <ref idref="classsf_1_1system_1_1SystemImpl_1o3">mpInput</ref>-&gt;initialize();</codeline>
+<linenumber line="230"/><codeline></codeline>
+<linenumber line="231"/><codeline>             <highlight class="comment">//2eII?\81ÊIi?AAa?\81P?T?C...    </highlight></codeline>
+<linenumber line="232"/><codeline>             Sleep(3000);</codeline>
+<linenumber line="233"/><codeline></codeline>
+<linenumber line="234"/><codeline>             <highlight class="comment">// \a\?\o\a\O\\81C\\81\98\\81P\E?IA\81CAR</highlight></codeline>
+<linenumber line="235"/><codeline><highlight class="comment">//                mpMain = ::sf::application::MainFactory::getInstance();</highlight></codeline>
+<linenumber line="236"/><codeline>             <ref idref="classsf_1_1system_1_1SystemImpl_1o4">mpMain</ref>-&gt;initialize();</codeline>
+<linenumber line="237"/><codeline></codeline>
+<linenumber line="238"/><codeline>     } <highlight class="keywordflow">catch</highlight> (FatalErrorException&amp; e) {</codeline>
+<linenumber line="239"/><codeline>             <ref idref="classsf_1_1system_1_1SystemImpl_1a4">errorTerminate</ref>(e.getDefaultMessage());</codeline>
+<linenumber line="240"/><codeline>             <highlight class="keywordflow">return</highlight> FALSE;</codeline>
+<linenumber line="241"/><codeline>     } <highlight class="keywordflow">catch</highlight> (RecoverbleErrorException&amp; e) {</codeline>
+<linenumber line="242"/><codeline>             <highlight class="keyword">using</highlight> <highlight class="keyword">namespace </highlight>sf::system;</codeline>
+<linenumber line="243"/><codeline>             switch(e.errorType()){</codeline>
+<linenumber line="244"/><codeline>             <highlight class="keywordflow">case</highlight> Exception::SCENE_IS_EMPTY:</codeline>
+<linenumber line="245"/><codeline>                     <highlight class="keywordflow">return</highlight> TRUE;</codeline>
+<linenumber line="246"/><codeline>                     <highlight class="keywordflow">break</highlight>;</codeline>
+<linenumber line="247"/><codeline>             <highlight class="keywordflow">default</highlight>:</codeline>
+<linenumber line="248"/><codeline>                     <highlight class="keywordflow">throw</highlight>;</codeline>
+<linenumber line="249"/><codeline>             }</codeline>
+<linenumber line="250"/><codeline>     } <highlight class="keywordflow">catch</highlight> (...) {</codeline>
+<linenumber line="251"/><codeline>             <highlight class="keywordflow">throw</highlight>;</codeline>
+<linenumber line="252"/><codeline>     }</codeline>
+<linenumber line="253"/><codeline>     </codeline>
+<linenumber line="254"/><codeline>     <highlight class="comment">// \?\?\T!??IE\81Ê2oC??o?\81\91?2?e?eIy</highlight></codeline>
+<linenumber line="255"/><codeline>     <ref idref="classsf_1_1system_1_1SystemImpl_1c4">initTimer</ref>();</codeline>
+<linenumber line="256"/><codeline>     </codeline>
+<linenumber line="257"/><codeline><highlight class="comment">//        HANDLE hProcess;</highlight></codeline>
+<linenumber line="258"/><codeline><highlight class="comment">//        hProcess = GetCurrentProcess();</highlight></codeline>
+<linenumber line="259"/><codeline><highlight class="comment">//        SetPriorityClass(hProcess,CRITICAL_PRIORITY_CLASS);</highlight></codeline>
+<linenumber line="260"/><codeline></codeline>
+<linenumber line="261"/><codeline>     <highlight class="comment">// \a\A\\81â!?\\81C\e!?\\81~</highlight></codeline>
+<linenumber line="262"/><codeline>     <highlight class="comment">// ?A?c?A?E?3?IEO?\81Ê!\81\91EaAI?IWindows\\81\91\\81~\e?E\81\8ba?|EoE\81Ê!\81\92</highlight></codeline>
+<linenumber line="263"/><codeline>     <highlight class="comment">//  Window\a\A\\81â!?\\81C?\81Ê?E???i1c?I!\81\91\a\?\o?o\81CA?O?D?1!\81\92</highlight></codeline>
+<linenumber line="264"/><codeline>     <highlight class="keywordflow">while</highlight>(1)</codeline>
+<linenumber line="265"/><codeline>     {</codeline>
+<linenumber line="266"/><codeline>             <highlight class="keywordflow">if</highlight> (PeekMessage( &amp;msg, NULL, 0, 0, PM_NOREMOVE))</codeline>
+<linenumber line="267"/><codeline>             {</codeline>
+<linenumber line="268"/><codeline>                     <highlight class="keywordflow">if</highlight> (!GetMessage( &amp;msg, NULL, 0, 0))</codeline>
+<linenumber line="269"/><codeline>                     {</codeline>
+<linenumber line="270"/><codeline>                             <highlight class="keywordflow">return</highlight> msg.wParam;</codeline>
+<linenumber line="271"/><codeline>                     }</codeline>
+<linenumber line="272"/><codeline>                     TranslateMessage(&amp;msg);</codeline>
+<linenumber line="273"/><codeline>                     DispatchMessage(&amp;msg);</codeline>
+<linenumber line="274"/><codeline>             }</codeline>
+<linenumber line="275"/><codeline>             <highlight class="keywordflow">else</highlight>        </codeline>
+<linenumber line="276"/><codeline>             {</codeline>
+<linenumber line="277"/><codeline>                     <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1SystemImpl_1c2">isWindowActive</ref>())</codeline>
+<linenumber line="278"/><codeline>                     {</codeline>
+<linenumber line="279"/><codeline>                             <highlight class="keywordflow">try</highlight>{</codeline>
+<linenumber line="280"/><codeline>                                     <ref idref="classsf_1_1system_1_1SystemImpl_1a3">wait</ref>();</codeline>
+<linenumber line="281"/><codeline>                                     <highlight class="comment">// 2eII11?\81E </highlight></codeline>
+<linenumber line="282"/><codeline>                                     <ref idref="classsf_1_1system_1_1SystemImpl_1o1">mpConsole</ref>-&gt;update();</codeline>
+<linenumber line="283"/><codeline>                                     <highlight class="comment">// AtII\C\D\?\1?I\1\E\A\\81~\\81E\c\A\E?o?eAA</highlight></codeline>
+<linenumber line="284"/><codeline>                                     <ref idref="classsf_1_1system_1_1SystemImpl_1o3">mpInput</ref>-&gt;update();</codeline>
+<linenumber line="285"/><codeline>                                     <ref idref="classsf_1_1system_1_1SystemImpl_1o2">mpSound</ref>-&gt;update();</codeline>
+<linenumber line="286"/><codeline>                                     </codeline>
+<linenumber line="287"/><codeline>                                     <ref idref="classsf_1_1system_1_1SystemImpl_1o4">mpMain</ref>-&gt;run();</codeline>
+<linenumber line="288"/><codeline><highlight class="comment">//#ifdef _DEBUG</highlight></codeline>
+<linenumber line="289"/><codeline>                                     <ref idref="classsf_1_1system_1_1SystemImpl_1o1">mpConsole</ref>-&gt;print(0,console::viewport::X + 8,0.0f,0.0f,1.0f,0xffffffff,<highlight class="stringliteral">&quot;%d ms &quot;</highlight>,<ref idref="classsf_1_1system_1_1SystemImpl_1o10">mTimerElapsed</ref>);</codeline>
+<linenumber line="290"/><codeline><highlight class="comment">//#endif</highlight></codeline>
+<linenumber line="291"/><codeline>                                     <highlight class="comment">// ?eIy\81ât\81LO</highlight></codeline>
+<linenumber line="292"/><codeline>                                     <ref idref="classsf_1_1system_1_1SystemImpl_1o10">mTimerElapsed</ref> = timeGetTime() - <ref idref="classsf_1_1system_1_1SystemImpl_1o8">mTimerValue</ref>;</codeline>
+<linenumber line="293"/><codeline>                                     } <highlight class="keywordflow">catch</highlight> (FatalErrorException e) {</codeline>
+<linenumber line="294"/><codeline>                                             <highlight class="keyword">delete</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1o1">mpConsole</ref>;</codeline>
+<linenumber line="295"/><codeline>                                             <ref idref="classsf_1_1system_1_1SystemImpl_1o1">mpConsole</ref> = NULL;</codeline>
+<linenumber line="296"/><codeline>                                             <ref idref="classsf_1_1system_1_1SystemImpl_1a4">errorTerminate</ref>(e.getDefaultMessage());</codeline>
+<linenumber line="297"/><codeline>                                             <ref idref="classsf_1_1system_1_1SystemImpl_1c3">windowActivate</ref>(<highlight class="keyword">false</highlight>);</codeline>
+<linenumber line="298"/><codeline>                                     } <highlight class="keywordflow">catch</highlight> (RecoverbleErrorException e) {</codeline>
+<linenumber line="299"/><codeline>                                             PostMessage( <ref idref="classsf_1_1system_1_1SystemImpl_1o0">mHWNDMain</ref>, WM_CLOSE, 0, 0L );</codeline>
+<linenumber line="300"/><codeline>                                             <ref idref="classsf_1_1system_1_1SystemImpl_1c3">windowActivate</ref>(<highlight class="keyword">false</highlight>);</codeline>
+<linenumber line="301"/><codeline>                                     } <highlight class="keywordflow">catch</highlight> (...) {</codeline>
+<linenumber line="302"/><codeline>                                             <highlight class="keywordflow">throw</highlight>;</codeline>
+<linenumber line="303"/><codeline>                                     }</codeline>
+<linenumber line="304"/><codeline>                     }</codeline>
+<linenumber line="305"/><codeline>             } </codeline>
+<linenumber line="306"/><codeline>     }</codeline>
+<linenumber line="307"/><codeline>}</codeline>
+<linenumber line="308"/><codeline></codeline>
+<linenumber line="309"/><codeline><highlight class="comment">// Window Function ------------------------------------------------------------</highlight></codeline>
+<linenumber line="310"/><codeline><highlight class="comment">//        ?U?o?E?E?\81áE\81Ê?I?i?\81á?eEI\81\8bI?IoCAa\81CA?I\?\U\o\E?eIy?\81E?\81á?\81E?A???E???I?C\81LEA\81}?C?1!\81\92</highlight></codeline>
+<linenumber line="311" refid="classsf_1_1system_1_1SystemImpl_1d0"/><codeline>LRESULT CALLBACK SystemImpl::wndFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)</codeline>
+<linenumber line="312"/><codeline>{</codeline>
+<linenumber line="313"/><codeline>     <highlight class="comment">// iSystem\?\o\?!?\O\\81\98!?\1?I?T?T?C?I!\81\91\81÷n?Y\\81P\e\1?I\\81~\e\?\U!?\E\a\?\A\E?\81Ê</highlight></codeline>
+<linenumber line="314"/><codeline>     <highlight class="comment">// \81CA?O?D?\81â?E???I?C!\81\91\A\?\E\s\A\\81P\-\a\1\E</highlight></codeline>
+<linenumber line="315"/><codeline>     </codeline>
+<linenumber line="316"/><codeline>     SystemImpl *pSysSystemImpl = dynamic_cast&lt;SystemImpl *&gt;(<ref idref="namespacesf_1_1system_1a4">instance</ref>());</codeline>
+<linenumber line="317"/><codeline>     </codeline>
+<linenumber line="318"/><codeline>     <highlight class="keywordflow">if</highlight>(pSysSystemImpl == NULL)</codeline>
+<linenumber line="319"/><codeline>             <highlight class="keywordflow">return</highlight> DefWindowProc (hwnd, message, wParam, lParam);</codeline>
+<linenumber line="320"/><codeline></codeline>
+<linenumber line="321"/><codeline>     WindowMessage *pmessage = pSysSystemImpl-&gt;mWindowMessageMap[message]; </codeline>
+<linenumber line="322"/><codeline></codeline>
+<linenumber line="323"/><codeline>     <highlight class="keywordflow">if</highlight>(pmessage)</codeline>
+<linenumber line="324"/><codeline>             <highlight class="keywordflow">return</highlight> pmessage-&gt;call(hwnd,wParam,lParam);</codeline>
+<linenumber line="325"/><codeline>     </codeline>
+<linenumber line="326"/><codeline>     <highlight class="comment">// messageE\81Ê\81Lo </highlight></codeline>
+<linenumber line="327"/><codeline>     <highlight class="keywordflow">switch</highlight> (message)</codeline>
+<linenumber line="328"/><codeline>     {</codeline>
+<linenumber line="329"/><codeline>        <highlight class="keywordflow">case</highlight> WM_SYSCOMMAND:</codeline>
+<linenumber line="330"/><codeline>                     <highlight class="keywordflow">return</highlight> pSysSystemImpl-&gt;onSysCommand(hwnd,wParam,lParam);</codeline>
+<linenumber line="331"/><codeline>             <highlight class="comment">// ?aI\81â?1?e?E?-?I?eIy</highlight></codeline>
+<linenumber line="332"/><codeline>             <highlight class="keywordflow">case</highlight> WM_CLOSE:</codeline>
+<linenumber line="333"/><codeline>                     pSysSystemImpl-&gt;uninitialize();</codeline>
+<linenumber line="334"/><codeline>             DestroyWindow( hwnd );</codeline>
+<linenumber line="335"/><codeline>                     <highlight class="keywordflow">return</highlight> 0;</codeline>
+<linenumber line="336"/><codeline>        <highlight class="keywordflow">case</highlight> WM_DESTROY:</codeline>
+<linenumber line="337"/><codeline>               PostQuitMessage(0);      <highlight class="comment">//terminate the application</highlight></codeline>
+<linenumber line="338"/><codeline>               <highlight class="keywordflow">return</highlight> 0;</codeline>
+<linenumber line="339"/><codeline>             <highlight class="keywordflow">default</highlight>:</codeline>
+<linenumber line="340"/><codeline>                     <highlight class="keywordflow">break</highlight>;</codeline>
+<linenumber line="341"/><codeline>    }</codeline>
+<linenumber line="342"/><codeline></codeline>
+<linenumber line="343"/><codeline>     <highlight class="comment">// ???IA??IWindows?E?aC??\81â </highlight></codeline>
+<linenumber line="344"/><codeline>    <highlight class="keywordflow">return</highlight> DefWindowProc (hwnd, message, wParam, lParam);</codeline>
+<linenumber line="345"/><codeline>}<highlight class="comment">// WndFunc</highlight></codeline>
+<linenumber line="346"/><codeline></codeline>
+<linenumber line="347"/><codeline><highlight class="comment">// Windows?\81á?e?IEA2eI\81~\83Êa --------------------------------------------------</highlight></codeline>
+<linenumber line="348" refid="classsf_1_1system_1_1SystemImpl_1c11"/><codeline>LRESULT SystemImpl::onPaint(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam)</codeline>
+<linenumber line="349"/><codeline>{</codeline>
+<linenumber line="350"/><codeline><highlight class="comment">//   return DefWindowProc (hwnd, WM_PAINT, wParam, lParam);</highlight></codeline>
+<linenumber line="351"/><codeline>     <highlight class="keywordflow">if</highlight>(!<ref idref="classsf_1_1system_1_1SystemImpl_1o1">mpConsole</ref> || !<ref idref="classsf_1_1system_1_1SystemImpl_1o1">mpConsole</ref>-&gt;isEnabled())</codeline>
+<linenumber line="352"/><codeline>             {</codeline>
+<linenumber line="353"/><codeline>                     PAINTSTRUCT ps;</codeline>
+<linenumber line="354"/><codeline>                     HDC hDC = BeginPaint (hwnd, &amp;ps);</codeline>
+<linenumber line="355"/><codeline>                     std::string strMessage(<highlight class="stringliteral">&quot;?e\81Lu2?Aa&quot;</highlight>);</codeline>
+<linenumber line="356"/><codeline>                     TextOut(hDC,0,0,strMessage.c_str(),strMessage.length());</codeline>
+<linenumber line="357"/><codeline>                     EndPaint(hwnd, &amp;ps );       </codeline>
+<linenumber line="358"/><codeline>             }</codeline>
+<linenumber line="359"/><codeline>     ValidateRect(hwnd,NULL);                </codeline>
+<linenumber line="360"/><codeline>     <highlight class="keywordflow">return</highlight> 1;</codeline>
+<linenumber line="361"/><codeline>}<highlight class="comment">// onPaint()</highlight></codeline>
+<linenumber line="362"/><codeline></codeline>
+<linenumber line="363"/><codeline><highlight class="comment">// Window?\81Ê\\81\91\\81P\A\\81\92\O!\81\91Eo\\81\91\\81P\A\\81\92\O\81ât?I?eIy -----------------------------------</highlight></codeline>
+<linenumber line="364" refid="classsf_1_1system_1_1SystemImpl_1c8"/><codeline>LRESULT SystemImpl::onActivate(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam)</codeline>
+<linenumber line="365"/><codeline>{</codeline>
+<linenumber line="366"/><codeline>     <highlight class="keywordflow">if</highlight>((BOOL)wParam){</codeline>
+<linenumber line="367"/><codeline>             <ref idref="classsf_1_1system_1_1SystemImpl_1c3">windowActivate</ref>(<highlight class="keyword">true</highlight>);</codeline>
+<linenumber line="368"/><codeline>     } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="369"/><codeline>             <ref idref="classsf_1_1system_1_1SystemImpl_1c3">windowActivate</ref>(<highlight class="keyword">false</highlight>);</codeline>
+<linenumber line="370"/><codeline>     }</codeline>
+<linenumber line="371"/><codeline>     <highlight class="keywordflow">return</highlight> 0;</codeline>
+<linenumber line="372"/><codeline>}</codeline>
+<linenumber line="373"/><codeline></codeline>
+<linenumber line="374"/><codeline></codeline>
+<linenumber line="375"/><codeline><highlight class="comment">// \a\E\a!?AaAo?I\81ât -----------------------------------------------------------</highlight></codeline>
+<linenumber line="376" refid="classsf_1_1system_1_1SystemImpl_1c7"/><codeline>LRESULT SystemImpl::onCommand(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam)</codeline>
+<linenumber line="377"/><codeline>{</codeline>
+<linenumber line="378"/><codeline>     <highlight class="comment">// \81C?os?II\83Ê\81âe?oAO</highlight></codeline>
+<linenumber line="379"/><codeline>    <highlight class="comment">// Let Default Window Proc handle it for us.</highlight></codeline>
+<linenumber line="380"/><codeline>    <highlight class="keywordflow">return</highlight> DefWindowProc (hwnd, WM_COMMAND, wParam, lParam);</codeline>
+<linenumber line="381"/><codeline>} <highlight class="comment">// onCommand</highlight></codeline>
+<linenumber line="382"/><codeline></codeline>
+<linenumber line="383"/><codeline></codeline>
+<linenumber line="384"/><codeline></codeline>
+<linenumber line="385"/><codeline><highlight class="comment">// \\83Ê\?\oEN11\?\U\o\E ---------------------------------------------------------</highlight></codeline>
+<linenumber line="386" refid="classsf_1_1system_1_1SystemImpl_1c10"/><codeline>LRESULT SystemImpl::onSize(<highlight class="keyword">const</highlight> HWND hwnd,<highlight class="keyword">const</highlight> WPARAM wParam,<highlight class="keyword">const</highlight> LPARAM lParam)</codeline>
+<linenumber line="387"/><codeline>{</codeline>
+<linenumber line="388"/><codeline>     <highlight class="keywordflow">return</highlight> 0;</codeline>
+<linenumber line="389"/><codeline>}<highlight class="comment">// onSize()</highlight></codeline>
+<linenumber line="390"/><codeline></codeline>
+<linenumber line="391"/><codeline><highlight class="comment">// </highlight></codeline>
+<linenumber line="392" refid="classsf_1_1system_1_1SystemImpl_1c12"/><codeline>LRESULT         SystemImpl::onSysCommand(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam)</codeline>
+<linenumber line="393"/><codeline>{</codeline>
+<linenumber line="394"/><codeline>       <highlight class="comment">// Prevent moving/sizing and power loss in fullscreen mode</highlight></codeline>
+<linenumber line="395"/><codeline>     <highlight class="keywordflow">switch</highlight>( wParam )</codeline>
+<linenumber line="396"/><codeline>     {</codeline>
+<linenumber line="397"/><codeline>     <highlight class="keywordflow">case</highlight> SC_MOVE:</codeline>
+<linenumber line="398"/><codeline>     <highlight class="keywordflow">case</highlight> SC_SIZE:</codeline>
+<linenumber line="399"/><codeline>     <highlight class="keywordflow">case</highlight> SC_MAXIMIZE:</codeline>
+<linenumber line="400"/><codeline>     <highlight class="keywordflow">case</highlight> SC_KEYMENU:</codeline>
+<linenumber line="401"/><codeline>     <highlight class="keywordflow">case</highlight> SC_MONITORPOWER:</codeline>
+<linenumber line="402"/><codeline>             <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1SystemImpl_1o6">mbWindowed</ref> == <highlight class="keyword">false</highlight>)</codeline>
+<linenumber line="403"/><codeline>                     <highlight class="keywordflow">return</highlight> 1;</codeline>
+<linenumber line="404"/><codeline>             <highlight class="keywordflow">break</highlight>;</codeline>
+<linenumber line="405"/><codeline>     }</codeline>
+<linenumber line="406"/><codeline>     <highlight class="keywordflow">return</highlight> DefWindowProc (hwnd, WM_SYSCOMMAND,wParam, lParam);</codeline>
+<linenumber line="407"/><codeline>}</codeline>
+<linenumber line="408"/><codeline></codeline>
+<linenumber line="409"/><codeline></codeline>
+<linenumber line="410"/><codeline><highlight class="comment">// \?\?\T!??I?e\81Lu2??eIy -------------------------------------------------------</highlight></codeline>
+<linenumber line="411" refid="classsf_1_1system_1_1SystemImpl_1c4"/><codeline><highlight class="keywordtype">void</highlight> SystemImpl::initTimer(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="412"/><codeline>{</codeline>
+<linenumber line="413"/><codeline>     <highlight class="keyword">const</highlight> UINT TARGET_RESOLUTION  = 1 ;<highlight class="comment">// 1-millisecond target resolution</highlight></codeline>
+<linenumber line="414"/><codeline></codeline>
+<linenumber line="415"/><codeline>     TIMECAPS tc;</codeline>
+<linenumber line="416"/><codeline>     UINT timer_res;</codeline>
+<linenumber line="417"/><codeline></codeline>
+<linenumber line="418"/><codeline>     <highlight class="keywordflow">if</highlight> (timeGetDevCaps(&amp;tc, <highlight class="keyword">sizeof</highlight>(TIMECAPS)) == TIMERR_NOERROR) </codeline>
+<linenumber line="419"/><codeline>     {</codeline>
+<linenumber line="420"/><codeline>             timer_res = min(max(tc.wPeriodMin, TARGET_RESOLUTION), tc.wPeriodMax);</codeline>
+<linenumber line="421"/><codeline>             timeBeginPeriod(timer_res); </codeline>
+<linenumber line="422"/><codeline>     }</codeline>
+<linenumber line="423"/><codeline>}<highlight class="comment">// initTimer()</highlight></codeline>
+<linenumber line="424"/><codeline></codeline>
+<linenumber line="425"/><codeline><highlight class="comment">// \81âOAe?\81E??tick(ms)?T?C\|\\81\98\?\E ------------------------------------------------</highlight></codeline>
+<linenumber line="426" refid="classsf_1_1system_1_1SystemImpl_1a3"/><codeline><highlight class="keywordtype">void</highlight> SystemImpl::wait(<highlight class="keywordtype">void</highlight>)</codeline>
+<linenumber line="427"/><codeline>{</codeline>
+<linenumber line="428"/><codeline></codeline>
+<linenumber line="429"/><codeline>             <ref idref="namespacesf_1a0">DWORD</ref> now = timeGetTime();</codeline>
+<linenumber line="430"/><codeline>             </codeline>
+<linenumber line="431"/><codeline>             <ref idref="namespacesf_1a0">DWORD</ref> rem = now % <ref idref="classsf_1_1system_1_1SystemImpl_1o7">mTimerInterval</ref>;</codeline>
+<linenumber line="432"/><codeline>             <ref idref="namespacesf_1a0">DWORD</ref> wait_time = (now / <ref idref="classsf_1_1system_1_1SystemImpl_1o7">mTimerInterval</ref> + ((rem &gt; 0)?1:0)) * <ref idref="classsf_1_1system_1_1SystemImpl_1o7">mTimerInterval</ref> ;</codeline>
+<linenumber line="433"/><codeline><highlight class="comment">//                DWORD wait_time = (mTimerValue / mTimerInterval + 1) * mTimerInterval ;</highlight></codeline>
+<linenumber line="434"/><codeline></codeline>
+<linenumber line="435"/><codeline>             <ref idref="namespacesf_1a0">DWORD</ref> wait_time_tick = wait_time - now;</codeline>
+<linenumber line="436"/><codeline></codeline>
+<linenumber line="437"/><codeline>             <highlight class="keywordflow">if</highlight>(wait_time_tick &gt; 4) </codeline>
+<linenumber line="438"/><codeline>                     Sleep(wait_time_tick - 3);</codeline>
+<linenumber line="439"/><codeline></codeline>
+<linenumber line="440"/><codeline>             <highlight class="keywordflow">while</highlight>(wait_time &gt; timeGetTime());</codeline>
+<linenumber line="441"/><codeline>             <ref idref="classsf_1_1system_1_1SystemImpl_1o9">mTimerBefore</ref> = <ref idref="classsf_1_1system_1_1SystemImpl_1o8">mTimerValue</ref>;</codeline>
+<linenumber line="442"/><codeline>             <ref idref="classsf_1_1system_1_1SystemImpl_1o8">mTimerValue</ref> = timeGetTime();</codeline>
+<linenumber line="443"/><codeline></codeline>
+<linenumber line="444"/><codeline>}<highlight class="comment">// wait()</highlight></codeline>
+<linenumber line="445"/><codeline></codeline>
+<linenumber line="446"/><codeline><highlight class="comment">// \\81N\e!??oE??\81N?\81E?A\\81\91\\81~\e\\81}!?\\81E\c\o?o?aI\81â?1?e --------------------------------- </highlight></codeline>
+<linenumber line="447" refid="classsf_1_1system_1_1SystemImpl_1a4"/><codeline><highlight class="keywordtype">void</highlight> SystemImpl::errorTerminate(<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> *errString)</codeline>
+<linenumber line="448"/><codeline>{</codeline>
+<linenumber line="449"/><codeline>     <ref idref="classsf_1_1system_1_1SystemImpl_1a5">outputError</ref>(errString);</codeline>
+<linenumber line="450"/><codeline>     SendMessage( <ref idref="classsf_1_1system_1_1SystemImpl_1o0">mHWNDMain</ref>, WM_CLOSE, 0, 0 );</codeline>
+<linenumber line="451"/><codeline>}<highlight class="comment">// errorTerminate()</highlight></codeline>
+<linenumber line="452"/><codeline></codeline>
+<linenumber line="453"/><codeline><highlight class="comment">// \\81N\e!?E??\81N -----------------------------------------------------------------</highlight></codeline>
+<linenumber line="454" refid="classsf_1_1system_1_1SystemImpl_1a5"/><codeline><highlight class="keywordtype">void</highlight> SystemImpl::outputError(<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> *errString)</codeline>
+<linenumber line="455"/><codeline>{    <highlight class="keywordtype">char</highlight> err_string[512] = <highlight class="stringliteral">&quot;Error Occured!\r\n&quot;</highlight>;</codeline>
+<linenumber line="456"/><codeline>     strncat(err_string,errString,<highlight class="keyword">sizeof</highlight>(err_string) - strlen(err_string));</codeline>
+<linenumber line="457"/><codeline>     MessageBox( NULL, err_string,</codeline>
+<linenumber line="458"/><codeline>             <ref idref="classsf_1_1system_1_1SystemImpl_1r1">smAppName</ref>,</codeline>
+<linenumber line="459"/><codeline>             MB_TOPMOST | MB_SETFOREGROUND | MB_TASKMODAL | MB_ICONERROR | MB_OK );</codeline>
+<linenumber line="460"/><codeline>}<highlight class="comment">// outputError()</highlight></codeline>
+<linenumber line="461"/><codeline></codeline>
+<linenumber line="462"/><codeline><highlight class="comment">// \a\A\\81â!?\\81C\T\A\\81~?I\\81â\A\E\\81\91\A\\81~ !Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y!Y</highlight></codeline>
+<linenumber line="463" refid="classsf_1_1system_1_1SystemImpl_1c5"/><codeline><highlight class="keywordtype">void</highlight> SystemImpl::setupMessageMap()</codeline>
+<linenumber line="464"/><codeline>{</codeline>
+<linenumber line="465"/><codeline><highlight class="comment">/*        mWindowMessageMap[WM_PAINT] = new WindowMessageImpl&lt;SystemImpl&gt;(this,&amp;SystemImpl::onPaint);</highlight></codeline>
+<linenumber line="466"/><codeline><highlight class="comment">  mWindowMessageMap[WM_ACTIVATEAPP] = new WindowMessageImpl&lt;SystemImpl&gt;(this,&amp;SystemImpl::onActivate);</highlight></codeline>
+<linenumber line="467"/><codeline><highlight class="comment">  mWindowMessageMap[WM_COMMAND] = new WindowMessageImpl&lt;SystemImpl&gt;(this,&amp;SystemImpl::onCommand);</highlight></codeline>
+<linenumber line="468"/><codeline><highlight class="comment">//        mWindowMessageMap[WM_KEYDOWN] = new WindowMessageImpl&lt;SystemImpl&gt;(this,&amp;SystemImpl::onKeyDown);</highlight></codeline>
+<linenumber line="469"/><codeline><highlight class="comment">  mWindowMessageMap[WM_SIZE] = new WindowMessageImpl&lt;SystemImpl&gt;(this,&amp;SystemImpl::onSize);</highlight></codeline>
+<linenumber line="470"/><codeline><highlight class="comment">*/</highlight></codeline>
+<linenumber line="471"/><codeline>     <ref idref="classsf_1_1system_1_1SystemImpl_1a2">addWindowMessage</ref>(WM_PAINT,<highlight class="keyword">new</highlight> WindowMessageImpl&lt;SystemImpl&gt;(<highlight class="keyword">this</highlight>,&amp;SystemImpl::onPaint));</codeline>
+<linenumber line="472"/><codeline>     <ref idref="classsf_1_1system_1_1SystemImpl_1o11">mWindowMessageMap</ref>[WM_ACTIVATEAPP] = <highlight class="keyword">new</highlight> WindowMessageImpl&lt;SystemImpl&gt;(<highlight class="keyword">this</highlight>,&amp;SystemImpl::onActivate);</codeline>
+<linenumber line="473"/><codeline>     <ref idref="classsf_1_1system_1_1SystemImpl_1o11">mWindowMessageMap</ref>[WM_COMMAND] = <highlight class="keyword">new</highlight> WindowMessageImpl&lt;SystemImpl&gt;(<highlight class="keyword">this</highlight>,&amp;SystemImpl::onCommand);</codeline>
+<linenumber line="474"/><codeline><highlight class="comment">//        mWindowMessageMap[WM_KEYDOWN] = new WindowMessageImpl&lt;SystemImpl&gt;(this,&amp;SystemImpl::onKeyDown);</highlight></codeline>
+<linenumber line="475"/><codeline>     <ref idref="classsf_1_1system_1_1SystemImpl_1a2">addWindowMessage</ref>(WM_SIZE,<highlight class="keyword">new</highlight> WindowMessageImpl&lt;SystemImpl&gt;(<highlight class="keyword">this</highlight>,&amp;SystemImpl::onSize));</codeline>
+<linenumber line="476"/><codeline></codeline>
+<linenumber line="477"/><codeline></codeline>
+<linenumber line="478"/><codeline>}<highlight class="comment">//setupMessageMap()</highlight></codeline>
+<linenumber line="479"/><codeline></codeline>
+<linenumber line="480"/><codeline></codeline>
+<linenumber line="481"/><codeline>}</codeline>
+<linenumber line="482"/><codeline>}<highlight class="comment">// namespace sf</highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/SystemImpl.cpp"/>
+  </compounddef>
+  <compounddef id="SystemImpl_8h" kind="file">
+    <compoundname>SystemImpl.h</compoundname>
+    <includes id="sf_8h" local="yes">sf.h</includes>
+    <includedby id="InputImpl_8cpp" local="yes">InputImpl.cpp</includedby>
+    <includedby id="sfglib_8cpp" local="yes">sfglib.cpp</includedby>
+    <includedby id="System_8cpp" local="yes">System.cpp</includedby>
+    <includedby id="SystemImpl_8cpp" local="yes">SystemImpl.cpp</includedby>
+    <incdepgraph>
+      <node id="842">
+        <label>SystemImpl.h</label>
+        <link id="SystemImpl.h"/>
+        <childnode id="843" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="843">
+        <label>sf.h</label>
+        <link id="sf_8h-source"/>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="846">
+        <label>sfglib.cpp</label>
+        <link id="sfglib_8cpp-source"/>
+      </node>
+      <node id="848">
+        <label>SystemImpl.cpp</label>
+        <link id="SystemImpl_8cpp-source"/>
+      </node>
+      <node id="845">
+        <label>InputImpl.cpp</label>
+        <link id="InputImpl_8cpp-source"/>
+      </node>
+      <node id="844">
+        <label>SystemImpl.h</label>
+        <link id="SystemImpl.h"/>
+        <childnode id="845" relation="public-inheritance">
+        </childnode>
+        <childnode id="846" relation="public-inheritance">
+        </childnode>
+        <childnode id="847" relation="public-inheritance">
+        </childnode>
+        <childnode id="848" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="847">
+        <label>System.cpp</label>
+        <link id="System_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="SystemImpl_8h_1a0" virt="normal" prot="public">
+        <name>AFX_SystemImpl_H__64DBDEBB_81F1_4542_AAF7_B212CB9F4604__INCLUDED_</name>
+        <briefdescription>
+<para>
+Ao?A\?\o\\81P\e!?\EEE\81âs?I???a?IAe\83ÊA. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemImpl.h" line="14" bodystart="14" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline></codeline>
+<linenumber line="12"/><codeline><highlight class="preprocessor">#if !defined(AFX_SystemImpl_H__64DBDEBB_81F1_4542_AAF7_B212CB9F4604__INCLUDED_)</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="preprocessor">#define AFX_SystemImpl_H__64DBDEBB_81F1_4542_AAF7_B212CB9F4604__INCLUDED_</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;sf.h&quot;</highlight> </codeline>
+<linenumber line="20"/><codeline></codeline>
+<linenumber line="21"/><codeline><highlight class="keyword">namespace </highlight>sf {</codeline>
+<linenumber line="22"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="23"/><codeline><highlight class="keyword">extern</highlight> <highlight class="stringliteral">&quot;C&quot;</highlight> {</codeline>
+<linenumber line="24"/><codeline></codeline>
+<linenumber line="30" refid="classsf_1_1system_1_1SystemImpl_1"/><codeline>    <highlight class="keyword">class </highlight>SystemImpl : <highlight class="keyword">public</highlight> System,sf::system::Win32</codeline>
+<linenumber line="31"/><codeline>              {</codeline>
+<linenumber line="32"/><codeline>                      <highlight class="comment">// Singleton?o?I?\81E?c?e???a?I\T\\81P\i</highlight></codeline>
+<linenumber line="33"/><codeline>                      <ref idref="singleton_8h_1a0">DECLARE_SINGLETON</ref>(SystemImpl)</codeline>
+<linenumber line="34"/><codeline>                      <highlight class="comment">// LIFECYCLE //</highlight></codeline>
+<linenumber line="35"/><codeline>                      SystemImpl();</codeline>
+<linenumber line="36"/><codeline>              <highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="38" refid="classsf_1_1system_1_1SystemImpl_1s0"/><codeline>                  <highlight class="keyword">typedef</highlight> std::map&lt;DWORD,WindowMessage * &gt; <ref idref="classsf_1_1system_1_1SystemImpl_1s0">WindowMessageMap</ref>;</codeline>
+<linenumber line="39"/><codeline></codeline>
+<linenumber line="40"/><codeline>                      <highlight class="keyword">virtual</highlight> ~SystemImpl();</codeline>
+<linenumber line="41"/><codeline>                      <highlight class="comment">// OPERATORS //</highlight></codeline>
+<linenumber line="42"/><codeline>                      <highlight class="comment">// OPERATIONS //</highlight></codeline>
+<linenumber line="45"/><codeline><highlight class="comment"></highlight>                       <highlight class="keywordtype">int</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1a1">winMain</ref> (<highlight class="keyword">const</highlight> HINSTANCE hThisInstance, <highlight class="keyword">const</highlight> HINSTANCE hPrevInstance,</codeline>
+<linenumber line="46"/><codeline>                              <highlight class="keyword">const</highlight> LPSTR lpszCmdParam, <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> nCmdShow);</codeline>
+<linenumber line="47"/><codeline>                      </codeline>
+<linenumber line="49"/><codeline>                      <highlight class="keyword">static</highlight> LRESULT CALLBACK <ref idref="classsf_1_1system_1_1SystemImpl_1d0">wndFunc</ref>(HWND hwnd, UINT message, WPARAM wParam,  LPARAM lParam);</codeline>
+<linenumber line="50"/><codeline>                      </codeline>
+<linenumber line="56" refid="classsf_1_1system_1_1SystemImpl_1a2"/><codeline>                  <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1a2">addWindowMessage</ref>(<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> value,WindowMessage * pWindowMessage)</codeline>
+<linenumber line="57"/><codeline>                      {</codeline>
+<linenumber line="58"/><codeline>                              <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1SystemImpl_1o11">mWindowMessageMap</ref>[value] == NULL){</codeline>
+<linenumber line="59"/><codeline>                                      <ref idref="classsf_1_1system_1_1SystemImpl_1o11">mWindowMessageMap</ref>[value] = pWindowMessage;</codeline>
+<linenumber line="60"/><codeline>                                      <highlight class="keywordflow">return</highlight> <highlight class="keyword">true</highlight>;</codeline>
+<linenumber line="61"/><codeline>                              } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="62"/><codeline>                                      <highlight class="keywordflow">return</highlight> <highlight class="keyword">false</highlight>;</codeline>
+<linenumber line="63"/><codeline>                              }</codeline>
+<linenumber line="64"/><codeline>                      };</codeline>
+<linenumber line="65"/><codeline></codeline>
+<linenumber line="66"/><codeline>                      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1a3">wait</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="67"/><codeline>                      <highlight class="comment">// \\81N\e!?E??\81N?\81E?A?aI\81â</highlight></codeline>
+<linenumber line="68"/><codeline>                      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1a4">errorTerminate</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> *errString);</codeline>
+<linenumber line="69"/><codeline>                      <highlight class="comment">// \\81N\e!?E??\81N</highlight></codeline>
+<linenumber line="70"/><codeline>                      <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1a5">outputError</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> *errString);</codeline>
+<linenumber line="71"/><codeline></codeline>
+<linenumber line="72"/><codeline>                      <highlight class="comment">// ACCESS //</highlight></codeline>
+<linenumber line="73" refid="classsf_1_1system_1_1SystemImpl_1a6"/><codeline>                  <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight>  <ref idref="classsf_1_1system_1_1SystemImpl_1a7">timerInterval</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">unsigned</highlight> <highlight class="keywordtype">long</highlight> msValue){<ref idref="classsf_1_1system_1_1SystemImpl_1o7">mTimerInterval</ref> = msValue;};       </codeline>
+<linenumber line="74" refid="classsf_1_1system_1_1SystemImpl_1a7"/><codeline>                  <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">unsigned</highlight> <highlight class="keywordtype">long</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1a7">timerInterval</ref>(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1o7">mTimerInterval</ref>;};</codeline>
+<linenumber line="75" refid="classsf_1_1system_1_1SystemImpl_1a8"/><codeline>                  <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> <ref idref="classsf_1_1system_1_1SystemImpl_1a8">time</ref> (<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{ <highlight class="keywordflow">return</highlight> timeGetTime();};</codeline>
+<linenumber line="76"/><codeline>                      </codeline>
+<linenumber line="77" refid="classsf_1_1system_1_1SystemImpl_1a9"/><codeline>                  <highlight class="keyword">virtual</highlight> console::Console * <highlight class="keyword">const</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1a9">console</ref>(<highlight class="keywordtype">void</highlight>){ <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1o1">mpConsole</ref>;};</codeline>
+<linenumber line="78" refid="classsf_1_1system_1_1SystemImpl_1a10"/><codeline>                 <highlight class="keyword">virtual</highlight> sound::Sound * <highlight class="keyword">const</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1a10">sound</ref>(<highlight class="keywordtype">void</highlight>){ <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1o2">mpSound</ref>;};</codeline>
+<linenumber line="79" refid="classsf_1_1system_1_1SystemImpl_1a11"/><codeline>                 <highlight class="keyword">virtual</highlight> input::Input * <highlight class="keyword">const</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1a11">input</ref>(<highlight class="keywordtype">void</highlight>){ <highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1o3">mpInput</ref>;};</codeline>
+<linenumber line="80"/><codeline>                      </codeline>
+<linenumber line="81" refid="classsf_1_1system_1_1SystemImpl_1a12"/><codeline>                 <highlight class="keyword">virtual</highlight> application::Main * <highlight class="keyword">const</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1a12">main</ref>(){<highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1o4">mpMain</ref>;}</codeline>
+<linenumber line="82" refid="classsf_1_1system_1_1SystemImpl_1a13"/><codeline>                 <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1a12">main</ref>(application::Main * <highlight class="keyword">const</highlight> pMain ){<ref idref="classsf_1_1system_1_1SystemImpl_1o4">mpMain</ref> = pMain;}</codeline>
+<linenumber line="83"/><codeline></codeline>
+<linenumber line="84"/><codeline>                      <highlight class="comment">// INQUIRY //</highlight></codeline>
+<linenumber line="85" refid="classsf_1_1system_1_1SystemImpl_1a14"/><codeline>                 <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1a14">isActive</ref>(<highlight class="keywordtype">void</highlight>) {<highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1o5">mIsWindowActive</ref>;};</codeline>
+<linenumber line="86" refid="classsf_1_1system_1_1SystemImpl_1a15"/><codeline>                 <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1a15">deltaTime</ref>(<highlight class="keywordtype">void</highlight>){<highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1o12">mFrameStep</ref>;};</codeline>
+<linenumber line="87" refid="classsf_1_1system_1_1SystemImpl_1a16"/><codeline>                 <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">float</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1a16">framePerSec</ref>(<highlight class="keywordtype">void</highlight>){<highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1o13">mFramePerSec</ref>;};</codeline>
+<linenumber line="88"/><codeline>              <highlight class="keyword">private</highlight>:</codeline>
+<linenumber line="91"/><codeline>                      <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1c1">uninitialize</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="92"/><codeline></codeline>
+<linenumber line="96" refid="classsf_1_1system_1_1SystemImpl_1c2"/><codeline>                  <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1c2">isWindowActive</ref>(<highlight class="keywordtype">void</highlight>)<highlight class="keyword"> const </highlight>{<highlight class="keywordflow">return</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1o5">mIsWindowActive</ref>;};</codeline>
+<linenumber line="97"/><codeline></codeline>
+<linenumber line="101" refid="classsf_1_1system_1_1SystemImpl_1c3"/><codeline>                 <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1c3">windowActivate</ref>(<highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> value){<ref idref="classsf_1_1system_1_1SystemImpl_1o5">mIsWindowActive</ref> = value;};</codeline>
+<linenumber line="103"/><codeline>                     <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1c4">initTimer</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="105"/><codeline>                     <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1c5">setupMessageMap</ref>(<highlight class="keywordtype">void</highlight>);</codeline>
+<linenumber line="106"/><codeline>                     </codeline>
+<linenumber line="107"/><codeline></codeline>
+<linenumber line="108"/><codeline>                     <highlight class="comment">// Window Events</highlight></codeline>
+<linenumber line="111"/><codeline><highlight class="comment"></highlight>                      LRESULT         <ref idref="classsf_1_1system_1_1SystemImpl_1c6">onAbout</ref>(<highlight class="keyword">const</highlight> HWND hwnd);</codeline>
+<linenumber line="112"/><codeline></codeline>
+<linenumber line="117"/><codeline>                     LRESULT         <ref idref="classsf_1_1system_1_1SystemImpl_1c7">onCommand</ref>(<highlight class="keyword">const</highlight> HWND hwnd,<highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam);</codeline>
+<linenumber line="118"/><codeline></codeline>
+<linenumber line="123"/><codeline>                     LRESULT         <ref idref="classsf_1_1system_1_1SystemImpl_1c8">onActivate</ref>(<highlight class="keyword">const</highlight> HWND hwnd,<highlight class="keyword">const</highlight> WPARAM wParam,<highlight class="keyword">const</highlight> LPARAM lParam);</codeline>
+<linenumber line="124"/><codeline></codeline>
+<linenumber line="129"/><codeline>                     LRESULT         <ref idref="classsf_1_1system_1_1SystemImpl_1c9">onMove</ref>(<highlight class="keyword">const</highlight> HWND hwnd,<highlight class="keyword">const</highlight> WPARAM wParam,<highlight class="keyword">const</highlight> LPARAM lParam);</codeline>
+<linenumber line="130"/><codeline></codeline>
+<linenumber line="135"/><codeline>                     LRESULT         <ref idref="classsf_1_1system_1_1SystemImpl_1c10">onSize</ref>(<highlight class="keyword">const</highlight> HWND hwnd,<highlight class="keyword">const</highlight> WPARAM wParam,<highlight class="keyword">const</highlight> LPARAM lParam);</codeline>
+<linenumber line="136"/><codeline></codeline>
+<linenumber line="141"/><codeline>                     LRESULT         <ref idref="classsf_1_1system_1_1SystemImpl_1c11">onPaint</ref>(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam);</codeline>
+<linenumber line="142"/><codeline></codeline>
+<linenumber line="147"/><codeline>                     LRESULT         <ref idref="classsf_1_1system_1_1SystemImpl_1c12">onSysCommand</ref>(<highlight class="keyword">const</highlight> HWND hwnd, <highlight class="keyword">const</highlight> WPARAM wParam, <highlight class="keyword">const</highlight> LPARAM lParam);</codeline>
+<linenumber line="148"/><codeline>                     </codeline>
+<linenumber line="149" refid="classsf_1_1system_1_1SystemImpl_1o0"/><codeline>                 HWND            <ref idref="classsf_1_1system_1_1SystemImpl_1o0">mHWNDMain</ref>;</codeline>
+<linenumber line="150"/><codeline></codeline>
+<linenumber line="151" refid="classsf_1_1system_1_1SystemImpl_1o1"/><codeline>                 console::Console        *<ref idref="classsf_1_1system_1_1SystemImpl_1o1">mpConsole</ref>;</codeline>
+<linenumber line="152" refid="classsf_1_1system_1_1SystemImpl_1o2"/><codeline>                 sound::Sound            *<ref idref="classsf_1_1system_1_1SystemImpl_1o2">mpSound</ref>;</codeline>
+<linenumber line="153" refid="classsf_1_1system_1_1SystemImpl_1o3"/><codeline>                 input::Input            *<ref idref="classsf_1_1system_1_1SystemImpl_1o3">mpInput</ref>;</codeline>
+<linenumber line="154"/><codeline></codeline>
+<linenumber line="155" refid="classsf_1_1system_1_1SystemImpl_1o4"/><codeline>                 ::sf::application::Main                 *<ref idref="classsf_1_1system_1_1SystemImpl_1o4">mpMain</ref>;</codeline>
+<linenumber line="156"/><codeline>                     </codeline>
+<linenumber line="157"/><codeline>                                             </codeline>
+<linenumber line="158" refid="classsf_1_1system_1_1SystemImpl_1o5"/><codeline>                 <highlight class="keywordtype">bool</highlight>                 <ref idref="classsf_1_1system_1_1SystemImpl_1o5">mIsWindowActive</ref>;</codeline>
+<linenumber line="159" refid="classsf_1_1system_1_1SystemImpl_1o6"/><codeline>                 <highlight class="keywordtype">bool</highlight>         <ref idref="classsf_1_1system_1_1SystemImpl_1o6">mbWindowed</ref>;</codeline>
+<linenumber line="160"/><codeline>                     </codeline>
+<linenumber line="161" refid="classsf_1_1system_1_1SystemImpl_1o7"/><codeline>                 <ref idref="namespacesf_1a0">DWORD</ref>                <ref idref="classsf_1_1system_1_1SystemImpl_1o7">mTimerInterval</ref>;</codeline>
+<linenumber line="162" refid="classsf_1_1system_1_1SystemImpl_1o8"/><codeline>                 <ref idref="namespacesf_1a0">DWORD</ref>                <ref idref="classsf_1_1system_1_1SystemImpl_1o8">mTimerValue</ref>;</codeline>
+<linenumber line="163" refid="classsf_1_1system_1_1SystemImpl_1o9"/><codeline>                 <ref idref="namespacesf_1a0">DWORD</ref>                <ref idref="classsf_1_1system_1_1SystemImpl_1o9">mTimerBefore</ref>;</codeline>
+<linenumber line="164" refid="classsf_1_1system_1_1SystemImpl_1o10"/><codeline>                        <ref idref="namespacesf_1a0">DWORD</ref>                <ref idref="classsf_1_1system_1_1SystemImpl_1o10">mTimerElapsed</ref>;</codeline>
+<linenumber line="165"/><codeline></codeline>
+<linenumber line="166" refid="classsf_1_1system_1_1SystemImpl_1o11"/><codeline>                        <ref idref="classsf_1_1system_1_1SystemImpl_1s0">WindowMessageMap</ref> <ref idref="classsf_1_1system_1_1SystemImpl_1o11">mWindowMessageMap</ref>;</codeline>
+<linenumber line="167" refid="classsf_1_1system_1_1SystemImpl_1o12"/><codeline>                        <highlight class="keywordtype">float</highlight>                <ref idref="classsf_1_1system_1_1SystemImpl_1o12">mFrameStep</ref>;</codeline>
+<linenumber line="168" refid="classsf_1_1system_1_1SystemImpl_1o13"/><codeline>                        <highlight class="keywordtype">float</highlight>                <ref idref="classsf_1_1system_1_1SystemImpl_1o13">mFramePerSec</ref>;</codeline>
+<linenumber line="169" refid="classsf_1_1system_1_1SystemImpl_1r0"/><codeline>                 <highlight class="keyword">static</highlight>           SystemImpl *<ref idref="classsf_1_1system_1_1SystemImpl_1r0">pSystemImpl</ref>;</codeline>
+<linenumber line="170"/><codeline>                     <highlight class="comment">// constant</highlight></codeline>
+<linenumber line="171"/><codeline>                     <highlight class="keyword">static</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">char</highlight> <ref idref="classsf_1_1system_1_1SystemImpl_1r1">smAppName</ref>[];</codeline>
+<linenumber line="172"/><codeline>             };<highlight class="comment">// SystemImpl</highlight></codeline>
+<linenumber line="173"/><codeline>             }</codeline>
+<linenumber line="174"/><codeline>     }<highlight class="comment">// namespace system</highlight></codeline>
+<linenumber line="175"/><codeline>} <highlight class="comment">// namespace sf</highlight></codeline>
+<linenumber line="176"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_SystemImpl_H__64DBDEBB_81F1_4542_AAF7_B212CB9F4604__INCLUDED_)</highlight></codeline>
+<linenumber line="177"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/SystemImpl.h"/>
+  </compounddef>
+  <compounddef id="SystemWin32_8cpp" kind="file">
+    <compoundname>SystemWin32.cpp</compoundname>
+    <includes local="yes">stdafx.h</includes>
+    <includes id="SystemWin32_8h" local="yes">SystemWin32.h</includes>
+    <incdepgraph>
+      <node id="850">
+        <label>stdafx.h</label>
+      </node>
+      <node id="852">
+        <label>sfinterface.h</label>
+        <link id="sfinterface_8h-source"/>
+      </node>
+      <node id="851">
+        <label>SystemWin32.h</label>
+        <link id="SystemWin32_8h"/>
+        <childnode id="852" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="849">
+        <label>SystemWin32.cpp</label>
+        <link id="SystemWin32.cpp"/>
+        <childnode id="850" relation="public-inheritance">
+        </childnode>
+        <childnode id="851" relation="public-inheritance">
+        </childnode>
+      </node>
+    </incdepgraph>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">// SystemWin32.cpp: SystemWin32 \\81P\e\1?I\?\o\\81~\e\a\o\A!?\\81E\c\o</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="preprocessor">#include &quot;stdafx.h&quot;</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="preprocessor">#include &quot;<ref idref="SystemWin32_8h">SystemWin32.h</ref>&quot;</highlight></codeline>
+<linenumber line="7"/><codeline></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">// 1?AU/?AIC</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="12"/><codeline>SystemWin32::SystemWin32()</codeline>
+<linenumber line="13"/><codeline>{</codeline>
+<linenumber line="14"/><codeline></codeline>
+<linenumber line="15"/><codeline>}</codeline>
+<linenumber line="16"/><codeline></codeline>
+<linenumber line="17"/><codeline>SystemWin32::~SystemWin32()</codeline>
+<linenumber line="18"/><codeline>{</codeline>
+<linenumber line="19"/><codeline></codeline>
+<linenumber line="20"/><codeline>}</codeline>
+<linenumber line="21"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/SystemWin32.cpp"/>
+  </compounddef>
+  <compounddef id="SystemWin32_8h" kind="file">
+    <compoundname>SystemWin32.h</compoundname>
+    <includes id="sfinterface_8h" local="yes">sfinterface.h</includes>
+    <includedby id="InputImpl_8cpp" local="yes">InputImpl.cpp</includedby>
+    <includedby id="SystemImpl_8cpp" local="yes">SystemImpl.cpp</includedby>
+    <includedby id="SystemWin32_8cpp" local="yes">SystemWin32.cpp</includedby>
+    <incdepgraph>
+      <node id="855">
+        <label>sfinterface.h</label>
+        <link id="sfinterface_8h-source"/>
+      </node>
+      <node id="854">
+        <label>SystemWin32.h</label>
+        <link id="SystemWin32.h"/>
+        <childnode id="855" relation="public-inheritance">
+        </childnode>
+      </node>
+    </incdepgraph>
+    <invincdepgraph>
+      <node id="858">
+        <label>SystemImpl.cpp</label>
+        <link id="SystemImpl_8cpp-source"/>
+      </node>
+      <node id="857">
+        <label>InputImpl.cpp</label>
+        <link id="InputImpl_8cpp-source"/>
+      </node>
+      <node id="856">
+        <label>SystemWin32.h</label>
+        <link id="SystemWin32.h"/>
+        <childnode id="857" relation="public-inheritance">
+        </childnode>
+        <childnode id="858" relation="public-inheritance">
+        </childnode>
+        <childnode id="859" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="859">
+        <label>SystemWin32.cpp</label>
+        <link id="SystemWin32_8cpp-source"/>
+      </node>
+    </invincdepgraph>
+    <innernamespace refid="namespacesf">sf</innernamespace>
+    <innernamespace refid="namespacesf_1_1system">sf::system</innernamespace>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="SystemWin32_8h_1a0" virt="normal" prot="public">
+        <name>AFX_SYSTEMWIN32_H__9E630867_3321_4C17_8D1A_E0EAC93A1647__INCLUDED_</name>
+        <briefdescription>
+<para>
+Ao?A\?\o\\81P\e!?\EEE\81âs\T\\81P\i. </para>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/sfglib/SystemWin32.h" line="13" bodystart="13" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+<para>
+Windows?O?I\?\o\?!?\O\\81\98!?\1?C?1. </para>
+    </briefdescription>
+    <detaileddescription>
+<simplesect kind="author"><title>oi?O: </title><para>
+S.F. </para>
+</simplesect><simplesect kind="version"><title>\D!?\\81C\c\o: </title><para>
+$Id:</para>
+</simplesect><para>
+Copyright (C) 2000-2002 Satoshi Fujiwara. All Rights Reserved. </para>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline></codeline>
+<linenumber line="11"/><codeline></codeline>
+<linenumber line="12"/><codeline><highlight class="preprocessor">#if !defined(AFX_SYSTEMWIN32_H__9E630867_3321_4C17_8D1A_E0EAC93A1647__INCLUDED_)</highlight></codeline>
+<linenumber line="13" refid="SystemWin32_8h_1a0"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define AFX_SYSTEMWIN32_H__9E630867_3321_4C17_8D1A_E0EAC93A1647__INCLUDED_</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="preprocessor">#if _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#pragma once</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif // _MSC_VER &gt; 1000</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;sfinterface.h&quot;</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="keyword">namespace </highlight>sf {</codeline>
+<linenumber line="20"/><codeline>      <highlight class="keyword">namespace </highlight>system {</codeline>
+<linenumber line="21"/><codeline></codeline>
+<linenumber line="27" refid="classsf_1_1system_1_1WindowMessage_1"/><codeline><highlight class="keyword">class </highlight>SF_INTERFACE WindowMessage</codeline>
+<linenumber line="28"/><codeline>{</codeline>
+<linenumber line="29"/><codeline><highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="31" refid="classsf_1_1system_1_1WindowMessage_1a0"/><codeline>       <highlight class="keyword">virtual</highlight> ~WindowMessage(){;};</codeline>
+<linenumber line="37"/><codeline>      <highlight class="keyword">virtual</highlight> LRESULT call(<highlight class="keyword">const</highlight> HWND hwnd,<highlight class="keyword">const</highlight> WPARAM wParam,<highlight class="keyword">const</highlight> LPARAM lParam) = 0;</codeline>
+<linenumber line="38"/><codeline>};</codeline>
+<linenumber line="39"/><codeline></codeline>
+<linenumber line="41" refid="classsf_1_1system_1_1WindowMessageImpl_1"/><codeline><highlight class="keyword">template</highlight>&lt;<highlight class="keyword">class</highlight> T&gt; <highlight class="keyword">class </highlight>WindowMessageImpl : <highlight class="keyword">public</highlight> WindowMessage</codeline>
+<linenumber line="42"/><codeline>{</codeline>
+<linenumber line="43"/><codeline><highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="45"/><codeline>      <ref idref="classsf_1_1system_1_1WindowMessageImpl_1a0">WindowMessageImpl</ref>();</codeline>
+<linenumber line="47" refid="classsf_1_1system_1_1WindowMessageImpl_1a1"/><codeline>   <highlight class="keyword">virtual</highlight> <ref idref="classsf_1_1system_1_1WindowMessageImpl_1a1">~WindowMessageImpl</ref>(){}</codeline>
+<linenumber line="51"/><codeline>      <ref idref="classsf_1_1system_1_1WindowMessageImpl_1a0">WindowMessageImpl</ref>(T* <highlight class="keyword">const</highlight> pClass,LRESULT (T::* pAddress)(<highlight class="keyword">const</highlight> HWND,<highlight class="keyword">const</highlight> WPARAM,<highlight class="keyword">const</highlight> LPARAM));</codeline>
+<linenumber line="52"/><codeline>      </codeline>
+<linenumber line="56"/><codeline>      <highlight class="keywordtype">void</highlight> <ref idref="classsf_1_1system_1_1WindowMessageImpl_1a3">setAddress</ref>(T* <highlight class="keyword">const</highlight> pClass,LRESULT (T::* pAddress)(<highlight class="keyword">const</highlight> HWND,<highlight class="keyword">const</highlight> WPARAM,<highlight class="keyword">const</highlight> LPARAM));</codeline>
+<linenumber line="57"/><codeline></codeline>
+<linenumber line="58"/><codeline>      LRESULT <ref idref="classsf_1_1system_1_1WindowMessageImpl_1a4">call</ref>(<highlight class="keyword">const</highlight> HWND hwnd,<highlight class="keyword">const</highlight> WPARAM wParam,<highlight class="keyword">const</highlight> LPARAM lParam);</codeline>
+<linenumber line="59"/><codeline><highlight class="keyword">private</highlight>:</codeline>
+<linenumber line="60" refid="classsf_1_1system_1_1WindowMessageImpl_1o0"/><codeline>   T* <ref idref="classsf_1_1system_1_1WindowMessageImpl_1o0">mpClass</ref>;</codeline>
+<linenumber line="61"/><codeline>      LRESULT (T::* <ref idref="classsf_1_1system_1_1WindowMessageImpl_1o1">mpAddress</ref>)(<highlight class="keyword">const</highlight> HWND,<highlight class="keyword">const</highlight> WPARAM,<highlight class="keyword">const</highlight> LPARAM);</codeline>
+<linenumber line="62"/><codeline>};</codeline>
+<linenumber line="63"/><codeline></codeline>
+<linenumber line="64" refid="classsf_1_1system_1_1WindowMessageImpl_1a0"/><codeline><highlight class="keyword">template</highlight>&lt;<highlight class="keyword">class</highlight> T&gt; WindowMessageImpl&lt;T&gt;::WindowMessageImpl()</codeline>
+<linenumber line="65"/><codeline>{</codeline>
+<linenumber line="66"/><codeline>      <ref idref="classsf_1_1system_1_1WindowMessageImpl_1o0">mpClass</ref> = NULL;</codeline>
+<linenumber line="67"/><codeline>      <ref idref="classsf_1_1system_1_1WindowMessageImpl_1o1">mpAddress</ref> = NULL;</codeline>
+<linenumber line="68"/><codeline>};</codeline>
+<linenumber line="69"/><codeline></codeline>
+<linenumber line="70" refid="classsf_1_1system_1_1WindowMessageImpl_1a2"/><codeline><highlight class="keyword">template</highlight>&lt;<highlight class="keyword">class</highlight> T&gt; WindowMessageImpl&lt;T&gt;::WindowMessageImpl(T* <highlight class="keyword">const</highlight> pClass,LRESULT (T::* pAddress)(<highlight class="keyword">const</highlight> HWND,<highlight class="keyword">const</highlight> WPARAM,<highlight class="keyword">const</highlight> LPARAM))</codeline>
+<linenumber line="71"/><codeline>{</codeline>
+<linenumber line="72"/><codeline>      <ref idref="classsf_1_1system_1_1WindowMessageImpl_1o0">mpClass</ref> = pClass;</codeline>
+<linenumber line="73"/><codeline>      <ref idref="classsf_1_1system_1_1WindowMessageImpl_1o1">mpAddress</ref> = pAddress;</codeline>
+<linenumber line="74"/><codeline>};</codeline>
+<linenumber line="75"/><codeline></codeline>
+<linenumber line="76"/><codeline></codeline>
+<linenumber line="77" refid="classsf_1_1system_1_1WindowMessageImpl_1a3"/><codeline><highlight class="keyword">template</highlight>&lt;<highlight class="keyword">class</highlight> T&gt; <highlight class="keywordtype">void</highlight> WindowMessageImpl&lt;T&gt;::setAddress(T* <highlight class="keyword">const</highlight> pClass,LRESULT (T::* pAddress)(<highlight class="keyword">const</highlight> HWND,<highlight class="keyword">const</highlight> WPARAM,<highlight class="keyword">const</highlight> LPARAM))</codeline>
+<linenumber line="78"/><codeline>{</codeline>
+<linenumber line="79"/><codeline>      <ref idref="classsf_1_1system_1_1WindowMessageImpl_1o0">mpClass</ref> = pClass;</codeline>
+<linenumber line="80"/><codeline>      <ref idref="classsf_1_1system_1_1WindowMessageImpl_1o1">mpAddress</ref> = pAddress;</codeline>
+<linenumber line="81"/><codeline>};</codeline>
+<linenumber line="82"/><codeline></codeline>
+<linenumber line="83" refid="classsf_1_1system_1_1WindowMessageImpl_1a4"/><codeline><highlight class="keyword">template</highlight>&lt;<highlight class="keyword">class</highlight> T&gt; LRESULT WindowMessageImpl&lt;T&gt;::call(<highlight class="keyword">const</highlight> HWND hwnd,<highlight class="keyword">const</highlight> WPARAM wParam,<highlight class="keyword">const</highlight> LPARAM lParam)</codeline>
+<linenumber line="84"/><codeline>{</codeline>
+<linenumber line="85"/><codeline>      <highlight class="keywordflow">if</highlight>(<ref idref="classsf_1_1system_1_1WindowMessageImpl_1o0">mpClass</ref> &amp;&amp; <ref idref="classsf_1_1system_1_1WindowMessageImpl_1o1">mpAddress</ref>)</codeline>
+<linenumber line="86"/><codeline>              <highlight class="keywordflow">return</highlight> (<ref idref="classsf_1_1system_1_1WindowMessageImpl_1o0">mpClass</ref>-&gt;*<ref idref="classsf_1_1system_1_1WindowMessageImpl_1o1">mpAddress</ref>)(hwnd,wParam,lParam);</codeline>
+<linenumber line="87"/><codeline>      <highlight class="keywordflow">return</highlight> 0;</codeline>
+<linenumber line="88"/><codeline>};</codeline>
+<linenumber line="89"/><codeline></codeline>
+<linenumber line="91" refid="classsf_1_1system_1_1Win32_1"/><codeline><highlight class="keyword">class </highlight>SF_INTERFACE Win32  </codeline>
+<linenumber line="92"/><codeline>{</codeline>
+<linenumber line="93"/><codeline><highlight class="keyword">public</highlight>:</codeline>
+<linenumber line="95" refid="classsf_1_1system_1_1Win32_1a0"/><codeline>       Win32(){};</codeline>
+<linenumber line="97" refid="classsf_1_1system_1_1Win32_1a1"/><codeline>       <highlight class="keyword">virtual</highlight> ~Win32(){};</codeline>
+<linenumber line="98"/><codeline>      </codeline>
+<linenumber line="100"/><codeline>     <highlight class="keyword">virtual</highlight> <highlight class="keywordtype">int</highlight> winMain (<highlight class="keyword">const</highlight> HINSTANCE hThisInstance, <highlight class="keyword">const</highlight> HINSTANCE hPrevInstance,</codeline>
+<linenumber line="101"/><codeline>                     <highlight class="keyword">const</highlight> LPSTR lpszCmdParam, <highlight class="keyword">const</highlight> <highlight class="keywordtype">int</highlight> nCmdShow) = 0;</codeline>
+<linenumber line="102"/><codeline>     </codeline>
+<linenumber line="106"/><codeline>     <highlight class="keyword">virtual</highlight> <highlight class="keyword">const</highlight> <highlight class="keywordtype">bool</highlight> addWindowMessage(<highlight class="keyword">const</highlight> <ref idref="namespacesf_1a0">DWORD</ref> value,WindowMessage * pWindowMessage) = 0;</codeline>
+<linenumber line="107"/><codeline>     </codeline>
+<linenumber line="108"/><codeline>};</codeline>
+<linenumber line="109"/><codeline>     }</codeline>
+<linenumber line="110"/><codeline>}</codeline>
+<linenumber line="111"/><codeline></codeline>
+<linenumber line="112"/><codeline><highlight class="preprocessor">#endif // !defined(AFX_SYSTEMWIN32_H__9E630867_3321_4C17_8D1A_E0EAC93A1647__INCLUDED_)</highlight></codeline>
+<linenumber line="113"/><codeline><highlight class="preprocessor"></highlight></codeline>
+    </programlisting>
+    <location file="J:/project/sfglib/SystemWin32.h"/>
+  </compounddef>
+  <compounddef id="WinMain_8cpp" kind="file">
+    <compoundname>WinMain.cpp</compoundname>
+    <includes id="sfdebug_8h" local="yes">sfdebug.h</includes>
+    <includes local="yes">windows.h</includes>
+    <includes local="yes">windowsx.h</includes>
+    <incdepgraph>
+      <node id="860">
+        <label>WinMain.cpp</label>
+        <link id="WinMain.cpp"/>
+        <childnode id="861" relation="public-inheritance">
+        </childnode>
+        <childnode id="862" relation="public-inheritance">
+        </childnode>
+        <childnode id="863" relation="public-inheritance">
+        </childnode>
+      </node>
+      <node id="862">
+        <label>windows.h</label>
+      </node>
+      <node id="863">
+        <label>windowsx.h</label>
+      </node>
+      <node id="861">
+        <label>sfdebug.h</label>
+        <link id="sfdebug_8h"/>
+      </node>
+    </incdepgraph>
+      <sectiondef kind="define">
+      <memberdef kind="define" id="WinMain_8cpp_1a0" virt="normal" prot="public">
+        <name>WINMAIN</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/WinMain.cpp" line="33" bodystart="33" bodyend="-1"/>
+      </memberdef>
+      <memberdef kind="define" id="WinMain_8cpp_1a1" virt="normal" prot="public">
+        <name>WIN32_LEAN_AND_MEAN</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/WinMain.cpp" line="34" bodystart="34" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="typedef">
+      <memberdef kind="typedef" id="WinMain_8cpp_1a2" virt="normal" prot="public">
+        <type>int(*</type>
+        <name>WINMAINPROC</name>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/WinMain.cpp" line="46" bodystart="46" bodyend="-1"/>
+      </memberdef>
+      </sectiondef>
+      <sectiondef kind="func">
+      <memberdef kind="function" id="WinMain_8cpp_1a3" virt="normal" prot="public" const="no" volatile="no">
+        <type>int WINAPI</type>
+        <name>WinMain</name>
+        <param>
+          <type>HINSTANCE</type>
+          <declname>hThisInstance</declname>
+        </param>
+        <param>
+          <type>HINSTANCE</type>
+          <declname>hPrevInstance</declname>
+        </param>
+        <param>
+          <type>LPSTR</type>
+          <declname>lpszCmdParam</declname>
+        </param>
+        <param>
+          <type>int</type>
+          <declname>nCmdShow</declname>
+        </param>
+        <briefdescription>
+        </briefdescription>
+        <detaileddescription>
+        </detaileddescription>
+        <location file="J:/project/WinMain.cpp" line="50" bodystart="48" bodyend="83"/>
+      </memberdef>
+      </sectiondef>
+    <briefdescription>
+    </briefdescription>
+    <detaileddescription>
+    </detaileddescription>
+    <programlisting>
+<linenumber line="1"/><codeline><highlight class="comment">//@STATE=oiARAa</highlight></codeline>
+<linenumber line="2"/><codeline><highlight class="comment">//@DESCRIPTION ---------------------------------------------------------------</highlight></codeline>
+<linenumber line="3"/><codeline><highlight class="comment">// Window\a\?\o</highlight></codeline>
+<linenumber line="4"/><codeline><highlight class="comment">// ?3?i?A?\81}?I?I?o?\81â?E??!\!\!\!\81\92</highlight></codeline>
+<linenumber line="5"/><codeline><highlight class="comment">//  IuIo:</highlight></codeline>
+<linenumber line="6"/><codeline><highlight class="comment">// $Log: WinMain.cpp,v $</highlight></codeline>
+<linenumber line="7"/><codeline><highlight class="comment">// Revision 1.7  2001/10/28 21:45:06  fujiwara</highlight></codeline>
+<linenumber line="8"/><codeline><highlight class="comment">// DLL?EE\81Ê3a</highlight></codeline>
+<linenumber line="9"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="10"/><codeline><highlight class="comment">// Revision 1.6  2001/07/09 20:30:10  fujiwara</highlight></codeline>
+<linenumber line="11"/><codeline><highlight class="comment">// Ia3\81\8b?eIy?IAE?s1t?s</highlight></codeline>
+<linenumber line="12"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="13"/><codeline><highlight class="comment">// Revision 1.5  2001/07/01 21:30:34  fujiwara</highlight></codeline>
+<linenumber line="14"/><codeline><highlight class="comment">// \a\a\e\e!?\\81P\A\\81\98\A\\81P\81C\81áA??\81E</highlight></codeline>
+<linenumber line="15"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="16"/><codeline><highlight class="comment">// Revision 1.4  2001/07/01 01:03:45  fujiwara</highlight></codeline>
+<linenumber line="17"/><codeline><highlight class="comment">// const ?I\81C\81áA??\81E</highlight></codeline>
+<linenumber line="18"/><codeline><highlight class="comment">// CUAO\\81N\C\\81\92\??IAOAa\81ED2a</highlight></codeline>
+<linenumber line="19"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="20"/><codeline><highlight class="comment">// Revision 1.3  2001/05/13 20:04:24  fujiwara</highlight></codeline>
+<linenumber line="21"/><codeline><highlight class="comment">// \a\a\e!?\e!?\\81P?\81ÊE\81PA\81C?\81E???I?C?e?e?u?\81P!\81\92</highlight></codeline>
+<linenumber line="22"/><codeline><highlight class="comment">// ?\81áAA?I\\83Ê\|\o\E\A\1\E</highlight></codeline>
+<linenumber line="23"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="24"/><codeline><highlight class="comment">// Revision 1.2  2001/05/12 00:48:35  fujiwara</highlight></codeline>
+<linenumber line="25"/><codeline><highlight class="comment">// \81\92A\81\92O\81\92O?oA3At?\81E!\81\91\i\\81\8bE??\81N?oAE2A</highlight></codeline>
+<linenumber line="26"/><codeline><highlight class="comment">//</highlight></codeline>
+<linenumber line="27"/><codeline><highlight class="comment">// 2001/01/29 \a\a\e!?\e!?\\81P\81C!?DIN\e\?\O\e\e?IAE2A </highlight></codeline>
+<linenumber line="28"/><codeline><highlight class="comment">//@DESCRIPTION_END -----------------------------------------------------------</highlight></codeline>
+<linenumber line="29"/><codeline><highlight class="comment">//@AUTHOR=S.F.</highlight></codeline>
+<linenumber line="30"/><codeline><highlight class="comment">// Copyright (C) 2000 Satoshi Fujiwara. All Rights Reserved.</highlight></codeline>
+<linenumber line="32"/><codeline><highlight class="comment">#pragma warning( disable : 4786 )  //STL?I\81EU1d3\81\8b?\81E</highlight></codeline>
+<linenumber line="33"/><codeline><highlight class="preprocessor">#define WINMAIN</highlight></codeline>
+<linenumber line="34"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define WIN32_LEAN_AND_MEAN</highlight></codeline>
+<linenumber line="35"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#include &quot;<ref idref="sfdebug_8h">sfdebug.h</ref>&quot;</highlight></codeline>
+<linenumber line="36"/><codeline></codeline>
+<linenumber line="37"/><codeline></codeline>
+<linenumber line="38"/><codeline><highlight class="preprocessor">#include &quot;windows.h&quot;</highlight></codeline>
+<linenumber line="39"/><codeline><highlight class="preprocessor">#include &quot;windowsx.h&quot;</highlight></codeline>
+<linenumber line="40"/><codeline></codeline>
+<linenumber line="41"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="42"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#define new DEBUG_NEW</highlight></codeline>
+<linenumber line="43"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="44"/><codeline><highlight class="preprocessor"></highlight></codeline>
+<linenumber line="45"/><codeline><highlight class="comment">// WinMain --------------------------------------------------------------------</highlight></codeline>
+<linenumber line="46"/><codeline><highlight class="keyword">typedef</highlight> int (*WINMAINPROC)(HINSTANCE,HINSTANCE,LPSTR,<highlight class="keywordtype">int</highlight>);</codeline>
+<linenumber line="47"/><codeline></codeline>
+<linenumber line="48"/><codeline><highlight class="keywordtype">int</highlight> WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance,</codeline>
+<linenumber line="49"/><codeline>                                      LPSTR lpszCmdParam, <highlight class="keywordtype">int</highlight> nCmdShow)</codeline>
+<linenumber line="50"/><codeline>{</codeline>
+<linenumber line="51"/><codeline><highlight class="preprocessor">#ifdef _DEBUG</highlight></codeline>
+<linenumber line="52"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#ifndef _BORLAND</highlight></codeline>
+<linenumber line="53"/><codeline><highlight class="preprocessor"></highlight>  _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);</codeline>
+<linenumber line="54"/><codeline><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="55"/><codeline><highlight class="preprocessor"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
+<linenumber line="56"/><codeline><highlight class="preprocessor"></highlight>  HINSTANCE hGame = LoadLibrary(<highlight class="stringliteral">&quot;s2001.dll&quot;</highlight>);      </codeline>
+<linenumber line="57"/><codeline>      <highlight class="keywordflow">if</highlight>(hGame){</codeline>
+<linenumber line="58"/><codeline>              WINMAINPROC proc = (WINMAINPROC)GetProcAddress(hGame,<highlight class="stringliteral">&quot;S2001Main&quot;</highlight>);</codeline>
+<linenumber line="59"/><codeline>              <highlight class="keywordflow">if</highlight>(proc){</codeline>
+<linenumber line="60"/><codeline>                      <highlight class="keywordflow">return</highlight> (*proc)(hThisInstance,hPrevInstance,lpszCmdParam,nCmdShow);</codeline>
+<linenumber line="61"/><codeline>              } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="62"/><codeline>                      <highlight class="keywordflow">return</highlight> -1;</codeline>
+<linenumber line="63"/><codeline><highlight class="comment">/*                 char * pm[1024];</highlight></codeline>
+<linenumber line="64"/><codeline><highlight class="comment">                           FormatMessage( </highlight></codeline>
+<linenumber line="65"/><codeline><highlight class="comment">    FORMAT_MESSAGE_FROM_SYSTEM | </highlight></codeline>
+<linenumber line="66"/><codeline><highlight class="comment">    FORMAT_MESSAGE_IGNORE_INSERTS,</highlight></codeline>
+<linenumber line="67"/><codeline><highlight class="comment">    NULL,</highlight></codeline>
+<linenumber line="68"/><codeline><highlight class="comment">    GetLastError(),</highlight></codeline>
+<linenumber line="69"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="70"/><codeline><highlight class="comment">    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // \C\O\c\e\E\81CA\81Ci</highlight></codeline>
+<linenumber line="71"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="72"/><codeline><highlight class="comment">    (LPTSTR) &amp;pm,</highlight></codeline>
+<linenumber line="73"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="74"/><codeline><highlight class="comment">    1024,</highlight></codeline>
+<linenumber line="75"/><codeline><highlight class="comment"></highlight></codeline>
+<linenumber line="76"/><codeline><highlight class="comment">    NULL </highlight></codeline>
+<linenumber line="77"/><codeline><highlight class="comment">   );</highlight></codeline>
+<linenumber line="78"/><codeline><highlight class="comment">*/</highlight></codeline>
+<linenumber line="79"/><codeline>              }</codeline>
+<linenumber line="80"/><codeline>      } <highlight class="keywordflow">else</highlight> {</codeline>
+<linenumber line="81"/><codeline>              <highlight class="keywordflow">return</highlight> -1;</codeline>
+<linenumber line="82"/><codeline>      }</codeline>
+<linenumber line="83"/><codeline>};<highlight class="comment">// WinMain</highlight></codeline>
+<linenumber line="84"/><codeline></codeline>
+<linenumber line="85"/><codeline></codeline>
+    </programlisting>
+    <location file="J:/project/WinMain.cpp"/>
+  </compounddef>
+</doxygen>