diff options
Diffstat (limited to '')
-rw-r--r-- | Modis/SDK/UPartyDefs.pas | 376 |
1 files changed, 188 insertions, 188 deletions
diff --git a/Modis/SDK/UPartyDefs.pas b/Modis/SDK/UPartyDefs.pas index 0d6c4fb9..09f97812 100644 --- a/Modis/SDK/UPartyDefs.pas +++ b/Modis/SDK/UPartyDefs.pas @@ -1,189 +1,189 @@ -unit UPartyDefs;
-{*********************
- uPluginDefs
- Some Basic Structures and Functions used to communicate with Plugins
- Usable as Delphi Plugin SDK
-*********************}
-
-interface
-
-{$IFDEF FPC}
- {$MODE Delphi}
-{$ENDIF}
-
-{$I switches.inc}
-
-uses UPluginDefs;
-
-type
- //----------------
- // TUS_Party_Proc_Init - Structure of the Party Init Proc
- // This Function is called on SingScreen Init Everytime this Modi should be sung
- // Return Non Zero to Abort Party Modi Loading... In this Case another Plugin will be loaded
- //----------------
- TUS_Party_Proc_Init = Function (ID: Integer): integer; stdcall;
-
- //----------------
- // TUS_Party_Proc_Draw - Structure of the Party Draw Proc
- // This Function is called on SingScreen Draw (Not when Paused). You should draw in this Proc
- // Return Non Zero to Finish Song... In this Case Score Screen is loaded
- //----------------
- TUS_Party_Proc_Draw = Function (ID: Integer): integer; stdcall;
-
- //----------------
- // TUS_Party_Proc_DeInit - Structure of the Party DeInit Proc
- // This Function is called on SingScreen DeInit When Plugin abort Song or Song finishes
- // Return Winner
- //----------------
- TUS_Party_Proc_DeInit = Function (ID: Integer): integer; stdcall;
-
- //----------------
- // TUS_ModiInfo - Some Infos from Plugin to Partymode.
- // Used to register party modi to Party manager
- // ---
- // Version Structure:
- // First Byte: Head Revison
- // Second Byte: Sub Revison
- // Third Byte: Sub Revision 2
- // Fourth Byte: Letter (For Bug Fix releases. 0 or 'a' .. 'z')
- //----------------
- TModiInfo_Name = Array [0..31] of Char;
- TModiInfo_Desc = Array [0..63] of Char;
-
- PUS_ModiInfo = ^TUS_ModiInfo;
- TUS_ModiInfo = record
- //Size of this record (usefull if record will be extended in the future)
- cbSize: Integer; //Don't forget to set this as Plugin!
-
- //Infos about the Modi
- Name : TModiInfo_Name; //Modiname to Register for the Plugin
- Description: TModiInfo_Desc; //Plugin Description
-
- //------------
- // Loading Settings
- // ---
- // Bit to Set | Triggered Option
- // 1 | Song should be loaded
- // 2 | Song has to be Non Duett
- // 4 | Song has to be Duett (If 2 and 4 is set, both will be ignored)
- // 8 | Only Playable with 2 and more players
- // 16 | Restrict Background Loading
- // 32 | Restrict Video Loading
- // 64 | Increase TimesPlayed for Cur. Player
- // 128 | Not in Use, Don't set it!
- LoadingSettings: Byte;
-
- // SingScreen Settings
- // ---
- // Bit to Set | Triggered Option
- // 1 | ShowNotes
- // 2 | ShowScores
- // 4 | ShowTime
- // 8 | Start Audio Playback automaticaly
- // 16 | Not in Use, Don't set it!
- // 32 | Not in Use, Don't set it!
- // 64 | Not in Use, Don't set it!
- // 128 | Not in Use, Don't set it!
- SingScreenSettings: Byte;
-
- // With which count of players can this modi be played
- // ---
- //Set different Bits
- //1 -> One Player
- //2 -> Two Players
- //4 -> Three Players
- //8 -> Four Players
- //16-> Six Players
- //e.g. : 10 -> Playable with 2 and 4 Players
- NumPlayers: Byte;
-
- // ID that is given to the Party Procs when they are called
- // If this Modi is running
- // (e.g. to register Until 2000 and Until 5000 with the same Procs
- // ID is the Max Point Count in this example)
- ID: Integer;
-
- // Party Procs called on Party
- // ---
- // Set to nil(C: NULL) if u don't want to use this method
- ModiInit: TUS_Party_Proc_Init;
- ModiDraw: TUS_Party_Proc_Draw;
- ModiDeInit: TUS_Party_Proc_DeInit;
- end;
-
- //--------------
- // Team Info Record. Used by "Party/GetTeamInfo" and "Party/SetTeamInfo"
- //--------------
- TTeamInfo = record
- NumTeams: Byte;
- Teaminfo: array[0..5] of record
- Name: PChar; //Teamname
- Score: Word; //TeamScore
- Joker: Byte; //Team Jokers available
- CurPlayer: Byte; //Id of Cur. Playing Player
- NumPlayers: Byte;
- Playerinfo: array[0..3] of record
- Name: PChar; //Playername
- TimesPlayed: Byte; //How often this Player has Sung
- end;
- end;
- end;
-
-//----------------
-// Some Default Constants
-//----------------
-const
- // to use for TUS_ModiInfo.LoadingSettings
- MLS_LoadSong = 1; //Song should be loaded
- MLS_NotDuett = 2; //Song has to be Non Duett
- MLS_ForceDuett = 4; //Song has to be Duett (If 2 and 4 is set, both will be ignored)
- MLS_TeamOnly = 8; //Only Playable with 2 and more players
- MLS_RestrictBG = 16; //Restrict Background Loading
- MLS_RestrictVid = 32; //Restrict Video Loading
- MLS_IncTP = 64; //Increase TimesPlayed for Cur. Player
-
- // to use with TUS_ModiInfo.SingScreenSettings
- MSS_ShowNotes = 1; //ShowNotes
- MSS_ShowScores = 2; //ShowScores
- MSS_ShowTime = 4; //ShowTime
- MSS_AutoPlayback= 8; //Start Audio Playback automaticaly
-
- //Standard (Duell) for TUS_ModiInfo.LoadingSettings and TUS_ModiInfo.SingScreenSettings
- MLS_Standard = MLS_LoadSong or MLS_IncTP;
- MSS_Standard = MSS_ShowNotes or MSS_ShowScores or MSS_ShowTime or MSS_AutoPlayback;
-
-//-------------
-// Some helper functions to register Party Modi
-//-------------
-Function RegisterModi(const PluginInterface: PUS_PluginInterface; const Name: TModiInfo_Name; const Description: TModiInfo_Desc; const LoadingSettings, SingScreenSettings, NumPlayers: Byte; const ID: Integer; const ModiInit: TUS_Party_Proc_Init = nil; const ModiDeInit: TUS_Party_Proc_DeInit = nil; const ModiDraw: TUS_Party_Proc_Draw = nil): THandle;
-
-
-
-implementation
-
-//-------------
-// Function that Prepares the ModiInfo Record and Calls Party/RegisterModi
-//-------------
-Function RegisterModi(const PluginInterface: PUS_PluginInterface; const Name: TModiInfo_Name; const Description: TModiInfo_Desc; const LoadingSettings, SingScreenSettings, NumPlayers: Byte; const ID: Integer; const ModiInit: TUS_Party_Proc_Init; const ModiDeInit: TUS_Party_Proc_DeInit; const ModiDraw: TUS_Party_Proc_Draw): THandle;
-var
- ModiInfo: TUS_ModiInfo;
-begin
- //Init Record
- ModiInfo.cbSize := SizeOf(TUS_ModiInfo);
-
- ModiInfo.Name := Name;
- ModiInfo.Description := Description;
- ModiInfo.LoadingSettings := LoadingSettings;
- ModiInfo.SingScreenSettings := SingScreenSettings;
- ModiInfo.NumPlayers := NumPlayers;
-
- ModiInfo.ID := ID;
- ModiInfo.ModiInit := ModiInit;
- ModiInfo.ModiDraw := ModiDraw;
- ModiInfo.ModiDeInit := ModiDeInit;
-
- //Call Service
- Result := PluginInterface.CallService('Party/RegisterModi', Integer(@ModiInfo), nil);
-end;
-
+unit UPartyDefs; +{********************* + uPluginDefs + Some Basic Structures and Functions used to communicate with Plugins + Usable as Delphi Plugin SDK +*********************} + +interface + +{$IFDEF FPC} + {$MODE Delphi} +{$ENDIF} + +{$I switches.inc} + +uses UPluginDefs; + +type + //---------------- + // TUS_Party_Proc_Init - Structure of the Party Init Proc + // This Function is called on SingScreen Init Everytime this Modi should be sung + // Return Non Zero to Abort Party Modi Loading... In this Case another Plugin will be loaded + //---------------- + TUS_Party_Proc_Init = Function (ID: Integer): integer; stdcall; + + //---------------- + // TUS_Party_Proc_Draw - Structure of the Party Draw Proc + // This Function is called on SingScreen Draw (Not when Paused). You should draw in this Proc + // Return Non Zero to Finish Song... In this Case Score Screen is loaded + //---------------- + TUS_Party_Proc_Draw = Function (ID: Integer): integer; stdcall; + + //---------------- + // TUS_Party_Proc_DeInit - Structure of the Party DeInit Proc + // This Function is called on SingScreen DeInit When Plugin abort Song or Song finishes + // Return Winner + //---------------- + TUS_Party_Proc_DeInit = Function (ID: Integer): integer; stdcall; + + //---------------- + // TUS_ModiInfo - Some Infos from Plugin to Partymode. + // Used to register party modi to Party manager + // --- + // Version Structure: + // First Byte: Head Revison + // Second Byte: Sub Revison + // Third Byte: Sub Revision 2 + // Fourth Byte: Letter (For Bug Fix releases. 0 or 'a' .. 'z') + //---------------- + TModiInfo_Name = Array [0..31] of Char; + TModiInfo_Desc = Array [0..63] of Char; + + PUS_ModiInfo = ^TUS_ModiInfo; + TUS_ModiInfo = record + //Size of this record (usefull if record will be extended in the future) + cbSize: Integer; //Don't forget to set this as Plugin! + + //Infos about the Modi + Name : TModiInfo_Name; //Modiname to Register for the Plugin + Description: TModiInfo_Desc; //Plugin Description + + //------------ + // Loading Settings + // --- + // Bit to Set | Triggered Option + // 1 | Song should be loaded + // 2 | Song has to be Non Duett + // 4 | Song has to be Duett (If 2 and 4 is set, both will be ignored) + // 8 | Only Playable with 2 and more players + // 16 | Restrict Background Loading + // 32 | Restrict Video Loading + // 64 | Increase TimesPlayed for Cur. Player + // 128 | Not in Use, Don't set it! + LoadingSettings: Byte; + + // SingScreen Settings + // --- + // Bit to Set | Triggered Option + // 1 | ShowNotes + // 2 | ShowScores + // 4 | ShowTime + // 8 | Start Audio Playback automaticaly + // 16 | Not in Use, Don't set it! + // 32 | Not in Use, Don't set it! + // 64 | Not in Use, Don't set it! + // 128 | Not in Use, Don't set it! + SingScreenSettings: Byte; + + // With which count of players can this modi be played + // --- + //Set different Bits + //1 -> One Player + //2 -> Two Players + //4 -> Three Players + //8 -> Four Players + //16-> Six Players + //e.g. : 10 -> Playable with 2 and 4 Players + NumPlayers: Byte; + + // ID that is given to the Party Procs when they are called + // If this Modi is running + // (e.g. to register Until 2000 and Until 5000 with the same Procs + // ID is the Max Point Count in this example) + ID: Integer; + + // Party Procs called on Party + // --- + // Set to nil(C: NULL) if u don't want to use this method + ModiInit: TUS_Party_Proc_Init; + ModiDraw: TUS_Party_Proc_Draw; + ModiDeInit: TUS_Party_Proc_DeInit; + end; + + //-------------- + // Team Info Record. Used by "Party/GetTeamInfo" and "Party/SetTeamInfo" + //-------------- + TTeamInfo = record + NumTeams: Byte; + Teaminfo: array[0..5] of record + Name: PChar; //Teamname + Score: Word; //TeamScore + Joker: Byte; //Team Jokers available + CurPlayer: Byte; //Id of Cur. Playing Player + NumPlayers: Byte; + Playerinfo: array[0..3] of record + Name: PChar; //Playername + TimesPlayed: Byte; //How often this Player has Sung + end; + end; + end; + +//---------------- +// Some Default Constants +//---------------- +const + // to use for TUS_ModiInfo.LoadingSettings + MLS_LoadSong = 1; //Song should be loaded + MLS_NotDuett = 2; //Song has to be Non Duett + MLS_ForceDuett = 4; //Song has to be Duett (If 2 and 4 is set, both will be ignored) + MLS_TeamOnly = 8; //Only Playable with 2 and more players + MLS_RestrictBG = 16; //Restrict Background Loading + MLS_RestrictVid = 32; //Restrict Video Loading + MLS_IncTP = 64; //Increase TimesPlayed for Cur. Player + + // to use with TUS_ModiInfo.SingScreenSettings + MSS_ShowNotes = 1; //ShowNotes + MSS_ShowScores = 2; //ShowScores + MSS_ShowTime = 4; //ShowTime + MSS_AutoPlayback= 8; //Start Audio Playback automaticaly + + //Standard (Duell) for TUS_ModiInfo.LoadingSettings and TUS_ModiInfo.SingScreenSettings + MLS_Standard = MLS_LoadSong or MLS_IncTP; + MSS_Standard = MSS_ShowNotes or MSS_ShowScores or MSS_ShowTime or MSS_AutoPlayback; + +//------------- +// Some helper functions to register Party Modi +//------------- +Function RegisterModi(const PluginInterface: PUS_PluginInterface; const Name: TModiInfo_Name; const Description: TModiInfo_Desc; const LoadingSettings, SingScreenSettings, NumPlayers: Byte; const ID: Integer; const ModiInit: TUS_Party_Proc_Init = nil; const ModiDeInit: TUS_Party_Proc_DeInit = nil; const ModiDraw: TUS_Party_Proc_Draw = nil): THandle; + + + +implementation + +//------------- +// Function that Prepares the ModiInfo Record and Calls Party/RegisterModi +//------------- +Function RegisterModi(const PluginInterface: PUS_PluginInterface; const Name: TModiInfo_Name; const Description: TModiInfo_Desc; const LoadingSettings, SingScreenSettings, NumPlayers: Byte; const ID: Integer; const ModiInit: TUS_Party_Proc_Init; const ModiDeInit: TUS_Party_Proc_DeInit; const ModiDraw: TUS_Party_Proc_Draw): THandle; +var + ModiInfo: TUS_ModiInfo; +begin + //Init Record + ModiInfo.cbSize := SizeOf(TUS_ModiInfo); + + ModiInfo.Name := Name; + ModiInfo.Description := Description; + ModiInfo.LoadingSettings := LoadingSettings; + ModiInfo.SingScreenSettings := SingScreenSettings; + ModiInfo.NumPlayers := NumPlayers; + + ModiInfo.ID := ID; + ModiInfo.ModiInit := ModiInit; + ModiInfo.ModiDraw := ModiDraw; + ModiInfo.ModiDeInit := ModiDeInit; + + //Call Service + Result := PluginInterface.CallService('Party/RegisterModi', Integer(@ModiInfo), nil); +end; + end.
\ No newline at end of file |