Merge branch 'master' into heavy-resources

heavy-resources
Clonkonaut 2014-01-26 21:58:30 +01:00
commit 8fa4929680
118 changed files with 1300 additions and 5289 deletions

View File

@ -562,6 +562,7 @@ if(APPLE)
src/platform/C4FileMonitorMac.mm
src/platform/C4AppDelegate.h
src/platform/C4AppDelegate.mm
src/platform/StdSchedulerMac.mm
)
else()
list(APPEND OC_SYSTEM_SOURCES
@ -977,6 +978,8 @@ add_executable(c4group
add_executable(netpuncher EXCLUDE_FROM_ALL
src/platform/StdScheduler.cpp
src/platform/StdSchedulerWin32.cpp
src/platform/StdSchedulerPoll.cpp
src/netpuncher/main.cpp
)
@ -1006,6 +1009,8 @@ src/platform/StdFile.h
src/platform/StdRegistry.cpp
src/platform/StdRegistry.h
src/platform/StdScheduler.cpp
src/platform/StdSchedulerWin32.cpp
src/platform/StdSchedulerPoll.cpp
src/platform/StdScheduler.h
src/platform/C4TimeMilliseconds.cpp
src/platform/C4TimeMilliseconds.h
@ -1418,10 +1423,6 @@ endif()
############################################################################
# installation
############################################################################
# Install the icon into share/icons/hicolor/48x48/apps/openclonk.png. Do this by
# extracting the correct size from oc.ico. Currently this is layer 2 - let's
# hope that it stays this way.
# Don't allow installation for WITH_AUTOMATIC_UPDATE because otherwise
# the installed binary wouldn't find its game data in the system data path.
IF(WITH_AUTOMATIC_UPDATE)
@ -1438,21 +1439,37 @@ install(
)"
)
FIND_PACKAGE(ImageMagick COMPONENTS convert)
if(ImageMagick_convert_FOUND)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/openclonk.png
COMMAND "${ImageMagick_convert_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc.ico[2]" "${CMAKE_CURRENT_BINARY_DIR}/openclonk.png"
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc.ico
VERBATIM
)
add_custom_target(icon DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/openclonk.png)
add_dependencies(data icon)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/openclonk.png
DESTINATION share/icons/hicolor/48x48/apps
)
endif()
add_custom_target(icon32 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc32.png)
add_custom_target(icon64 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc64.png)
add_custom_target(icon128 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc128.png)
add_custom_target(icon256 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc256.png)
add_custom_target(icon512 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc512.png)
add_dependencies(data icon32 icon64 icon128 icon256 icon512)
install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc32.png
DESTINATION share/icons/hicolor/32x32/apps
RENAME openclonk.png
)
install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc64.png
DESTINATION share/icons/hicolor/64x64/apps
RENAME openclonk.png
)
install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc128.png
DESTINATION share/icons/hicolor/128x128/apps
RENAME openclonk.png
)
install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc256.png
DESTINATION share/icons/hicolor/256x256/apps
RENAME openclonk.png
)
install(
FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc512.png
DESTINATION share/icons/hicolor/512x512/apps
RENAME openclonk.png
)
set(OC_C4GROUPS
Graphics.ocg

View File

@ -1,25 +1,30 @@
<Engine and Tools>
Armin Burgmeier (Clonk-Karl)
Günther Brammer (Günther)
Nicolas Hake (Isilkor)
Günther Brammer (Günther)
Sven Eberhardt (Sven2)
Nicolas Hake (Isilkor)
Martin Plicht (Mortimer)
Peter Wortmann (PeterW)
Julius Michaelis (Caesar)
<Scripting and Content>
Maikel de Vries (Maikel)
David Dormagen (Zapper)
Felix Wagner (Clonkonaut)
Bernhard Bonigl (Boni)
<Art and Content>
Charles Spurrill (Ringwaul)
Richard Gerum (Randrian)
Timo Stabbert (Mimmo)
Matthias Rottländer (Matthi)
Felix Riese (Fungiform)
Florian Graier (Nachtfalter)
<Scripting and Content>
Maikel de Vries (Maikel)
Bernhard Bonigl (Boni)
Felix Wagner (Clonkonaut)
David Dormagen (Zapper)
<Coordination, Administration>
<Coordination>
Tobias Zwick (Newton)
<Thanks to Contributors>
Benjamin Herr (Loriel), Matthias Rottländer (Matthi), Felix Riese (Fungiform), Manuel Riecke (MrBeast), Benedict Etzel (B_E), Carl-Philip Hänsch (Carli), Alexander Semeniuk (AlteredARMOR), Florian Graier (Nachtfalter), Daniel Theuke (ST-DDT), Asmageddon, Merten Ehmig (Pluto), Mark Haßelbusch (Marky), Luchs, Peewee, Lauri Niskanen (Ape), Dominik Bayerl (Kanibal), Faby, Checkmaty, Gurkenglas, Clonkine, mizipzor, mixi, Pyrit, grgecko, Koronis, RedWolf Design GmbH and all those who contributed to previous Clonk titles for the passion they put into the game and for agreeing to make Clonk open source.
<Special Thanks to Contributors>
Benjamin Herr (Loriel), Benedict Etzel (B_E), Oliver Schneider (ker), Philipp Kern (pkern), Carl-Philip Hänsch (Carli), Manuel Rieke (MrBeast), Alexander Semeniuk (AlteredARMOR), Merten Ehmig (Pluto) Daniel Theuke (ST-DDT), Asmageddon, Faby, Russel, Peewee, Tim Blume (End), Andriel, Gurkenglas, Pyrit, Luchs, grgecko, Dominik Bayerl (Kannibal), Lauri Niskanen (Ape), Clonkine, Checkmaty, Sven-Hendrik Haase, Johannes Nixdorf (mixi), Stan, Koronis, mizipzor, Mark Haßelbusch (Marky), Sebastian Rühl and TomyLobo.
Also, big thanks to RedWolf Design GmbH and all those who contributed to previous Clonk titles for the passion they put into the game and for agreeing to make Clonk open source.

View File

@ -11,15 +11,15 @@ SET(C4ENGINENAME "OpenClonk")
SET(C4ENGINENICK "openclonk")
SET(C4ENGINEID "${C4PROJECT_TLD}.${C4PROJECT_DOMAIN}.${C4ENGINENICK}")
SET(C4XVER1 5)
SET(C4XVER2 3)
SET(C4XVER3 90)
SET(C4XVER1 4)
SET(C4XVER2 0)
SET(C4XVER3 0)
# C4VERSIONBUILDNAME should be witty and somewhat frequently changing
# for alpha and beta releases, and meaningful and stable for stable releases.
# Both variables need to start with a space if they aren't empty.
SET(C4VERSIONBUILDNAME " Beyond the Rocks")
SET(C4VERSIONEXTRA " Delta")
SET(C4VERSIONEXTRA "")
############################################################################
# Get revision from Git

View File

@ -101,7 +101,7 @@ global func FxIntFillChestsStart(object target, effect, int temporary)
{
if(temporary) return 1;
var chests = FindObjects(Find_ID(Chest));
var w_list = [Bow, Musket, Shield, Sword, Club, Javelin, Bow, Musket, Shield, Sword, Club, Javelin, DynamiteBox];
var w_list = [Bow, Musket, Shield, Sword, Club, GrenadeLauncher, Bow, Musket, Shield, Sword, Club, GrenadeLauncher, DynamiteBox];
for(var chest in chests)
for(var i=0; i<4; ++i)
@ -113,7 +113,7 @@ global func FxIntFillChestsTimer()
{
SetTemperature(100);
var chest = FindObjects(Find_ID(Chest), Sort_Random())[0];
var w_list = [Boompack, IronBomb, Loam, Firestone, Bow, Musket, Sword, Javelin];
var w_list = [Boompack, IronBomb, IronBomb, Firestone, Bow, Musket, Sword, Javelin];
if (chest->ContentsCount() < 5)
chest->CreateChestContents(w_list[Random(GetLength(w_list))]);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 622 KiB

After

Width:  |  Height:  |  Size: 296 KiB

View File

@ -6,9 +6,9 @@ Friction=75
BlastFree=1
DigFree=1
Dig2Object=Firestone
Dig2ObjectRatio=80
Dig2ObjectRatio=100
Blast2Object=Firestone
Blast2ObjectRatio=80
Blast2ObjectRatio=115
MaxAirSpeed=100
MaxSlide=1
Placement=40

View File

@ -1,6 +1,8 @@
# Static Map Material/Texture Table
# Index +128 for underground materials
1=Vehicle-none
10=Tunnel-tunnel
12=Tunnel-brickback

View File

@ -2,6 +2,8 @@
#include Library_Flag
local DefaultFlagRadius = 250;
protected func Initialize()
{
SetCategory(C4D_StaticBack);
@ -13,3 +15,11 @@ protected func Initialize()
local Name = "$Name$";
local Description = "$Description$";
global func CheckConstructionSite(structure_id, x,y)
{
// Construction check: May not construct in power crystal range
if (!inherited(structure_id, x,y, ...)) return false;
if (FindObject(Find_ID(PowerCrystals), Find_Distance(PowerCrystals.DefaultFlagRadius, x,y))) return false;
return true;
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -102,9 +102,6 @@ func InitializeObjects()
CreateObject(Tree_Coniferous, 300, 134);
var LargeCaveMushroom0092 = CreateObject(LargeCaveMushroom, 114, 394);
LargeCaveMushroom0092->SetCon(40);
LargeCaveMushroom0092->SetClrModulation(0xffd1dedc);
var LargeCaveMushroom0096 = CreateObject(LargeCaveMushroom, 144, 513);
LargeCaveMushroom0096->SetCon(60);
LargeCaveMushroom0096->SetClrModulation(0xff788cc8);
@ -185,7 +182,7 @@ func InitializeObjects()
var Clonk0242 = CreateObject(Clonk, 149, 387);
Clonk0242->SetColor(0xff78f03c);
Clonk0242->SetDir(DIR_Left);
var Clonk0248 = CreateObject(Clonk, 80, 367);
var Clonk0248 = CreateObject(Clonk, 80, 387);
Clonk0248->SetDir(DIR_Right);
Clonk0248->SetColor(0xfff078f0);
var Clonk0254 = CreateObject(Clonk, 520, 553);

View File

@ -14,7 +14,7 @@ func DoInit(int first_player)
elevator->CreateShaft(240);
elevator->SetOwner(first_player);
elevator.case->SetPosition(elevator.case->GetX(), elevator.case->GetY()+210);
elevator.case->SetPosition(elevator.case->GetX(), elevator.case->GetY()+190);
// Create the start buildings: 2 x flag, windmill, armory, cabin
CreateObject(Flagpole, 193*8, 43*8, first_player);
CreateObject(Flagpole, 221*8, 46*8, first_player);

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View File

@ -0,0 +1,311 @@
/* Automatically created objects file */
func InitializeObjects()
{
CreateObject(Grass, 792, 656);
CreateObject(Grass, 647, 614);
CreateObject(Grass, 656, 618);
CreateObject(Grass, 176, 533);
CreateObject(Grass, 86, 502);
CreateObject(Grass, 164, 529);
CreateObject(Grass, 248, 571);
CreateObject(Grass, 254, 575);
CreateObject(Grass, 207, 548);
CreateObject(Grass, 241, 568);
CreateObject(Grass, 224, 558);
CreateObject(Grass, 169, 533);
CreateObject(Grass, 199, 541);
CreateObject(Grass, 215, 550);
CreateObject(Grass, 222, 554);
CreateObject(Grass, 10, 498);
CreateObject(Grass, 3, 501);
CreateObject(Trunk, 1117, 546);
var Trunk0019 = CreateObject(Trunk, 1100, 555);
Trunk0019->SetCon(80);
var Trunk0020 = CreateObject(Trunk, 1363, 543);
Trunk0020->SetCon(65);
var Trunk0021 = CreateObject(Trunk, 1236, 561);
Trunk0021->SetCon(40);
CreateObject(Trunk, 983, 593);
CreateObject(Trunk, 1050, 574);
var Rank0024 = CreateObject(Rank, 1105, 503);
Rank0024->SetR(-140);
Rank0024->SetPosition(1105, 503);
var Rank0025 = CreateObject(Rank, 1415, 280);
Rank0025->SetR(176);
Rank0025->SetPosition(1415, 280);
var Rank0026 = CreateObject(Rank, 1509, 289);
Rank0026->SetR(-165);
Rank0026->SetPosition(1509, 289);
var Rank0027 = CreateObject(Rank, 1557, 314);
Rank0027->SetR(-159);
Rank0027->SetPosition(1557, 314);
var Rank0028 = CreateObject(Rank, 1315, 293);
Rank0028->SetR(-173);
Rank0028->SetPosition(1315, 293);
var Rank0029 = CreateObject(Rank, 1583, 452);
Rank0029->SetR(-8);
Rank0029->SetPosition(1583, 449);
var Rank0030 = CreateObject(Rank, 1491, 479);
Rank0030->SetR(-26);
Rank0030->SetPosition(1491, 476);
var Trunk0031 = CreateObject(Trunk, 1388, 302);
Trunk0031->SetCon(55);
Trunk0031->SetR(180);
Trunk0031->SetPosition(1388, 290);
var Trunk0032 = CreateObject(Trunk, 1316, 218);
Trunk0032->SetCon(66);
CreateObject(Tree_Coniferous, 531, 574);
CreateObject(Fern, 596, 595);
CreateObject(Tree_Coniferous, 633, 607);
CreateObject(Tree_Coniferous, 716, 632);
CreateObject(Tree_Coniferous, 764, 631);
CreateObject(Tree_Coniferous, 581, 590);
CreateObject(Tree_Coniferous, 413, 702);
CreateObject(Tree_Coniferous, 789, 628);
CreateObject(Tree_Coniferous, 934, 615);
CreateObject(Tree_Coniferous, 1134, 533);
CreateObject(Tree_Coniferous, 122, 507);
CreateObject(Tree_Coniferous, 137, 518);
CreateObject(Tree_Coniferous, 131, 515);
CreateObject(Tree_Coniferous, 152, 525);
CreateObject(Tree_Coniferous, 189, 543);
CreateObject(Tree_Coniferous, 231, 565);
CreateObject(Tree_Coniferous, 1290, 227);
CreateObject(Fern, 241, 1104);
CreateObject(Fern, 493, 1160);
CreateObject(Fern, 1008, 736);
CreateObject(Fern, 1530, 464);
CreateObject(Fern, 820, 1248);
CreateObject(Fern, 1125, 1207);
CreateObject(Tree_Coniferous, 264, 1111);
CreateObject(Tree_Coniferous, 691, 626);
CreateObject(Fern, 1100, 1353);
CreateObject(Fern, 1074, 1354);
var Trunk0141 = CreateObject(Trunk, 211, 1090);
Trunk0141->SetCon(80);
var Trunk0142 = CreateObject(Trunk, 438, 1155);
Trunk0142->SetCon(70);
var Trunk0143 = CreateObject(Trunk, 538, 1103);
Trunk0143->SetR(-165);
Trunk0143->SetPosition(538, 1080);
var Tree_Coniferous0144 = CreateObject(Tree_Coniferous, 624, 612);
Tree_Coniferous0144->SetCon(24);
var Rank0148 = CreateObject(Rank, 1634, 363);
Rank0148->SetR(-158);
Rank0148->SetPosition(1634, 363);
var Trunk0149 = CreateObject(Trunk, 1457, 528);
Trunk0149->SetCon(30);
CreateObject(Fern, 75, 1102);
CreateObject(Rule_NoPowerNeed, 0, 0);
var Chest0156 = CreateObject(Chest, 55, 1308);
CreateObject(Chest, 1381, 534);
var Chest0158 = CreateObject(Chest, 620, 879);
var Chest0159 = CreateObject(Chest, 625, 748);
var Chest0160 = CreateObject(Chest, 1553, 279);
CreateObject(Chest, 1647, 1380);
CreateObject(Armory, 1326, 523);
var Flagpole0204 = CreateObject(Flagpole, 120, 71);
Flagpole0204->SetCategory(C4D_StaticBack);
Flagpole0204->SetColor(0xffc85a12);
var WindGenerator0170 = CreateObject(WindGenerator, 1262, 537);
WindGenerator0170->SetCon(48);
WindGenerator0170->SetCategory(C4D_StaticBack);
WindGenerator0170->SetClrModulation(0xff7a6e65);
var WoodenCabin0155 = CreateObject(WoodenCabin, 56, 505);
WoodenCabin0155->SetCategory(C4D_Structure|C4D_Background);
var Elevator0162 = CreateObject(Elevator, 1170, 544);
Elevator0162->SetCon(40);
Elevator0162->SetClrModulation(0xff58362c);
var Clonk0289 = CreateObject(Clonk, 155, 997);
Clonk0289->Kill(Clonk0289, true);
Clonk0289->SetYDir(16);
Clonk0289->SetColor(0xffdd3420);
Clonk0289->SetName("Hans-Georg");
Clonk0289->SetDir(DIR_Left);
CreateObject(Rock, 109, 659);
CreateObject(Rock, 86, 860);
CreateObject(Rock, 31, 883);
CreateObject(Rock, 172, 601);
CreateObject(Rock, 128, 1045);
CreateObject(Rock, 37, 1031);
CreateObject(Rock, 240, 1204);
CreateObject(Rock, 453, 1176);
CreateObject(Rock, 514, 1233);
CreateObject(Rock, 493, 1292);
CreateObject(Rock, 669, 1190);
CreateObject(Rock, 794, 1262);
CreateObject(Rock, 983, 1371);
CreateObject(Rock, 1135, 1283);
CreateObject(Rock, 1193, 1261);
CreateObject(Rock, 1036, 1128);
CreateObject(Rock, 876, 1126);
CreateObject(Rock, 940, 976);
CreateObject(Rock, 668, 926);
CreateObject(Rock, 1152, 1064);
CreateObject(Rock, 1044, 809);
CreateObject(Rock, 1199, 740);
CreateObject(Rock, 1305, 605);
CreateObject(Rock, 1315, 837);
CreateObject(Rock, 1448, 637);
CreateObject(Rock, 1579, 854);
CreateObject(Rock, 1455, 244);
CreateObject(Rock, 667, 711);
CreateObject(Rock, 475, 634);
Chest0159->CreateContents(Rock);
CreateObject(Rock, 948, 721);
Chest0156->CreateContents(Rock);
CreateObject(Rock, 380, 332);
CreateObject(Rock, 302, 300);
CreateObject(Rock, 1519, 1011);
CreateObject(Coal, 160, 666);
CreateObject(Coal, 133, 1112);
CreateObject(Coal, 741, 708);
CreateObject(Coal, 1081, 642);
var Coal0464 = CreateObject(Coal, 1482, 1211);
Coal0464->SetCon(98);
CreateObject(Coal, 609, 1179);
CreateObject(Sulphur, 663, 947);
CreateObject(Sulphur, 897, 958);
CreateObject(Sulphur, 973, 784);
CreateObject(Sulphur, 993, 673);
CreateObject(Sulphur, 1324, 692);
CreateObject(Sulphur, 1554, 749);
CreateObject(Sulphur, 1393, 640);
Chest0158->CreateContents(Loam);
CreateObject(Loam, 28, 587);
Chest0160->CreateContents(Loam);
CreateObject(Loam, 154, 183);
CreateObject(Nugget, 679, 894);
CreateObject(Nugget, 660, 887);
CreateObject(Nugget, 637, 878);
CreateObject(Nugget, 683, 845);
CreateObject(Nugget, 91, 584);
CreateObject(Nugget, 718, 856);
CreateObject(Nugget, 802, 1101);
CreateObject(Nugget, 677, 1225);
Chest0158->CreateContents(Nugget);
Chest0158->CreateContents(Nugget);
CreateObject(Nugget, 1100, 1229);
CreateObject(Nugget, 1114, 974);
CreateObject(Nugget, 1484, 586);
CreateObject(Nugget, 358, 407);
Chest0156->CreateContents(Metal);
CreateObject(Wood, 643, 656);
var Wood0494 = CreateObject(Wood, 672, 760);
Wood0494->SetR(22);
Wood0494->SetRDir(-3);
Wood0494->SetPosition(672, 758);
var Axe0315 = CreateObject(Axe, 1537, 1292);
Axe0315->SetR(99);
Axe0315->SetPosition(1537, 1290);
var Shovel0316 = CreateObject(Shovel, 138, 982);
Shovel0316->SetR(123);
Shovel0316->SetPosition(138, 978);
Chest0159->CreateContents(Ropeladder);
CreateObject(Mushroom, 1503, 472);
CreateObject(Mushroom, 979, 590);
CreateObject(Mushroom, 1225, 544);
CreateObject(Mushroom, 1082, 551);
CreateObject(Mushroom, 1438, 529);
CreateObject(Mushroom, 601, 880);
CreateObject(Mushroom, 199, 1071);
CreateObject(Mushroom, 180, 1047);
CreateObject(Mushroom, 116, 941);
CreateObject(Mushroom, 1113, 726);
CreateObject(Mushroom, 1076, 726);
CreateObject(Mushroom, 1532, 825);
CreateObject(Mushroom, 1552, 1309);
CreateObject(Mushroom, 1577, 1317);
CreateObject(Mushroom, 674, 897);
CreateObject(Mushroom, 662, 1161);
CreateObject(Mushroom, 799, 1240);
CreateObject(Mushroom, 1616, 463);
CreateObject(Mushroom, 1659, 507);
Chest0159->CreateContents(Mushroom);
CreateObject(Mushroom, 659, 757);
CreateObject(Mushroom, 1615, 1389);
Chest0158->CreateContents(Dynamite);
Chest0158->CreateContents(Dynamite);
Chest0160->CreateContents(Dynamite);
Chest0160->CreateContents(Dynamite);
var Seaweed0473 = CreateObject(Seaweed, 189, 1167);
Seaweed0473->SetYDir(16);
Seaweed0473->SetPhase(11);
var Seaweed0476 = CreateObject(Seaweed, 142, 1169);
Seaweed0476->SetYDir(16);
Seaweed0476->SetPhase(11);
var Seaweed0479 = CreateObject(Seaweed, 522, 658);
Seaweed0479->SetYDir(16);
Seaweed0479->SetPhase(11);
var Seaweed0482 = CreateObject(Seaweed, 610, 705);
Seaweed0482->SetYDir(16);
Seaweed0482->SetPhase(11);
var Seaweed0485 = CreateObject(Seaweed, 697, 682);
Seaweed0485->SetYDir(16);
Seaweed0485->SetPhase(11);
var Seaweed0488 = CreateObject(Seaweed, 766, 697);
Seaweed0488->SetYDir(16);
Seaweed0488->SetPhase(11);
CreateObject(GrappleBow, 1601, 326);
Chest0160->CreateContents(Bow);
var Arrow0496 = Chest0160->CreateContents(Arrow);
Arrow0496->SetR(90);
CreateObject(Firestone, 84, 1018);
CreateObject(Firestone, 95, 909);
CreateObject(Firestone, 695, 1002);
CreateObject(Firestone, 864, 1279);
CreateObject(Firestone, 901, 710);
CreateObject(Firestone, 1298, 951);
CreateObject(Firestone, 1448, 742);
CreateObject(Firestone, 1644, 318);
Chest0159->CreateContents(Firestone);
Chest0159->CreateContents(Firestone);
CreateObject(Firestone, 193, 1172);
Chest0156->CreateContents(Firestone);
CreateObject(Firestone, 573, 616);
CreateObject(Firestone, 1154, 674);
CreateObject(Firestone, 534, 698);
CreateObject(Firestone, 1520, 953);
return true;
}

View File

@ -29,6 +29,11 @@ global func IntroAddPlayer(int plr)
container->SetAction("Walk");
crew->Enter(container);
container.ActMap = { Prototype = Clonk.ActMap };
container.ActMap.Walk = { Prototype = Clonk.ActMap.Walk, Decel = 100 };
container.ActMap.Jump = { Prototype = Clonk.ActMap.Jump, Speed = 0, Accel = 0 };
container.JumpSpeed = 0;
SetPlrView(plr, crew);
SetPlayerViewLock(plr, true);
SetPlayerZoomByViewRange(plr, 320, 240);
@ -69,6 +74,10 @@ global func FxIntIntroStart(object target, proplist effect)
effect.Sister->SetColor(RGB(213, 68, 172));
effect.Sister->SetObjectLayer(effect.Sister);
effect.Sister->SetDir(DIR_Right);
effect.Sister.ActMap = { Prototype = Clonk.ActMap };
effect.Sister.ActMap.Walk = { Prototype = Clonk.ActMap.Walk, Decel = 100 };
effect.Sister.ActMap.Jump = { Prototype = Clonk.ActMap.Jump, Speed = 0, Accel=0 };
effect.Sister.JumpSpeed = 0;
effect.Dialog = effect.Sister->SetDialogue("Sister");
effect.Rock = effect.Sister->CreateContents(Rock);
@ -140,7 +149,7 @@ global func FxIntIntroTimer(object target, proplist effect, int time)
if(effect.Time == 556)
{
for(var crew in effect.Players)
crew->Contained()->Fling(3,-3);
crew->Contained()->Fling(2,-2);
}
if(effect.Time == 570)

View File

@ -126,7 +126,7 @@ protected func DoSwing(object clonk, int ix, int iy)
//It's solid, but not diggable. So it is a hard mineral.
else
{
CreateParticle("Spark", x2*9/10,y2*9/10, PV_Random(-20, 20), PV_Random(-20, 20), PV_Random(10, 20), Particles_Glimmer(), 10);
CreateParticle("StarSpark", x2*9/10,y2*9/10, PV_Random(-20, 20), PV_Random(-20, 20), PV_Random(10, 20), Particles_Glimmer(), 10);
Sound("Clang?");
}

View File

@ -25,7 +25,7 @@ protected func Hit()
ShakeFree(6);
RemoveEffect("HitCheck",this);
Sound("BulletHitGround?");
CreateParticle("Spark", 0, 0, PV_Random(-20, 20), PV_Random(-20, 20), PV_Random(10, 20), Particles_Glimmer(), 3);
CreateParticle("StarSpark", 0, 0, PV_Random(-20, 20), PV_Random(-20, 20), PV_Random(10, 20), Particles_Glimmer(), 3);
RemoveObject();
}

View File

@ -17,7 +17,7 @@ protected func Hit()
Sound("BulletHitGround?");
CreateParticle("Spark", 0, 0, PV_Random(-20, 20), PV_Random(-20, 20), PV_Random(10, 20), Particles_Glimmer(), 3);
CreateParticle("StarSpark", 0, 0, PV_Random(-20, 20), PV_Random(-20, 20), PV_Random(10, 20), Particles_Glimmer(), 3);
RemoveObject();
}

View File

@ -181,6 +181,11 @@ private func StartConstructing()
var site;
if(!(site = CreateConstruction(definition, 0, 0, GetOwner(), 1, 1, 1)))
{
// spit out error message. This could happen if the landscape changed in the meantime
// a little hack: the message would immediately vanish because this object is deleted. So, instead display the
// message on one of the contents.
if(Contents(0))
CustomMessage("$TxtNoConstructionHere$", Contents(0), GetOwner(), nil,nil, RGB(255,0,0));
Interact(nil, 1);
return;
}

View File

@ -1,3 +1,4 @@
TxtTransfer=Baumaterial transferieren
TxtTransfer=Baumaterial einsetzen
TxtAbort=Konstruktion abbrechen
TxtConstruction=Baustelle: %s
TxtConstruction=Baustelle: %s
TxtNoConstructionHere=Der Untergrund eignet sich nicht mehr zur Konstruktion!

View File

@ -1,3 +1,4 @@
TxtTransfer=Transfer Material
TxtAbort=Abort Construction
TxtConstruction=Construction Site: %s
TxtConstruction=Construction Site: %s
TxtNoConstructionHere=The building ground is not fit for construction anymore!

View File

@ -164,7 +164,7 @@ func CreateConstructionSite(object clonk, id structure_id, int x, int y, int dir
return false;
if (!CheckConstructionSite(structure_id, x, y))
{
CustomMessage("$TxtNoSiteHere$", this, clonk->GetOwner(), nil,nil, RGB(255,0,0)); // todo: stringtable
CustomMessage("$TxtNoSiteHere$", this, clonk->GetOwner(), nil,nil, RGB(255,0,0));
return false;
}
// intersection-check with all other construction sites... bah
@ -175,7 +175,7 @@ func CreateConstructionSite(object clonk, id structure_id, int x, int y, int dir
other_site->GetTopEdge() > GetY()+y+structure_id->GetDefHeight()/2 ||
other_site->GetBottomEdge() < GetY()+y-structure_id->GetDefHeight()/2 ))
{
CustomMessage(Format("$TxtBlocked$",other_site->GetName()), this, clonk->GetOwner(), nil,nil, RGB(255,0,0)); // todo: stringtable
CustomMessage(Format("$TxtBlocked$",other_site->GetName()), this, clonk->GetOwner(), nil,nil, RGB(255,0,0));
return false;
}
}
@ -185,6 +185,13 @@ func CreateConstructionSite(object clonk, id structure_id, int x, int y, int dir
// Create construction site
var site;
site = CreateObject(ConstructionSite, x, y, Contained()->GetOwner());
/* note: this is necessary to have the site at the exact position x,y. Otherwise, for reasons I don't know, the
ConstructionSite seems to move 2 pixels downwards (on ConstructionSite::Construction() it is still the
original position) which leads to that the CheckConstructionSite function gets different parameters later
when the real construction should be created which of course could mean that it returns something else. (#1012)
- Newton
*/
site->SetPosition(GetX()+x,GetY()+y);
// Randomize sign rotation
site -> SetProperty("MeshTransformation", Trans_Mul(Trans_Rotate(RandomX(-30, 30), 0, 1, 0), Trans_Rotate(RandomX(-10, 10), 1, 0, 0)));

View File

@ -76,11 +76,11 @@ public func FxSmeltingTimer(object target, proplist effect, int time)
{
//Message(Format("Smelting %d",timer));
// Fire in the furnace.
CreateParticle("Fire", -10 * GetCalcDir(), 20, PV_Random(-1, 1), PV_Random(-1, 1), PV_Random(18, 36), Particles_Fire(), 2);
CreateParticle("Fire", -10 * GetCalcDir() + RandomX(-1, 1), 20 + RandomX(-1, 1), PV_Random(-1, 1), PV_Random(-1, 1), PV_Random(3, 10), Particles_Fire(), 2);
// Smoke from the pipes.
Smoke( -9*GetCalcDir(), -31, 6);
Smoke(-16*GetCalcDir(), -27, 3);
Smoke( -10*GetCalcDir(), -26, 6);
Smoke(-16*GetCalcDir(), -22, 3);
// Furnace sound after some time.
if (time == 30)
@ -96,7 +96,7 @@ public func FxSmeltingTimer(object target, proplist effect, int time)
// Fire from the pouring exit.
if (Inside(time, 244, 290))
CreateParticle("Fire", 17 * GetCalcDir(), 19, PV_Random(-2, 0), PV_Random(1, 3), PV_Random(18, 36), Particles_Fire(), 2);
CreateParticle("SphereSpark", 16 * GetCalcDir(), 20, PV_Random(2 * GetCalcDir(), 0), PV_Random(-2, 3), PV_Random(18, 36), Particles_Material(RGB(255, 200, 0)), 2);
if (time == 290)
{

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 B

View File

@ -1,29 +0,0 @@
material Loom
{
receive_shadows on
technique
{
pass Loom
{
ambient 0.800000011920929 0.800000011920929 0.800000011920929 1.0
diffuse 0.6400000190734865 0.6400000190734865 0.6400000190734865 1.0
specular 0.5 0.5 0.5 1.0 12.5
emissive 0.0 0.0 0.0 1.0
alpha_to_coverage off
cull_hardware clockwise
depth_check on
depth_write on
scene_blend one zero
texture_unit
{
texture Loom.png
tex_address_mode wrap
scale 1.0 1.0
colour_op modulate
}
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 888 B

View File

@ -194,7 +194,9 @@ func DrawCaves()
{
for (var cave in caves)
{
Draw("Tunnel", {Algo=MAPALGO_Ellipsis, X=cave.X, Y=cave.Y, Wdt=4, Hgt=4});
var cave_algo = {Algo=MAPALGO_Ellipsis, X=cave.X, Y=cave.Y, Wdt=4, Hgt=4};
var turb_algo = {Algo=MAPALGO_Turbulence, Amplitude=8, Scale=15, Op=cave_algo};
Draw("Tunnel", turb_algo);
//var src = cave.path;
//if (src && GetLength(src)) src = Format("%d,%d", src[GetLength(src)-1].X, src[GetLength(src)-1].Y);
//Log("Cave at %d,%d src %v", cave.X, cave.Y, src);
@ -209,7 +211,9 @@ func DrawTunnels()
for (var cave2 in cave.links)
{
if (cave2.done) continue;
Draw("Tunnel", {Algo=MAPALGO_Polygon, X=[cave.X, cave2.X], Y=[cave.Y, cave2.Y], Wdt=2, Open=1, Empty=1 });
var tunnel_algo = {Algo=MAPALGO_Polygon, X=[cave.X, cave2.X], Y=[cave.Y, cave2.Y], Wdt=2, Open=1, Empty=1 };
var turb_algo = {Algo=MAPALGO_Turbulence, Amplitude=9, Scale=10, Op=tunnel_algo};
Draw("Tunnel", turb_algo);
}
cave.done = true;
}

View File

@ -10,9 +10,9 @@ local goal_cave;
func InitializePlayer(int plr)
{
// Harsh zoom range
// Harsher zoom range
for (var flag in [PLRZOOM_LimitMax, PLRZOOM_Direct])
SetPlayerZoomByViewRange(plr,300,200,flag);
SetPlayerZoomByViewRange(plr,240,160,flag);
//SetPlayerZoomByViewRange(plr,LandscapeWidth(),LandscapeHeight(),flag);
SetPlayerViewLock(plr, true);
// Position and materials

View File

@ -2,14 +2,13 @@
id=SprayCan
Version=5,2,0,1
Category=C4D_Object
Width=8
Height=8
Offset=-4,-4
Picture=0,0,64,64
Vertices=2
VertexX=0,0
VertexY=3,-3
VertexFriction=40,40
Width=9
Height=3
Offset=-4,-2
Vertices=4
VertexX=-4,4,-4,4
VertexY=1,1,-2,-2
VertexFriction=40,40,40,40
Value=5
Mass=10
Rotate=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -2,6 +2,7 @@
local last_x, last_y, last_ldx, last_ldy;
local paint_col;
local max_dist = 50;
static SprayCan_last_col;
@ -14,8 +15,10 @@ protected func Construction()
func SetPaintCol(int idx)
{
idx %= 5;
if (idx) SetGraphics(Format("%d",idx)); else SetGraphics();
paint_col = Format("Tunnel-Paint%s", ["Red", "Green", "Teal", "Yellow", "White"][idx]);
var tex_name = Format("Paint%s",["Red", "Green", "Teal", "Yellow", "White"][idx]);
var tex_color = GetAverageTextureColor(tex_name);
SetColor(tex_color);
paint_col = Format("Tunnel-%s", tex_name);
return true;
}
@ -28,6 +31,8 @@ func Hit()
// Item activation
func ControlUseStart(object clonk, int x, int y)
{
if (Distance(0,0,x,y) > max_dist) return true;
x += GetX(); y += GetY();
last_x = x; last_y = y;
last_ldx=last_ldy=0;
@ -41,9 +46,20 @@ func ControlUseStart(object clonk, int x, int y)
func HoldingEnabled() { return true; }
func ControlUseHolding(object clonk, int new_x, int new_y)
{
{
new_x += GetX(); new_y += GetY();
if (new_x==last_x && new_y == last_y) return true;
if (Distance(GetX(),GetY(),new_x,new_y) > max_dist)
{
last_x = new_x;
last_y = new_y;
SetAction("Idle");
return true;
}
if (GetAction() != "Spraying") SetAction("Spraying");
var wdt = 2;
var dx=new_x-last_x, dy=new_y-last_y;
var d = Distance(dx,dy);
@ -79,9 +95,11 @@ local ActMap = {
}
};
func Definition(def) {
SetProperty("PictureTransformation",Trans_Rotate(-30,0,1,1),def);
}
local Collectible = 1;
local Name = "$Name$";
local Description = "$Description$";
local UsageHelp = "$UsageHelp$";
local Rebuy = true;

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@ -0,0 +1,37 @@
material SprayCan
{
receive_shadows on
technique
{
pass SprayCan
{
ambient 0.500000 0.500000 0.500000 1.000000
diffuse 1.000000 1.000000 1.000000 1.000000
specular 0.000000 0.000000 0.000000 1.000000 12.500000
emissive 0.000000 0.000000 0.000000 1.000000
texture_unit Overlay
{
texture Overlay.png
tex_address_mode wrap
filtering trilinear
colour_op_ex modulate src_texture src_player_colour
}
texture_unit SprayCan
{
texture SprayCan.jpg
tex_address_mode wrap
filtering trilinear
colour_op_ex blend_current_alpha src_current src_texture
}
texture_unit Light
{
// apply lighting -- note this texture unit does not need an
// actual texture image: no hardware TIU will be used.
colour_op_ex modulate src_current src_diffuse
alpha_op_ex modulate src_current src_diffuse
}
}
}
}

View File

@ -1,3 +1,2 @@
Name=Lehm
Description=Mit Lehm können kleine Lehmbrücken gebaut werden.|Benötigt ein Fass mit Wasser und einen Eimer Erde zur Produktion.
UsageHelp=Halte [Benutzen] gedrückt um eine Lehmbrücke in die gezeigte Richtung zu bauen.
Name=Sprühdose
UsageHelp=Lasse den kleinen Künstler in dir heraus!

View File

@ -1,3 +1,2 @@
Name=Loam
Description=With loam one can build small loam bridges.|Needs a barrel of water and a bucket of water to produce.
UsageHelp=Hold down the [Use] key to build a bridge, move the mouse to control where it is created.
Name=Spray can
UsageHelp=Let out the little artist in you!

View File

@ -0,0 +1,10 @@
#appendto Ruby
// also flash when contained so noone can smuggle his ruby to the goal
func FxSparkleTimer(target, effect, effect_time)
{
if(!Random(2)) return FX_OK;
var obj = Contained() ?? this;
obj->CreateParticle("MagicRing", 0, 0, 0, 0, effect.Interval, effect.particles, 1);
return FX_OK;
}

View File

@ -1,2 +1,2 @@
DE:Labyrinth
US:Maze
DE:Das Herz des Berges
US:Heart of the Mountain

View File

@ -493,9 +493,9 @@ global func FxSmokeTrailStart(object target, proplist effect, int temp, color)
var alpha = (effect.color >> 24) & 0xff;
effect.particles_smoke =
{
R = PV_KeyFrames(0, 0, 200, 400, 0, 1000, 0),
G = PV_KeyFrames(0, 0, 200, 400, 0, 1000, 0),
B = PV_KeyFrames(0, 0, 200, 400, 0, 1000, 0),
R = PV_KeyFrames(0, 0, 250, 400, 200, 1000, 100),
G = PV_KeyFrames(0, 0, 250, 400, 200, 1000, 100),
B = PV_KeyFrames(0, 0, 250, 400, 200, 1000, 100),
Alpha = PV_KeyFrames(0, 0, 0, 300, alpha, 600, (alpha * 4) / 5, 1000, 0),
Rotation = PV_Random(0, 360),
ForceX = PV_Wind(20),

View File

@ -39,9 +39,9 @@ global func Particles_Dust()
OnCollision = PC_Stop(),
ForceX = PV_Wind(20),
ForceY = PV_Gravity(25),
Alpha = PV_Linear(30, 0),
Alpha = PV_KeyFrames(0, 0, 0, 250, 60, 1000, 0),
Rotation = PV_Random(0, 360),
Size = PV_KeyFrames(0, 0, 0, 100, 25, 1000, 15)
Size = PV_KeyFrames(0, 0, 5, 100, 12, 1000, 7)
};
}
@ -186,7 +186,6 @@ global func Particles_SmokeTrail()
ForceX = PV_Wind(20),
DampingX = 950, DampingY = 950,
Alpha = PV_Linear(128, 0),
R = 50, G = 50, B = 50,
Size = PV_KeyFrames(0, 0, 0, 200, PV_Random(10, 30), 1000, PV_Random(25, 35))
};
}
@ -269,9 +268,9 @@ global func Particles_Thrust(int size)
{
Size = PV_KeyFrames(0, 0, 0, 50, size, 1000, size * 2),
Alpha = PV_Linear(255, 0),
R = PV_KeyFrames(0, 0, 255, 500, 0, 1000, 0),
G = PV_KeyFrames(0, 0, 255, 500, 0, 1000, 0),
B = PV_KeyFrames(0, 0, 255, 500, 0, 1000, 0),
R = PV_KeyFrames(0, 0, 255, 500, 100, 1000, 50),
G = PV_KeyFrames(0, 0, 255, 500, 100, 1000, 50),
B = PV_KeyFrames(0, 0, 255, 500, 100, 1000, 50),
Phase = PV_Random(0, 3, 10),
Rotation = PV_Random(0, 360),
DampingX = 950, DampingY = 950,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -61,7 +61,7 @@ map AcidWorld {
};
// Ground materials
Mats { mat=Firestone; y=84px; hgt=140px; turbulence=1000; };
Mats { mat=Firestone; a=20; y=124px; hgt=100px; turbulence=1000; };
Mats { mat=Rock; zoomX=10; a=5; VaryTex { mat=rock; tex=rock_cracked;};};
Mats { mat=Coal; y=56px; hgt=140px; turbulence=1000; };
Mats { mat=Ore; y=84px; hgt=112px; turbulence=10; };

Binary file not shown.

Binary file not shown.

View File

@ -1,2 +1,2 @@
DE:Gem Grabbers
DE:Juwelenjäger
US:Gem Grabbers

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 117 KiB

View File

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 114 KiB

View File

@ -2,7 +2,7 @@
* OpenClonk, http://www.openclonk.org
*
* Copyright (c) 2001-2009, RedWolf Design GmbH, http://www.clonk.de/
* Copyright (c) 2010-2013, The OpenClonk Team and contributors
* Copyright (c) 2010-2014, The OpenClonk Team and contributors
*
* Distributed under the terms of the ISC license; see accompanying file
* "COPYING" for details.
@ -26,28 +26,13 @@
// ------------------------------------------------
// --- C4StartupAboutDlg
C4StartupAboutDlg::C4StartupAboutDlg() : C4StartupDlg("")
C4StartupAboutDlg::C4StartupAboutDlg() : C4StartupDlg(LoadResStr("IDS_DLG_ABOUT"))
{
// ctor
UpdateSize();
// key bindings: No longer back on any key
pKeyBack = NULL;
//C4CustomKey::CodeList keys;
//keys.push_back(C4KeyCodeEx(KEY_Any)); keys.push_back(C4KeyCodeEx(KEY_JOY_AnyButton));
//pKeyBack = new C4KeyBinding(keys, "StartupAboutBack", KEYSCOPE_Gui,
// new C4GUI::DlgKeyCB<C4StartupAboutDlg>(*this, &C4StartupAboutDlg::KeyBack), C4CustomKey::PRIO_Dlg);
// version and registration info in topright corner
C4Rect rcClient = GetContainedClientRect();
StdStrBuf sVersion; sVersion.Format(LoadResStr("IDS_DLG_VERSION"), C4VERSION);
CStdFont &rUseFont = ::GraphicsResource.TextFont;
int32_t iInfoWdt = Min<int32_t>(rcClient.Wdt/2, rUseFont.GetTextWidth("General info text width")*2);
C4GUI::ComponentAligner caInfo(C4Rect(rcClient.x + rcClient.Wdt - iInfoWdt, rcClient.y, iInfoWdt, rcClient.Hgt/8), 0,0, false);
AddElement(new C4GUI::Label(sVersion.getData(), caInfo.GetGridCell(0,1,0,4), ARight));
StdStrBuf sRegStr, sKeyFile;
Application.Add(this);
OnSec1Timer();
C4Rect rcClient = GetContainedClientRect();
// bottom line buttons and copyright messages
C4GUI::ComponentAligner caMain(rcClient, 0,0, true);
@ -68,8 +53,6 @@ C4StartupAboutDlg::C4StartupAboutDlg() : C4StartupDlg("")
C4StartupAboutDlg::~C4StartupAboutDlg()
{
Application.Remove(this);
delete pKeyBack;
}
void C4StartupAboutDlg::DoBack()
@ -77,26 +60,9 @@ void C4StartupAboutDlg::DoBack()
C4Startup::Get()->SwitchDialog(C4Startup::SDID_Main);
}
void C4StartupAboutDlg::OnSec1Timer()
{
}
void C4StartupAboutDlg::DrawElement(C4TargetFacet &cgo)
{
// draw background - do not use bg drawing proc, because it stretches
// pre-clear background instead to prevent blinking borders
if (!IsFading()) pDraw->FillBG();
C4Startup::Get()->Graphics.fctAboutBG.Draw(cgo, false);
}
void C4StartupAboutDlg::MouseInput(C4GUI::CMouse &rMouse, int32_t iButton, int32_t iX, int32_t iY, DWORD dwKeyParam)
{
// back on any mouse button? Better not, because mouse input is required
/*if (iButton == C4MC_Button_LeftDown || iButton == C4MC_Button_RightDown || iButton == C4MC_Button_MiddleDown)
DoBack();
else*/
// otherwise, inherited for tooltips
C4StartupDlg::MouseInput(rMouse, iButton, iX, iY, dwKeyParam);
C4Startup::Get()->Graphics.fctAboutBG.Draw(cgo, true, 0, 0, true);
}
#ifdef WITH_AUTOMATIC_UPDATE

View File

@ -2,7 +2,7 @@
* OpenClonk, http://www.openclonk.org
*
* Copyright (c) 2001-2009, RedWolf Design GmbH, http://www.clonk.de/
* Copyright (c) 2013, The OpenClonk Team and contributors
* Copyright (c) 2013-2014, The OpenClonk Team and contributors
*
* Distributed under the terms of the ISC license; see accompanying file
* "COPYING" for details.
@ -13,32 +13,21 @@
* To redistribute this file separately, substitute the full license texts
* for the above references.
*/
// About/credits screen
// Credits screen
#ifndef INC_C4StartupAboutDlg
#define INC_C4StartupAboutDlg
#include "C4Startup.h"
// webcode show time
const int32_t C4AboutWebCodeShowTime = 25; // seconds
// startup dialog: About
class C4StartupAboutDlg : public C4StartupDlg, private C4ApplicationSec1Timer
// startup dialog: credits
class C4StartupAboutDlg : public C4StartupDlg
{
public:
C4StartupAboutDlg(); // ctor
~C4StartupAboutDlg(); // dtor
private:
class C4KeyBinding *pKeyBack;
C4GUI::Label *pWebCodeLbl;
int32_t iWebCodeTimer;
C4StartupAboutDlg();
~C4StartupAboutDlg();
protected:
virtual int32_t GetMarginTop() { return iDlgMarginY + C4GUI_FullscreenDlg_TitleHeight/2; } // less top margin
virtual void MouseInput(C4GUI::CMouse &rMouse, int32_t iButton, int32_t iX, int32_t iY, DWORD dwKeyParam); // input: back on any button
virtual bool OnEnter() { DoBack(); return true; }
virtual bool OnEscape() { DoBack(); return true; }
virtual void DrawElement(C4TargetFacet &cgo);
@ -49,7 +38,6 @@ protected:
#endif
public:
void OnSec1Timer();
void DoBack(); // back to main menu

Some files were not shown because too many files have changed in this diff Show More