Skip to content

Commit

Permalink
Add more net events to the library
Browse files Browse the repository at this point in the history
  • Loading branch information
nyfrk committed Aug 24, 2020
1 parent bd28e46 commit 3ab2ebf
Show file tree
Hide file tree
Showing 19 changed files with 1,043 additions and 109 deletions.
3 changes: 3 additions & 0 deletions Examples/HelloWorld/HelloWorld/HelloWorld.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@
<ItemGroup>
<ClCompile Include="dllmain.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="S4ModApi.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
Expand Down
5 changes: 5 additions & 0 deletions Examples/HelloWorld/HelloWorld/HelloWorld.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,9 @@
<Filter>Quelldateien</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="S4ModApi.h">
<Filter>Headerdateien</Filter>
</ClInclude>
</ItemGroup>
</Project>
50 changes: 37 additions & 13 deletions Examples/HelloWorld/HelloWorld/S4ModApi.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ enum S4_OBJECT_TYPE : WORD {
S4_OBJECT_GOOD_BOARD,
S4_OBJECT_GOOD_BOW,
S4_OBJECT_GOOD_BREAD,
S4_OBJECT_GOOD_COAL,
S4_OBJECT_GOOD_COAL, // 10
S4_OBJECT_GOOD_FISH,
S4_OBJECT_GOOD_FLOUR,
S4_OBJECT_GOOD_GOAT,
Expand All @@ -84,7 +84,7 @@ enum S4_OBJECT_TYPE : WORD {
S4_OBJECT_GOOD_GUNPOWDER,
S4_OBJECT_GOOD_HAMMER,
S4_OBJECT_GOOD_HONEY,
S4_OBJECT_GOOD_IRONBAR,
S4_OBJECT_GOOD_IRONBAR,// 20
S4_OBJECT_GOOD_IRONORE,
S4_OBJECT_GOOD_LOG,
S4_OBJECT_GOOD_MEAD,
Expand All @@ -94,7 +94,7 @@ enum S4_OBJECT_TYPE : WORD {
S4_OBJECT_GOOD_ROD,
S4_OBJECT_GOOD_SAW,
S4_OBJECT_GOOD_SCYTHE,
S4_OBJECT_GOOD_SHEEP,
S4_OBJECT_GOOD_SHEEP, // 30
S4_OBJECT_GOOD_SHOVEL,
S4_OBJECT_GOOD_STONE,
S4_OBJECT_GOOD_SULFUR,
Expand All @@ -104,7 +104,7 @@ enum S4_OBJECT_TYPE : WORD {
S4_OBJECT_GOOD_WINE,
S4_OBJECT_GOOD_BACKPACKCATAPULT,
S4_OBJECT_GOOD_GOOSE,
S4_OBJECT_GOOD_EXPLOSIVEARROW,
S4_OBJECT_GOOD_EXPLOSIVEARROW, // 40
S4_OBJECT_GOOD_SUNFLOWEROIL,
S4_OBJECT_GOOD_SUNFLOWER, // good id 42

Expand All @@ -121,7 +121,7 @@ enum S4_OBJECT_TYPE : WORD {
S4_OBJECT_BUILDING_HUNTERHUT,
S4_OBJECT_BUILDING_SLAUGHTERHOUSE,
S4_OBJECT_BUILDING_MILL,
S4_OBJECT_BUILDING_BAKERY,
S4_OBJECT_BUILDING_BAKERY, // 10
S4_OBJECT_BUILDING_GRAINFARM,
S4_OBJECT_BUILDING_ANIMALRANCH,
S4_OBJECT_BUILDING_DONKEYRANCH,
Expand All @@ -131,7 +131,7 @@ enum S4_OBJECT_TYPE : WORD {
S4_OBJECT_BUILDING_COALMINE,
S4_OBJECT_BUILDING_SULFURMINE,
S4_OBJECT_BUILDING_SMELTGOLD,
S4_OBJECT_BUILDING_SMELTIRON,
S4_OBJECT_BUILDING_SMELTIRON, // 20
S4_OBJECT_BUILDING_TOOLSMITH,
S4_OBJECT_BUILDING_WEAPONSMITH,
S4_OBJECT_BUILDING_VEHICLEHALL,
Expand All @@ -141,7 +141,7 @@ enum S4_OBJECT_TYPE : WORD {
S4_OBJECT_BUILDING_HEALERHUT,
S4_OBJECT_BUILDING_AMMOMAKERHUT,
S4_OBJECT_BUILDING_GUNPOWDERMAKERHUT,
S4_OBJECT_BUILDING_LANDSCAPEMAKERHUT,
S4_OBJECT_BUILDING_LANDSCAPEMAKERHUT, // 30
S4_OBJECT_BUILDING_SHIPYARD,
S4_OBJECT_BUILDING_PORT,
S4_OBJECT_BUILDING_MARKETPLACE,
Expand All @@ -151,7 +151,7 @@ enum S4_OBJECT_TYPE : WORD {
S4_OBJECT_BUILDING_TEQUILAMAKERHUT,
S4_OBJECT_BUILDING_BEEKEEPERHUT,
S4_OBJECT_BUILDING_MEADMAKERHUT,
S4_OBJECT_BUILDING_RESIDENCESMALL,
S4_OBJECT_BUILDING_RESIDENCESMALL,// 40
S4_OBJECT_BUILDING_RESIDENCEMEDIUM,
S4_OBJECT_BUILDING_RESIDENCEBIG,
S4_OBJECT_BUILDING_SMALLTEMPLE,
Expand All @@ -161,7 +161,7 @@ enum S4_OBJECT_TYPE : WORD {
S4_OBJECT_BUILDING_GUARDTOWERBIG,
S4_OBJECT_BUILDING_CASTLE,
S4_OBJECT_BUILDING_MUSHROOMFARM,
S4_OBJECT_BUILDING_DARKTEMPLE,
S4_OBJECT_BUILDING_DARKTEMPLE, // 50
S4_OBJECT_BUILDING_FORTRESS,
S4_OBJECT_BUILDING_PORTA,
S4_OBJECT_BUILDING_PORTB,
Expand Down Expand Up @@ -226,9 +226,11 @@ enum S4_OBJECT_TYPE : WORD {
S4_OBJECT_SETTLER_AGAVEFARMER,
S4_OBJECT_SETTLER_TEQUILAMAKER,
S4_OBJECT_SETTLER_SWORDSMAN_01,
S4_OBJECT_SETTLER_DARK_WARRIOR = S4_OBJECT_SETTLER_SWORDSMAN_01,
S4_OBJECT_SETTLER_SWORDSMAN_02,
S4_OBJECT_SETTLER_SWORDSMAN_03,
S4_OBJECT_SETTLER_BOWMAN_01,
S4_OBJECT_SETTLER_DARK_THROWER = S4_OBJECT_SETTLER_BOWMAN_01,
S4_OBJECT_SETTLER_BOWMAN_02,
S4_OBJECT_SETTLER_BOWMAN_03,
S4_OBJECT_SETTLER_MEDIC_01,
Expand Down Expand Up @@ -286,9 +288,13 @@ enum S4_OBJECT_TYPE : WORD {
// INDEX
S4_OBJECT_TRIBE_INDEX = S4_OBJECT_TRIBE_ROMAN,
S4_OBJECT_GOOD_INDEX = S4_OBJECT_GOOD_AGAVE,
S4_OBJECT_GOOD_INDEX_LAST = S4_OBJECT_GOOD_SUNFLOWER,
S4_OBJECT_BUILDING_INDEX = S4_OBJECT_BUILDING_WOODCUTTERHUT,
S4_OBJECT_BUILDING_LAST = S4_OBJECT_BUILDING_SUNFLOWERFARMERHUT,
S4_OBJECT_SETTLER_INDEX = S4_OBJECT_SETTLER_CARRIER,
S4_OBJECT_SETTLER_INDEX_LAST = S4_OBJECT_SETTLER_MANACOPTERMASTER,
S4_OBJECT_VEHICLE_INDEX = S4_OBJECT_VEHICLE_WARSHIP,
S4_OBJECT_VEHICLE_INDEX_LAST = S4_OBJECT_VEHICLE_FOUNDATION_CART,
S4_OBJECT_PLANT_INDEX = S4_OBJECT_PLANT_1,

};
Expand Down Expand Up @@ -371,7 +377,7 @@ enum S4_GUI_ENUM : DWORD {
S4_GUI_ENUM_MAXVALUE // never put anything below this
};

enum S4_SETTLER_TYPE_ENUM : WORD {
/*enum S4_SETTLER_TYPE_ENUM : WORD {
S4_SETTLER_WARSHIP = 1,
S4_SETTLER_FERRY = 2,
S4_SETTLER_WARMACHINE = 4,
Expand Down Expand Up @@ -403,7 +409,7 @@ enum S4_SETTLER_TYPE_ENUM : WORD {
S4_SETTLER_BACKPACK_LV3,
S4_SETTLER_DARK_WARRIOR = S4_SETTLER_SWORDMAN_LV1,
S4_SETTLER_DARK_THROWER = S4_SETTLER_BOWMAN_LV1,
};
};*/

enum S4_MOVEMENT_ENUM : DWORD {
S4_MOVEMENT_FORWARD,
Expand Down Expand Up @@ -493,13 +499,31 @@ DECLARE_INTERFACE_(ISettlers4Api, IUnknown) {
/** Settlers 4 functions **/
STDMETHOD(GetHoveringUiElement)(THIS_ LPS4UIELEMENT) PURE;
STDMETHOD_(BOOL, IsCurrentlyOnScreen)(THIS_ S4_GUI_ENUM) PURE;
STDMETHOD_(BOOL, SendWarriors)(THIS_ INT x, INT y, S4_MOVEMENT_ENUM mode, PWORD warriors, SIZE_T countOfWarriors) PURE;
STDMETHOD_(BOOL, RecruitWarriors)(THIS_ DWORD building, S4_SETTLER_TYPE_ENUM unit, INT amount);
STDMETHOD_(BOOL, IsObjectOfType)(THIS_ WORD object, S4_OBJECT_TYPE type);
STDMETHOD_(BOOL, ClearSelection)(THIS) PURE;
STDMETHOD_(BOOL, GetSelection)(THIS_ PWORD out, SIZE_T outlen, PSIZE_T selectionCount) PURE;
STDMETHOD_(BOOL, RemoveSelection)(THIS_ PWORD settlers, SIZE_T settlerslen, PSIZE_T removedCount) PURE;

/** Settlers 4 NetEvents functions **/
STDMETHOD_(BOOL, SendWarriors)(THIS_ INT x, INT y, S4_MOVEMENT_ENUM mode, PWORD warriors, SIZE_T countOfWarriors, DWORD player = 0) PURE;
STDMETHOD_(BOOL, BuildBuilding)(THIS_ S4_OBJECT_TYPE buildingType, INT x, INT y, DWORD player = 0) PURE; // defined in CS4Build.cpp
STDMETHOD_(BOOL, CrushBuilding)(THIS_ DWORD building, DWORD player = 0) PURE; // defined in CS4Build.cpp
STDMETHOD_(BOOL, ToggleBuildingPriority)(THIS_ DWORD building, DWORD player = 0) PURE; // defined in CS4Build.cpp
STDMETHOD_(BOOL, ToggleBuildingHalt)(THIS_ DWORD building, DWORD player = 0) PURE; // defined in CS4Build.cpp
STDMETHOD_(BOOL, SetBuildingWorkarea)(THIS_ DWORD building, INT x, INT y, DWORD player = 0) PURE; // defined in CS4Build.cpp
STDMETHOD_(BOOL, SetBuildingProduction)(THIS_ DWORD building, S4_OBJECT_TYPE good, INT amount, DWORD player = 0) PURE; // defined in CS4Build.cpp
STDMETHOD_(BOOL, SetBuildingProductionPercentMode)(THIS_ DWORD building, BOOL enable, DWORD player = 0) PURE; // defined in CS4Build.cpp
STDMETHOD_(BOOL, SetBuildingProductionPercentage)(THIS_ DWORD building, BYTE swords, BYTE bows, BYTE armors, BYTE racespecialweapons, DWORD player = 0) PURE; // defined in CS4Build.cpp
STDMETHOD_(BOOL, CastSpell)(THIS_ DWORD priest, DWORD spell, INT x, INT y, DWORD player = 0) PURE; // defined in CS4Casting.cpp
STDMETHOD_(BOOL, GarrisonWarriors)(THIS_ DWORD building, DWORD player = 0) PURE; // defined in CS4GarrisonWarriors.cpp
STDMETHOD_(BOOL, UnGarrisonWarriors)(THIS_ DWORD building, INT column, BOOL bowman, DWORD player = 0) PURE; // defined in CS4GarrisonWarriors.cpp
STDMETHOD_(BOOL, ChangeGoodDistribution)(THIS_ S4_OBJECT_TYPE good, S4_OBJECT_TYPE building, INT percent, DWORD ecosector, DWORD player = 0) PURE; // defined in CS4GoodDistribution.cpp
STDMETHOD_(BOOL, ChangeGoodPriority)(THIS_ S4_OBJECT_TYPE good, INT offset, DWORD ecosector, DWORD player = 0) PURE; // defined in CS4GoodDistribution.cpp
STDMETHOD_(BOOL, RecruitWarriors)(THIS_ DWORD building, S4_OBJECT_TYPE unit, INT amount, DWORD player = 0) PURE; // defined in CS4Recruit.cpp
STDMETHOD_(BOOL, SetTradingRoute)(THIS_ DWORD sourceBuilding, DWORD destinationBuilding, DWORD player = 0) PURE; // defined in CS4Trading.cpp
STDMETHOD_(BOOL, TradeGood)(THIS_ DWORD buidling, S4_OBJECT_TYPE good, INT amount, DWORD player = 0) PURE; // defined in CS4Trading.cpp
STDMETHOD_(BOOL, StoreGood)(THIS_ DWORD buidling, S4_OBJECT_TYPE good, BOOL enable, DWORD player = 0) PURE; // defined in CS4Trading.cpp

/** UI Rendering **/
STDMETHOD_(S4CUSTOMUI, ShowMessageBox)(THIS_ LPCWSTR title, LPCWSTR message, INT x, INT y, INT w, INT h) PURE;
STDMETHOD_(S4CUSTOMUI, CreateCustomUiElement)(THIS_ LPCS4CUSTOMUIELEMENT) PURE;
Expand Down
Loading

0 comments on commit 3ab2ebf

Please sign in to comment.