From: <fr...@us...> - 2007-01-31 19:35:28
|
Revision: 62 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=62&view=rev Author: framug Date: 2007-01-31 11:35:13 -0800 (Wed, 31 Jan 2007) Log Message: ----------- Add My ClickMania Added Paths: ----------- trunk/plugins/My clickmania/ trunk/plugins/My clickmania/AssemblyInfo.cs trunk/plugins/My clickmania/Class1.cs trunk/plugins/My clickmania/ClickMania.cs trunk/plugins/My clickmania/ClickManiaControl.cs trunk/plugins/My clickmania/ClickManiaSetup.cs trunk/plugins/My clickmania/ClickManiaSetup.designer.cs trunk/plugins/My clickmania/ClickManiaSetup.resx trunk/plugins/My clickmania/GUIClickMania.csproj trunk/plugins/My clickmania/GUIClickMania.csproj.user trunk/plugins/My clickmania/GUIClickMania.sln trunk/plugins/My clickmania/GUIClickMania.suo trunk/plugins/My clickmania/UpgradeLog.XML trunk/plugins/My clickmania/bin/ trunk/plugins/My clickmania/bin/Release/ trunk/plugins/My clickmania/bin/Release/Core.dll trunk/plugins/My clickmania/bin/Release/Dialogs.dll trunk/plugins/My clickmania/bin/Release/GUIClickMania.dll trunk/plugins/My clickmania/bin/Release/Utils.dll trunk/plugins/My clickmania/myClickMania.cs Added: trunk/plugins/My clickmania/AssemblyInfo.cs =================================================================== --- trunk/plugins/My clickmania/AssemblyInfo.cs (rev 0) +++ trunk/plugins/My clickmania/AssemblyInfo.cs 2007-01-31 19:35:13 UTC (rev 62) @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion("1.0.*")] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\<configuration>. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] +[assembly: AssemblyKeyName("")] Added: trunk/plugins/My clickmania/Class1.cs =================================================================== --- trunk/plugins/My clickmania/Class1.cs (rev 0) +++ trunk/plugins/My clickmania/Class1.cs 2007-01-31 19:35:13 UTC (rev 62) @@ -0,0 +1,17 @@ +using System; + +namespace GUIClickMania +{ + /// <summary> + /// Summary description for Class1. + /// </summary> + public class Class1 + { + public Class1() + { + // + // TODO: Add constructor logic here + // + } + } +} Added: trunk/plugins/My clickmania/ClickMania.cs =================================================================== --- trunk/plugins/My clickmania/ClickMania.cs (rev 0) +++ trunk/plugins/My clickmania/ClickMania.cs 2007-01-31 19:35:13 UTC (rev 62) @@ -0,0 +1,357 @@ +using System; +using MediaPortal.GUI.Library; + +namespace MyClickMania +{ + /// <summary> + /// Summary description for ClickMania. + /// </summary> + /// + + enum BlockStatus + { + visible = 0, + disappearing, + invisible, + }; + + enum GameStatus + { + Stopped = 0, + Running, + Disapering, + MoveDown, + MoveLeft, + Check, + Lost, + Won, + }; + + public class ClickMania + { + #region const, structs and member variables + // const + private const int m_nSizeX = 8; + private const int m_nSizeY = 12; + private const int m_MaxColor = 5; + private const int m_MaxMoves = (int)((m_nSizeX * m_nSizeY)/2) + 2; + + // structs + public struct Block + { + public int color; + public int status; + }; + + // member variables + private int m_nScore = 0; + private int m_nMoves = 0; + private int m_nStatus = (int) GameStatus.Stopped; + private Block [,] m_Grid; + private Block [,,] m_GridHistory; + private int [] m_ScoreHistory; + + #endregion + + #region Properties + public int MaxX { get {return m_nSizeX; } } + public int MaxY { get {return m_nSizeY; } } + public int MaxColor { get {return m_MaxColor; } } + public int Score { get {return m_nScore; } set {m_nScore = value; } } + public int Status { get {return m_nStatus; } set {m_nStatus = value; } } + #endregion + + #region Indexer + public Block this [int x, int y] + { + get { return m_Grid[x,y]; } // ToDo: check x,y + set { m_Grid[x,y] = value; } // ToDo: check x,y + } + #endregion + + #region Init & Start + public ClickMania() + { + m_Grid = new Block[m_nSizeX, m_nSizeY]; + m_GridHistory = new Block[m_MaxMoves, m_nSizeX, m_nSizeY]; + m_ScoreHistory = new int[m_MaxMoves]; + m_nStatus = (int) GameStatus.Stopped; + } + + + // Generates the grid + public void Start() + { + m_nScore = 0; + m_nMoves = 0; + m_nStatus = (int) GameStatus.Stopped; + Random r = new Random(unchecked((int)DateTime.Now.Ticks)); + + for (int i = 0; i < m_nSizeX; i++) + { + for (int j = 0; j < m_nSizeY; j++) + { + m_Grid[i,j].color = r.Next(0, m_MaxColor); + m_Grid[i,j].status = (int)BlockStatus.visible; + } + } + + StoreMove(); + m_nStatus = (int) GameStatus.Running; + } + #endregion + + #region Check Clicked Block + // clicked on x, y pos in Array + // return number of found pos with equal color + public int Clicked(int x, int y) + { + if (m_Grid[x,y].status == (int)BlockStatus.disappearing) + { + return 0; + } + int col = m_Grid[x,y].color; + + int px, py, nx, ny; // + px = (x == 0 ? 0 : x-1); //prior x + py = (y == 0 ? 0 : y-1); //prior y + nx = (x == m_nSizeX-1 ? m_nSizeX-1 : x+1); // next x + ny = (y == m_nSizeY-1 ? m_nSizeY-1 : y+1); // next y + + // check if min one neighour has same color + if ( ((m_Grid[px,y].color == col) && (px != x) && (m_Grid[px,y].status == (int)BlockStatus.visible)) + ||((m_Grid[nx,y].color == col) && (nx != x) && (m_Grid[nx,y].status == (int)BlockStatus.visible)) + ||((m_Grid[x,py].color == col) && (py != y) && (m_Grid[x,py].status == (int)BlockStatus.visible)) + ||((m_Grid[x,ny].color == col) && (ny != y) && (m_Grid[x,ny].status == (int)BlockStatus.visible)) ) + { + int found = CheckPos(x,y, col); + if (found > 1) + { + m_nStatus = (int)GameStatus.Disapering; + } + return found; + } + return 1; + } + + + public int CheckPos(int x, int y, int col) + { + if (m_Grid[x,y].status == (int)BlockStatus.disappearing) + { + return 0; + } + + m_Grid[x,y].status = (int)BlockStatus.disappearing; + + int px, py, nx, ny; // + px = (x == 0 ? 0 : x-1); //prior x + py = (y == 0 ? 0 : y-1); //prior y + nx = (x == m_nSizeX-1 ? m_nSizeX-1 : x+1); // next x + ny = (y == m_nSizeY-1 ? m_nSizeY-1 : y+1); // next y + int ret = 1; + + if ((m_Grid[px,y].status == (int)BlockStatus.visible) && (m_Grid[px,y].color == col)) + { + ret += CheckPos(px, y, col); + } + + if ((m_Grid[nx,y].status == (int)BlockStatus.visible) && (m_Grid[nx,y].color == col)) + { + ret += CheckPos(nx, y, col); + } + + if ((m_Grid[x,py].status == (int)BlockStatus.visible) && (m_Grid[x,py].color == col)) + { + ret += CheckPos(x, py, col); + } + + if ((m_Grid[x,ny].status == (int)BlockStatus.visible) && (m_Grid[x,ny].color == col)) + { + ret += CheckPos(x, ny, col); + } + + return ret; + } + #endregion + + #region Move Blocks + public bool MakeInvisible() + { + bool ret = false; + for (int i = 0; i < m_nSizeX; i++) + { + for (int j = 0; j < m_nSizeY; j++) + { + if (m_Grid[i,j].status == (int)BlockStatus.disappearing) + { + m_Grid[i,j].status = (int)BlockStatus.invisible; + ret = true; + } + } + } + m_nStatus = (int) GameStatus.MoveDown; + return ret; + } + + public bool MoveDown() + { + bool ret = false; + for (int i = 0; i < m_nSizeX; i++) + { + for (int j = m_nSizeY-1; j >= 0; j--) + { + // if current pos invisible, then ... + if (m_Grid[i,j].status == (int)BlockStatus.invisible) + { + // ... search for the next visible pos + for (int k = j-1; k>= 0; k--) + { + if (m_Grid[i,k].status == (int)BlockStatus.visible) + { + Block temp = m_Grid[i,j]; + m_Grid[i,j] = m_Grid[i, k]; + m_Grid[i,k] = temp; + ret = true; + break; + } + } + } + } + } + + m_nStatus = (int) GameStatus.MoveLeft; + return ret; + } + + public bool MoveLeft() + { + bool ret = false; + for (int i = 0; i < m_nSizeX; i++) + { + // check if first block is invisible, then ... + if (m_Grid[i,m_nSizeY-1].status == (int)BlockStatus.invisible) + { + // ... search for the next visible + for (int k = i+1; k < m_nSizeX; k++) + { + if (m_Grid[k,m_nSizeY-1].status == (int)BlockStatus.visible) + { + // move the complete row + ret = true; + for (int j = 0; j < m_nSizeY; j++) + { + Block temp = m_Grid[i,j]; + m_Grid[i,j] = m_Grid[k, j]; + m_Grid[k,j] = temp; + } + break; + } + } + } + } + + StoreMove(); + m_nStatus = (int) GameStatus.Check; + return ret; + } + #endregion + + #region Check Won or Lost + public bool CheckWon() + { + if (m_Grid[0, m_nSizeY-1].status == (int)BlockStatus.invisible) + { + m_nStatus = (int) GameStatus.Won; + return true; + } + m_nStatus = (int)GameStatus.Running; + return false; + } + + public bool CheckLost() + { + bool MoveLeft = false; + //search for a possible move + for (int i = 0; i < m_nSizeX; i++) + { + for (int j = m_nSizeY-1; j >= 0; j--) + { + if (m_Grid[i,j].status == (int)BlockStatus.visible) + { + // test if around the visible block a other with the same color exists + int px, py, nx, ny, col; + px = (i == 0 ? 0 : i-1); //prior x + py = (j == 0 ? 0 : j-1); //prior y + nx = (i == m_nSizeX-1 ? m_nSizeX-1 : i+1); // next x + ny = (j == m_nSizeY-1 ? m_nSizeY-1 : j+1); // next y + col = m_Grid[i,j].color; + + // check if min one neighour has same color + if ( ((m_Grid[px,j].color == col) && (px != i) && (m_Grid[px,j].status == (int)BlockStatus.visible)) + ||((m_Grid[nx,j].color == col) && (nx != i) && (m_Grid[nx,j].status == (int)BlockStatus.visible)) + ||((m_Grid[i,py].color == col) && (py != j) && (m_Grid[i,py].status == (int)BlockStatus.visible)) + ||((m_Grid[i,ny].color == col) && (ny != j) && (m_Grid[i,ny].status == (int)BlockStatus.visible)) ) + { + MoveLeft = true; + } + } + else + { + break; + } + } + } + + + if (MoveLeft == false) + { + m_nStatus = (int) GameStatus.Lost; + return true; + } + m_nStatus = (int)GameStatus.Running; + return false; + } + #endregion + + #region History + public void StoreMove() + { + for (int i = 0; i < m_nSizeX; i++) + { + for (int j = 0; j < m_nSizeY; j++) + { + m_GridHistory[m_nMoves,i,j].color = m_Grid[i,j].color; + m_GridHistory[m_nMoves,i,j].status = m_Grid[i,j].status; + } + } + m_ScoreHistory[m_nMoves] = Score; + if (m_nMoves < m_MaxMoves - 1) + { + m_nMoves++; + } + } + + public void TakeBackMove() + { + int back = 0; + if (m_nMoves > 1) + { + m_nMoves--; + back = m_nMoves - 1; + } + + Score = m_ScoreHistory[back]; + for (int i = 0; i < m_nSizeX; i++) + { + for (int j = 0; j < m_nSizeY; j++) + { + m_Grid[i,j].color = m_GridHistory[back,i,j].color; + m_Grid[i,j].status = m_GridHistory[back,i,j].status; + } + } + } + #endregion + + } +} Added: trunk/plugins/My clickmania/ClickManiaControl.cs =================================================================== --- trunk/plugins/My clickmania/ClickManiaControl.cs (rev 0) +++ trunk/plugins/My clickmania/ClickManiaControl.cs 2007-01-31 19:35:13 UTC (rev 62) @@ -0,0 +1,508 @@ +using System; +using System.Windows.Forms; +using System.Xml.Serialization; +using System.Drawing; + +using MediaPortal.GUI.Library; +using MediaPortal.Dialogs; +using MediaPortal.Util; +using MediaPortal.Drawing; + +using Microsoft.DirectX; +using Microsoft.DirectX.Direct3D; +using Direct3D=Microsoft.DirectX.Direct3D; + + + +namespace MyClickMania +{ + /// <summary> + /// Summary description for ClickManiaControl. + /// </summary> + public class ClickManiaControl : GUIControl + { + #region Member variables + + ClickMania m_game = new ClickMania(); // the game itselfe without visualisation + Settings m_Settings = new Settings(); // Serialization + //GUIFont m_Font; // fonts needed + GUIImage[] m_imgBackgrounds; // some backgrounds + GUIImage[] m_imgBlocks; // blocks in differnt colors + GUIImage[] m_imgBlocksGlow; // glowing blocks in different colors + GUIImage[] m_imgCursors; // something for the remote control user + int m_nxCursor = 0; // x position of cursor + int m_nyCursor = 0; // y position of cursor + int m_ncCount = 0; // Counter for the cursor image + int m_nCursorTick = 0; // cursor animation delay implementation + int m_nCursorDelay = 25; // the delay itselfe + int m_nxScale = 1; // x scaling factor + int m_nyScale = 1; // y scaling factor + int m_nxOffset = 0; // x offset of the board + int m_nyOffset = 0; // y offset of the board + int m_nBoardWidth = 0; // width of the board + int m_nBoardHeight = 0; // height of the board + int m_nLastTick = 0; // for delay implementation + int m_nDelay = 150; // the delay itselfe + long m_lStartTime = 0; // save the start time for the game timer + int m_dwPosX = 592; + int m_dwPosY = 88; + + protected long m_dwColorDiffuse = 0xFFFFFFFF; // + + #endregion + + #region Properties + + public int Score + { + get {return (m_game != null ? m_game.Score : 0);} + } + + public int HighScore + { + get {return (m_Settings != null ? m_Settings.Highscore : 0);} + set + { + if (m_Settings != null) + { + m_Settings.Highscore = value; + m_Settings.Save(); + } + } + } + + public bool Sound + { + get { return (m_Settings != null ? m_Settings.Sound : false); } + set + { + if (m_Settings != null) + { + m_Settings.Sound = value; + m_Settings.Save(); + } + if (value) GUIControl.SelectControl(GetID, 4); + else GUIControl.DeSelectControl(GetID, 4); + } + } + + public bool KeyInterface + { + get { return (m_Settings != null ? m_Settings.KeyInterface : false); } + set + { + if (m_Settings != null) + { + m_Settings.KeyInterface = value; + m_Settings.Save(); + } + if (value) GUIControl.SelectControl(GetID, 6); + else GUIControl.DeSelectControl(GetID, 6); + } + } + + #endregion + + #region Serialization + + [Serializable] + public class Settings + { + protected int m_nHighscore; + protected bool m_bKeyInterface; + protected bool m_bSound; + + public Settings() + { + m_nHighscore = 0; + m_bKeyInterface = false; + m_bSound = false; + } + + [XmlElement("Highscore")] + public int Highscore + { + get { return m_nHighscore; } + set { m_nHighscore = value;} + } + + [XmlElement("KeyInterface")] + public bool KeyInterface + { + get { return m_bKeyInterface; } + set { m_bKeyInterface = value;} + } + + [XmlElement("Sound")] + public bool Sound + { + get { return m_bSound; } + set { m_bSound = value;} + } + + public void Load() + { + using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings("MediaPortal.xml")) + { + m_nHighscore = xmlreader.GetValueAsInt("clickmania", "highscore", 0); + m_bKeyInterface = xmlreader.GetValueAsBool("clickmania", "keyinterface", false); + m_bSound = xmlreader.GetValueAsBool("clickmania", "sound", true); + } + } + + public void Save() + { + using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.Settings("MediaPortal.xml")) + { + xmlwriter.SetValue("clickmania", "highscore", m_nHighscore); + xmlwriter.SetValueAsBool("clickmania", "keyinterface", m_bKeyInterface); + xmlwriter.SetValueAsBool("clickmania", "sound", m_bSound); + } + } + } + + #endregion Serialization + + #region Init & Start Game + public ClickManiaControl(int nParentID): base(nParentID) + { + m_Settings.Load(); + } + + + public void Start(int m_dwControlID) + { + + GUIControl.FocusControl(GetID, m_dwControlID); + + GUIPropertyManager.SetProperty("#cm_status", " "); + + m_lStartTime = -DateTime.Now.Ticks; // negative to get a counter from zero + m_nxCursor = 0; // set cursor to the lower left side + m_nyCursor = m_game.MaxY-1; + m_ncCount = 0; + m_nCursorTick = Environment.TickCount; + m_game.Start(); + GUIPropertyManager.SetProperty("#cm_score", m_game.Score.ToString()); + } + + #endregion + + #region Overrides + + public override void FinalizeConstruction() + { + base.FinalizeConstruction (); + + m_nBoardWidth = this.Width; + m_nBoardHeight = this.Height; + + m_nyScale = m_nBoardHeight / (m_game.MaxY + 2); + m_nxScale = m_nyScale; + m_nBoardWidth = m_nxScale * m_game.MaxX; + m_dwPosX = this._positionX; + m_dwPosY = this._positionY; + m_nxOffset = m_dwPosX + ((this.Width - (m_nxScale * m_game.MaxX)) / 2); + m_nyOffset = m_dwPosY+ ((this.Height - (m_nyScale * m_game.MaxY)) / 2); + m_imgBlocks = new GUIImage[] + { + new GUIImage(GetID, 10001, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\block_red.png", m_dwColorDiffuse), + new GUIImage(GetID, 10002, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\block_blue.png", m_dwColorDiffuse), + new GUIImage(GetID, 10003, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\block_gray.png", m_dwColorDiffuse), + new GUIImage(GetID, 10004, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\block_yellow.png", m_dwColorDiffuse), + new GUIImage(GetID, 10005, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\block_cyan.png", m_dwColorDiffuse), + new GUIImage(GetID, 10006, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\block_orange.png", m_dwColorDiffuse), + new GUIImage(GetID, 10007, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\block_green.png", m_dwColorDiffuse), + }; + + m_imgBlocksGlow = new GUIImage[] + { + new GUIImage(GetID, 10011, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\block_red_glow.png", m_dwColorDiffuse), + new GUIImage(GetID, 10012, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\block_blue_glow.png", m_dwColorDiffuse), + new GUIImage(GetID, 10013, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\block_gray_glow.png", m_dwColorDiffuse), + new GUIImage(GetID, 10014, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\block_yellow_glow.png", m_dwColorDiffuse), + new GUIImage(GetID, 10015, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\block_cyan_glow.png", m_dwColorDiffuse), + new GUIImage(GetID, 10016, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\block_orange_glow.png", m_dwColorDiffuse), + new GUIImage(GetID, 10017, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\block_green_glow.png", m_dwColorDiffuse), + }; + + m_imgBackgrounds = new GUIImage[] + { + new GUIImage(GetID, 10021, m_dwPosX, m_dwPosY, this.Width, this.Height, GUIGraphicsContext.Skin + @"\media\clickmania\background.png", m_dwColorDiffuse), + new GUIImage(GetID, 10022, m_dwPosX, m_dwPosY, this.Width, this.Height, GUIGraphicsContext.Skin + @"\media\clickmania\background_focus.png", m_dwColorDiffuse), + }; + + m_imgCursors = new GUIImage[] + { + new GUIImage(GetID, 10031, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\cursor1.png", Color.Black), + new GUIImage(GetID, 10032, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\cursor2.png", Color.Black), + new GUIImage(GetID, 10033, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\cursor3.png", Color.Black), + new GUIImage(GetID, 10034, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\cursor4.png", Color.Black), + new GUIImage(GetID, 10034, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\cursor5.png", Color.Black), + new GUIImage(GetID, 10034, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\cursor6.png", Color.Black), + new GUIImage(GetID, 10034, m_dwPosX, m_dwPosY, m_nxScale, m_nyScale, GUIGraphicsContext.Skin + @"\media\clickmania\cursor7.png", Color.Black), + }; + } + + + public override void AllocResources() + { + base.AllocResources (); + + if(m_imgBlocks != null) + { + foreach(GUIImage image in m_imgBlocks) + { + image.AllocResources(); + } + } + + + if(m_imgBlocksGlow != null) + { + foreach(GUIImage image in m_imgBlocksGlow) + { + image.AllocResources(); + } + } + + if(m_imgBackgrounds != null) + { + foreach(GUIImage image in m_imgBackgrounds) + { + image.AllocResources(); + } + } + + if(m_imgCursors != null) + { + foreach(GUIImage image in m_imgCursors) + { + image.AllocResources(); + } + } + } + + public override void OnAction(Action action) + { + if (m_game.Status != (int)GameStatus.Stopped) + { + switch (action.wID) + { + case Action.ActionType.ACTION_KEY_PRESSED: + + if ((KeyInterface == true) && (m_game.Status == (int)GameStatus.Running) /* && (action.m_key.KeyCode == 0x13) */) + { + ProcessBlockClicked(m_nxCursor, m_nyCursor); + } + else + { + base.OnAction(action); + } + break; + case Action.ActionType.ACTION_MOUSE_CLICK: + if (m_game.Status == (int)GameStatus.Running) + { + // calc the block where the mouse was clicked on + int x = (int)((int)action.fAmount1 - m_nxOffset)/m_nxScale; + int y = (int)((int)action.fAmount2 - m_nyOffset)/m_nyScale; + if ((x > -1) & (x < 8) & (y > -1) & (y < 12)) + ProcessBlockClicked(x, y); + } + else + { + base.OnAction(action); + } + break; + case Action.ActionType.ACTION_MOVE_UP: + if (m_nyCursor > 0) m_nyCursor -= 1; + break; + case Action.ActionType.ACTION_MOVE_DOWN: + if (m_nyCursor < m_game.MaxY-1) m_nyCursor += 1; + break; + case Action.ActionType.ACTION_MOVE_LEFT: + if (m_nxCursor > 0) m_nxCursor -= 1; + else + base.OnAction(action); + break; + case Action.ActionType.ACTION_MOVE_RIGHT: + if (m_nxCursor < m_game.MaxX-1) m_nxCursor += 1; + break; + default: + base.OnAction(action); + break; + } + } + else + { + base.OnAction(action); + } + } + + public override void Render(float timePassed) + { + RenderBackground(timePassed); + + if (m_game.Status != (int)GameStatus.Stopped) + { + // show timer only when game is running + if (m_game.Status < (int)GameStatus.Lost) + { + GUIPropertyManager.SetProperty("#cm_time", DateTime.Now.AddTicks(m_lStartTime).ToLongTimeString()); + } + + for (int i=0; i<m_game.MaxX; i++) + { + int posX = m_nxOffset + (int) (i * m_nxScale); + for (int j=0; j<m_game.MaxY; j++) + { + int posY = m_nyOffset + (int) (j * m_nyScale); + int col = m_game[i, j].color; + + switch (m_game[i, j].status) + { + case (int)BlockStatus.visible: + if (m_imgBlocks != null && m_imgBlocks[col] != null) + { + m_imgBlocks[col].SetPosition(posX, posY); + m_imgBlocks[col].Render(timePassed); + } + break; + case (int)BlockStatus.disappearing: + if (m_imgBlocks != null && m_imgBlocks[col] != null) + { + m_imgBlocksGlow[col].SetPosition(posX, posY); + m_imgBlocksGlow[col].Render(timePassed); + } + break; + } + } + } + + switch (m_game.Status) + { + case (int)GameStatus.Disapering: + if ((Environment.TickCount - m_nLastTick) > m_nDelay) + { + if (m_game.MakeInvisible() == true) + { + //if (Sound == true) Utils.PlaySound("ClickMania.Block.wav", false, true); + } + m_nLastTick = Environment.TickCount; + } + break; + + case (int)GameStatus.MoveDown: + if ((Environment.TickCount - m_nLastTick) > m_nDelay) + { + if (m_game.MoveDown() == true) + { + //if (Sound == true) Utils.PlaySound("ClickMania.MoveDown.wav", false, true); + } + m_nLastTick = Environment.TickCount; + } + break; + + case (int)GameStatus.MoveLeft: + if ((Environment.TickCount - m_nLastTick) > m_nDelay) + { + if (m_game.MoveLeft() == true) + { + if (m_game.Status == (int)GameStatus.Running) + { + if (Sound == true) Utils.PlaySound("ClickMania.MoveLeft.wav", false, true); + } + } + m_nLastTick = Environment.TickCount; + } + break; + case (int)GameStatus.Check: + if (m_game.CheckWon() == true) // did we won? + { + if (Sound == true) Utils.PlaySound("ClickMania.Won.wav", false, true); + } + else if (m_game.CheckLost() == true) // no more move possible? + { + GUIPropertyManager.SetProperty("#cm_status", "Game Over"); + if (Sound == true) Utils.PlaySound("ClickMania.GameOver.wav", false, true); + } + break; + + case (int)GameStatus.Won: + GUIPropertyManager.SetProperty("#cm_status", String.Format("Your Score: {0}", m_game.Score)); + break; + + case (int)GameStatus.Lost: + GUIPropertyManager.SetProperty("#cm_status", "Game Over"); + break; + + } + RenderCursor(timePassed); + } + } + + public void RenderBackground(float timePassed) + { + if(IsFocused) + { + m_imgBackgrounds[1].Render(timePassed); + } + else + { + m_imgBackgrounds[0].Render(timePassed); + } + } + + public void RenderCursor(float timePassed) + { + if ((KeyInterface) && (m_imgCursors != null)) + { + int posX = m_nxOffset + (int) (m_nxCursor * m_nxScale); //can be optimized + int posY = m_nyOffset + (int) (m_nyCursor * m_nyScale); //can be optimized + m_imgCursors[m_ncCount].SetPosition(posX, posY); + m_imgCursors[m_ncCount].Render(timePassed); + if ((Environment.TickCount - m_nCursorTick) > m_nCursorDelay) + { + m_nCursorTick = Environment.TickCount; + m_ncCount += 1; + if (m_ncCount >= m_imgCursors.Length) + { + m_ncCount = 0; + } + } + } + } + + + public void ProcessBlockClicked(int x, int y) + { + int found = m_game.Clicked(x, y); + if (found > 1) + { + if (Sound == true) Utils.PlaySound("ClickMania.Block.wav", false, true); + m_game.Score += found*found; + if (m_game.Score > m_Settings.Highscore) + { + m_Settings.Highscore = m_game.Score; + m_Settings.Save(); + } + GUIPropertyManager.SetProperty("#cm_score", m_game.Score.ToString()); + GUIPropertyManager.SetProperty("#cm_highscore", m_Settings.Highscore.ToString()); + m_nLastTick = Environment.TickCount; + } + } + + #endregion + + + public void TakeBackMove() + { + if (m_game.Status == (int)GameStatus.Running) + { + m_game.TakeBackMove(); + GUIPropertyManager.SetProperty("#cm_score", m_game.Score.ToString()); + } + } + + } +} Added: trunk/plugins/My clickmania/ClickManiaSetup.cs =================================================================== --- trunk/plugins/My clickmania/ClickManiaSetup.cs (rev 0) +++ trunk/plugins/My clickmania/ClickManiaSetup.cs 2007-01-31 19:35:13 UTC (rev 62) @@ -0,0 +1,46 @@ +using System; +using System.Collections; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +namespace MyClickMania +{ + public partial class ClickManiaSetup : Form + { + public ClickManiaSetup() + { + InitializeComponent(); + } + + private void ClickManiaSetup_Load(object sender, EventArgs e) + { + using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings("MediaPortal.xml")) + { + textBox1.Text = xmlreader.GetValueAsString("clickmania", "pluginName", PluginName()); + textBox2.Text = xmlreader.GetValueAsString("clickmania", "Title", "Click Mania"); + } + } + private void ButOK_Click(object sender, EventArgs e) + { + if (textBox1.Text.Length == 0) + { + System.Windows.Forms.MessageBox.Show("The Plugin's Name is Mandatory !"); + textBox1.Focus(); + return; + } + if (textBox2.Text.Length == 0) + { + System.Windows.Forms.MessageBox.Show("The Game's Title is Mandatory !"); + textBox2.Focus(); + return; + } + using (MediaPortal.Profile.Settings xmlwriter = new MediaPortal.Profile.Settings("MediaPortal.xml")) + { + xmlwriter.SetValue("clickmania", "pluginName", textBox1.Text.ToString()); + xmlwriter.SetValue("clickmania", "Title", textBox2.Text.ToString()); + } + this.Close(); + } + } +} Added: trunk/plugins/My clickmania/ClickManiaSetup.designer.cs =================================================================== --- trunk/plugins/My clickmania/ClickManiaSetup.designer.cs (rev 0) +++ trunk/plugins/My clickmania/ClickManiaSetup.designer.cs 2007-01-31 19:35:13 UTC (rev 62) @@ -0,0 +1,186 @@ +using System; +using System.Collections; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; +using MediaPortal.GUI.Library; +using System.IO; + +namespace MyClickMania +{ + partial class ClickManiaSetup + { + /// <summary> + /// Variable nécessaire au concepteur. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Nettoyage des ressources utilisées. + /// </summary> + /// <param name="disposing">true si les ressources managées doivent être supprimées ; sinon, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + public string PluginName() + { + return "My ClickMania"; + } + + public string Description() + { + return "ClickMania for MediaPortal"; + } + + public string Author() + { + return "Bavarian"; + } + + public void ShowPlugin() + { + ShowDialog(); + } + public bool DefaultEnabled() + { + return false; + } + public bool CanEnable() + { + return true; + } + + public bool HasSetup() + { + return true; + } + public int GetWindowId() + { + return 5555; + } + /// <summary> + /// If the plugin should have its own button on the home screen then it + /// should return true to this method, otherwise if it should not be on home + /// it should return false + /// </summary> + /// <param name="strButtonText">text the button should have</param> + /// <param name="strButtonImage">image for the button, or empty for default</param> + /// <param name="strButtonImageFocus">image for the button, or empty for default</param> + /// <param name="strPictureImage">subpicture for the button or empty for none</param> + /// <returns>true : plugin needs its own button on home + /// false : plugin does not need its own button on home</returns> + public bool GetHome(out string strButtonText, out string strButtonImage, out string strButtonImageFocus, out string strPictureImage) + { + + strButtonText = GUILocalizeStrings.Get(50); + if (strButtonText == "") + { + strButtonText = "MyClickMania"; + } + strButtonImage = ""; + strButtonImageFocus = ""; + strPictureImage = "hover_My videostack.png"; + return true; + } + #region Code généré par le Concepteur Windows Form + + /// <summary> + /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas + /// le contenu de cette méthode avec l'éditeur de code. + /// </summary> + private void InitializeComponent() + { + this.ButOK = new System.Windows.Forms.Button(); + this.label10 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.label11 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // ButOK + // + this.ButOK.Location = new System.Drawing.Point(387, 55); + this.ButOK.Name = "ButOK"; + this.ButOK.Size = new System.Drawing.Size(64, 31); + this.ButOK.TabIndex = 33; + this.ButOK.Text = "OK"; + this.ButOK.UseVisualStyleBackColor = true; + this.ButOK.Click += new System.EventHandler(this.ButOK_Click); + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(391, 29); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(60, 13); + this.label10.TabIndex = 34; + this.label10.Text = "Version 1.1"; + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(134, 29); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(108, 20); + this.textBox1.TabIndex = 35; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(45, 32); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(67, 13); + this.label11.TabIndex = 36; + this.label11.Text = "Plugin Name"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(45, 69); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(65, 13); + this.label1.TabIndex = 38; + this.label1.Text = "Game's Title"; + // + // textBox2 + // + this.textBox2.Location = new System.Drawing.Point(134, 66); + this.textBox2.Name = "textBox2"; + this.textBox2.Size = new System.Drawing.Size(108, 20); + this.textBox2.TabIndex = 37; + // + // ClickManiaSetup + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(524, 132); + this.Controls.Add(this.label1); + this.Controls.Add(this.textBox2); + this.Controls.Add(this.label11); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.label10); + this.Controls.Add(this.ButOK); + this.Name = "ClickManiaSetup"; + this.Text = "ClickManiaSetup"; + this.Load += new System.EventHandler(this.ClickManiaSetup_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button ButOK; + private Label label10; + private TextBox textBox1; + private Label label11; + private Label label1; + private TextBox textBox2; + + } +} \ No newline at end of file Added: trunk/plugins/My clickmania/ClickManiaSetup.resx =================================================================== --- trunk/plugins/My clickmania/ClickManiaSetup.resx (rev 0) +++ trunk/plugins/My clickmania/ClickManiaSetup.resx 2007-01-31 19:35:13 UTC (rev 62) @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> \ No newline at end of file Added: trunk/plugins/My clickmania/GUIClickMania.csproj =================================================================== --- trunk/plugins/My clickmania/GUIClickMania.csproj (rev 0) +++ trunk/plugins/My clickmania/GUIClickMania.csproj 2007-01-31 19:35:13 UTC (rev 62) @@ -0,0 +1,148 @@ +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectType>Local</ProjectType> + <ProductVersion>8.0.50727</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{AC53379F-3218-4C18-B0D8-052BF9ABC107}</ProjectGuid> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ApplicationIcon> + </ApplicationIcon> + <AssemblyKeyContainerName> + </AssemblyKeyContainerName> + <AssemblyName>GUIClickMania</AssemblyName> + <AssemblyOriginatorKeyFile> + </AssemblyOriginatorKeyFile> + <DefaultClientScript>JScript</DefaultClientScript> + <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout> + <DefaultTargetSchema>IE50</DefaultTargetSchema> + <DelaySign>false</DelaySign> + <OutputType>Library</OutputType> + <RootNamespace>GUIClickMania</RootNamespace> + <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent> + <StartupObject> + </StartupObject> + <FileUpgradeFlags> + </FileUpgradeFlags> + <UpgradeBackupLocation> + </UpgradeBackupLocation> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <OutputPath>bin\Debug\</OutputPath> + <AllowUnsafeBlocks>false</AllowUnsafeBlocks> + <BaseAddress>285212672</BaseAddress> + <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow> + <ConfigurationOverrideFile> + </ConfigurationOverrideFile> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <DocumentationFile> + </DocumentationFile> + <DebugSymbols>true</DebugSymbols> + <FileAlignment>4096</FileAlignment> + <NoStdLib>false</NoStdLib> + <NoWarn> + </NoWarn> + <Optimize>false</Optimize> + <RegisterForComInterop>false</RegisterForComInterop> + <RemoveIntegerChecks>false</RemoveIntegerChecks> + <TreatWarningsAsErrors>false</TreatWarningsAsErrors> + <WarningLevel>4</WarningLevel> + <DebugType>full</DebugType> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <OutputPath>bin\Release\</OutputPath> + <AllowUnsafeBlocks>false</AllowUnsafeBlocks> + <BaseAddress>285212672</BaseAddress> + <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow> + <ConfigurationOverrideFile> + </ConfigurationOverrideFile> + <DefineConstants>TRACE</DefineConstants> + <DocumentationFile> + </DocumentationFile> + <DebugSymbols>false</DebugSymbols> + <FileAlignment>4096</FileAlignment> + <NoStdLib>false</NoStdLib> + <NoWarn> + </NoWarn> + <Optimize>true</Optimize> + <RegisterForComInterop>false</RegisterForComInterop> + <RemoveIntegerChecks>false</RemoveIntegerChecks> + <TreatWarningsAsErrors>false</TreatWarningsAsErrors> + <WarningLevel>4</WarningLevel> + <DebugType>none</DebugType> + <ErrorReport>prompt</ErrorReport> + </PropertyGroup> + <ItemGroup> + <Reference Include="Core, Version=1.0.2585.31249, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>D:\sources mp\Core\bin\Release\Core.dll</HintPath> + </Reference> + <Reference Include="Dialogs, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>D:\sources mp\WindowPlugins\bin\Release\Dialogs.dll</HintPath> + </Reference> + <Reference Include="Microsoft.DirectX"> + <Name>Microsoft.DirectX</Name> + <HintPath>C:\WINDOWS\Microsoft.NET\DirectX for Managed Code\1.0.2902.0\Microsoft.DirectX.dll</HintPath> + <AssemblyFolderKey>hklm\dn\dx_1.0.2902.0</AssemblyFolderKey> + </Reference> + <Reference Include="Microsoft.DirectX.Direct3D"> + <Name>Microsoft.DirectX.Direct3D</Name> + <HintPath>C:\WINDOWS\Microsoft.NET\DirectX for Managed Code\1.0.2902.0\Microsoft.DirectX.Direct3D.dll</HintPath> + <AssemblyFolderKey>hklm\dn\dx_1.0.2902.0</AssemblyFolderKey> + </Reference> + <Reference Include="System"> + <Name>System</Name> + </Reference> + <Reference Include="System.Data"> + <Name>System.Data</Name> + </Reference> + <Reference Include="System.Drawing"> + <Name>System.Drawing</Name> + </Reference> + <Reference Include="System.Windows.Forms"> + <Name>System.Windows.Forms</Name> + </Reference> + <Reference Include="System.Xml"> + <Name>System.XML</Name> + </Reference> + <Reference Include="Utils, Version=1.0.2585.31248, Culture=neutral, processorArchitecture=MSIL"> + <SpecificVersion>False</SpecificVersion> + <HintPath>D:\sources mp\Utils\bin\Release\Utils.dll</HintPath> + </Reference> + </ItemGroup> + <ItemGroup> + <Compile Include="AssemblyInfo.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="ClickMania.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="ClickManiaControl.cs"> + <SubType>Code</SubType> + </Compile> + <Compile Include="ClickManiaSetup.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Include="ClickManiaSetup.designer.cs"> + <DependentUpon>ClickManiaSetup.cs</DependentUpon> + </Compile> + <Compile Include="myClickMania.cs"> + <SubType>Code</SubType> + </Compile> + </ItemGroup> + <ItemGroup> + <EmbeddedResource Include="ClickManiaSetup.resx"> + <DependentUpon>ClickManiaSetup.cs</DependentUpon> + <SubType>Designer</SubType> + </EmbeddedResource> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> + <PropertyGroup> + <PreBuildEvent> + </PreBuildEvent> + <PostBuildEvent> + </PostBuildEvent> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/My clickmania/GUIClickMania.csproj.user =================================================================== --- trunk/plugins/My clickmania/GUIClickMania.csproj.user (rev 0) +++ trunk/plugins/My clickmania/GUIClickMania.csproj.user 2007-01-31 19:35:13 UTC (rev 62) @@ -0,0 +1,57 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <LastOpenVersion>7.10.3077</LastOpenVersion> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ReferencePath>D:\SourceCode\mediaportal\xbmc\bin\Release\plugins\windows\;D:\SourceCode\mediaportal\xbmc\bin\Release\</ReferencePath> + <CopyProjectDestinationFolder> + </CopyProjectDestinationFolder> + <CopyProjectUncPath> + </CopyProjectUncPath> + <CopyProjectOption>0</CopyProjectOption> + <ProjectView>ProjectFiles</ProjectView> + <ProjectTrust>0</ProjectTrust> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <EnableASPDebugging>false</EnableASPDebugging> + <EnableASPXDebugging>false</EnableASPXDebugging> + <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging> + <EnableSQLServerDebugging>false</EnableSQLServerDebugging> + <RemoteDebugEnabled>false</RemoteDebugEnabled> + <RemoteDebugMachine> + </RemoteDebugMachine> + <StartAction>Project</StartAction> + <StartArguments> + </StartArguments> + <StartPage> + </StartPage> + <StartProgram> + </StartProgram> + <StartURL> + </StartURL> + <StartWorkingDirectory> + </StartWorkingDirectory> + <StartWithIE>false</StartWithIE> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <EnableASPDebugging>false</EnableASPDebugging> + <EnableASPXDebugging>false</EnableASPXDebugging> + <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging> + <EnableSQLServerDebugging>false</EnableSQLServerDebugging> + <RemoteDebugEnabled>false</RemoteDebugEnabled> + <RemoteDebugMachine> + </RemoteDebugMachine> + <StartAction>Project</StartAction> + <StartArguments> + </StartArguments> + <StartPage> + </StartPage> + <StartProgram> + </StartProgram> + <StartURL> + </StartURL> + <StartWorkingDirectory> + </StartWorkingDirectory> + <StartWithIE>true</StartWithIE> + </PropertyGroup> +</Project> \ No newline at end of file Added: trunk/plugins/My clickmania/GUIClickMania.sln =================================================================== --- trunk/plugins/My clickmania/GUIClickMania.sln (rev 0) +++ trunk/plugins/My clickmania/GUIClickMania.sln 2007-01-31 19:35:13 UTC (rev 62) @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual C# Express 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GUIClickMania", "GUIClickMania.csproj", "{AC53379F-3218-4C18-B0D8-052BF9ABC107}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {AC53379F-3218-4C18-B0D8-052BF9ABC107}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AC53379F-3218-4C18-B0D8-052BF9ABC107}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AC53379F-3218-4C18-B0D8-052BF9ABC107}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AC53379F-3218-4C18-B0D8-052BF9ABC107}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Added: trunk/plugins/My clickmania/GUIClickMania.suo =================================================================== (Binary files differ) Property changes on: trunk/plugins/My clickmania/GUIClickMania.suo ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/My clickmania/UpgradeLog.XML =================================================================== --- trunk/plugins/My clickmania/UpgradeLog.XML (rev 0) +++ trunk/plugins/My clickmania/UpgradeLog.XML 2007-01-31 19:35:13 UTC (rev 62) @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?xml-stylesheet type='text/xsl' href='_UpgradeReport_Files/UpgradeReport.xslt'?> +<UpgradeLog> +<Properties><Property Name="Solution" Value="GUIClickMania"> +</Property><Property Name="Fichier solution" Value="C:\mediaportal_plugin\MyClickMania\GUIClickMania.sln"> +</Property><Property Name="Fichier d'options utilisateur" Value="C:\mediaportal_plugin\MyClickMania\GUIClickMania.suo"> +</Property><Property Name="Date" Value="samedi 30 décembre 2006"> +</Property><Property Name="Time" Value="10:58"> +</Property></Properties><Event ErrorLevel="0" Project="" Source="GUIClickMania.sln" Description="Fichier correctement sauvegardé en tant que C:\mediaportal_plugin\MyClickMania\Backup\GUIClickMania.sln"> +</Event><Event ErrorLevel="0" Project="" Source="GUIClickMania.suo" Description="Fichier correctement sauvegardé en tant que C:\mediaportal_plugin\MyClickMania\Backup\GUIClickMania.suo"> +</Event><Event ErrorLevel="0" Project="GUIClickMania" Source="GUIClickMania.csproj" Description="Fichier projet correctement sauvegardé en tant que C:\mediaportal_plugin\MyClickMania\Backup\GUIClickMania.csproj"> +</Event><Event ErrorLevel="0" Project="GUIClickMania" Source="GUIClickMania.csproj.user" Description="Fichier utilisateur de projet correctement sauvegardé en tant que C:\mediaportal_plugin\MyClickMania\Backup\GUIClickMania.csproj.user"> +</Event><Event ErrorLevel="0" Project="GUIClickMania" Source="AssemblyInfo.cs" Description="Fichier correctement sauvegardé en tant que C:\mediaportal_plugin\MyClickMania\Backup\AssemblyInfo.cs"> +</Event><Event ErrorLevel="0" Project="GUIClickMania" Source="ClickMania.cs" Description="Fichier correctement sauvegardé en tant que C:\mediaportal_plugin\MyClickMania\Backup\ClickMania.cs"> +</Event><Event ErrorLevel="0" Project="GUIClickMania" Source="ClickManiaControl.cs" Description="Fichier correctement sauvegardé en tant que C:\mediaportal_plugin\MyClickMania\Backup\ClickManiaControl.cs"> +</Event><Event ErrorLevel="0" Project="GUIClickMania" Source="myClickMania.cs" Description="Fichier correctement sauvegardé en tant que C:\mediaportal_plugin\MyClickMania\Backup\myClickMania.cs"> +</Event><Event ErrorLevel="0" Project="GUIClickMania" Source="GUIClickMania.csproj" Description="Projet correctement converti"> +</Event><Event ErrorLevel="3" Project="GUIClickMania" Source="GUIClickMania.csproj" Description="Converted"> +</Event><Event ErrorLevel="0" Project="" Source="GUIClickMania.sln" Description="Solution correctement convertie"> +</Event><Event ErrorLevel="3" Project="" Source="GUIClickMania.sln" Description="Converted"> +</Event><Event ErrorLevel="0" Project="GUIClickMania" Source="GUIClickMania.csproj" Description="Analyse terminée : la mise à niveau n'est pas requise pour les fichiers projet."> +</Event></UpgradeLog> Added: trunk/plugins/My clickmania/bin/Release/Core.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/My clickmania/bin/Release/Core.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/My clickmania/bin/Release/Dialogs.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/My clickmania/bin/Release/Dialogs.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/My clickmania/bin/Release/GUIClickMania.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/My clickmania/bin/Release/GUIClickMania.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/My clickmania/bin/Release/Utils.dll =================================================================== (Binary files differ) Property changes on: trunk/plugins/My clickmania/bin/Release/Utils.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/plugins/My clickmania/myClickMania.cs =================================================================== --- trunk/plugins/My clickmania/myClickMania.cs (rev 0) +++ t... [truncated message content] |