From 12cb7128f7867d7b8aa504dc88e2fc725452ba87 Mon Sep 17 00:00:00 2001 From: cecilkorik Date: Mon, 8 May 2017 23:49:09 -0700 Subject: [PATCH] split everything in roc_samples out of the main roc project refactored as needed to make roc work as a shared library, without any stupid import hacks --- data/font/coure10.png | Bin 0 -> 1962 bytes data/font/coure10.tfd | 102 ++++++++++++ data/font/micross20.png | Bin 0 -> 14615 bytes data/font/micross20.tfd | 102 ++++++++++++ data/font/micross42.png | Bin 0 -> 35285 bytes data/font/micross42.tfd | 102 ++++++++++++ data/font/monopro6.png | Bin 0 -> 1557 bytes data/font/monopro6.tfd | 102 ++++++++++++ data/font/proggysquaresz12.png | Bin 0 -> 1717 bytes data/font/proggysquaresz12.tfd | 102 ++++++++++++ data/font/proggytinysz12.png | Bin 0 -> 1578 bytes data/font/proggytinysz12.tfd | 102 ++++++++++++ data/font/vgafix12.png | Bin 0 -> 1857 bytes data/font/vgafix12.tfd | 102 ++++++++++++ data/shaders/shadow_pass1.frag | 13 ++ data/shaders/shadow_pass1.vert | 24 +++ data/shaders/shadow_pass2.frag | 25 +++ data/shaders/shadow_pass2.vert | 49 ++++++ data/shaders/sprite.frag | 17 ++ data/shaders/sprite.vert | 15 ++ data/shaders/standard.frag | 141 ++++++++++++++++ data/shaders/standard.vert | 15 ++ data/shaders/test.frag | 12 ++ data/shaders/test.vert | 13 ++ data/sprite/bluelight_static.png | Bin 0 -> 9512 bytes data/sprite/fuzzy_particle.png | Bin 0 -> 21742 bytes data/sprite/hard_particle.png | Bin 0 -> 890 bytes data/sprite/medium_particle.png | Bin 0 -> 968 bytes data/sprite/redlight_static.png | Bin 0 -> 12682 bytes data/sprite/soft_particle.png | Bin 0 -> 865 bytes data/sprite/star_sprite_inner.png | Bin 0 -> 11942 bytes data/sprite/star_sprite_main.png | Bin 0 -> 28477 bytes data/sprite/star_sprite_washout.png | Bin 0 -> 16255 bytes data/sprite/whitelight_static.png | Bin 0 -> 5487 bytes data/sprite/yellowlight_static.png | Bin 0 -> 8531 bytes data/tex/black.png | Bin 0 -> 281 bytes data/tex/dralthi.png | Bin 0 -> 3653 bytes data/tex/nm_flat.png | Bin 0 -> 298 bytes data/tex/plasma1.png | Bin 0 -> 9919 bytes data/tex/plasma2.png | Bin 0 -> 17537 bytes data/tex/star_sprite_main.png | Bin 0 -> 283 bytes data/tex/test1.png | Bin 0 -> 17420 bytes data/tex/white.png | Bin 0 -> 283 bytes data/tex/whitelight_static.png | Bin 0 -> 5487 bytes data/ui/button_bg_corner.png | Bin 0 -> 2822 bytes data/ui/button_bg_edge.png | Bin 0 -> 2802 bytes data/ui/button_corner.png | Bin 0 -> 2810 bytes data/ui/button_edge.png | Bin 0 -> 2798 bytes data/ui/frame_bg_corner.png | Bin 0 -> 2814 bytes data/ui/frame_bg_edge.png | Bin 0 -> 2797 bytes data/ui/frame_corner.png | Bin 0 -> 2854 bytes data/ui/frame_edge.png | Bin 0 -> 2813 bytes data/xml/constants.xml | 6 + data/xml/def/bases.xml | 34 ++++ data/xml/def/commodities.xml | 10 ++ data/xml/def/components.xml | 27 ++++ data/xml/def/engines.xml | 16 ++ data/xml/def/factions.xml | 16 ++ data/xml/def/models.xml | 63 ++++++++ data/xml/def/shaders.xml | 8 + data/xml/def/ships.xml | 37 +++++ data/xml/def/sprites.xml | 21 +++ data/xml/def/stellars.xml | 35 ++++ data/xml/def/systems.xml | 9 ++ data/xml/def/textures.xml | 25 +++ data/xml/def/weapons.xml | 38 +++++ data/xml/engines.xml | 20 +++ data/xml/factions.xml | 54 +++++++ data/xml/models.xml | 221 ++++++++++++++++++++++++++ data/xml/shaders.xml | 22 +++ data/xml/ships.xml | 83 ++++++++++ data/xml/sprites.xml | 5 + data/xml/stellars.xml | 9 ++ data/xml/textures.xml | 100 ++++++++++++ data/xml/weapons.xml | 22 +++ looprun.bat | 6 + refuge.py | 97 ++++++++++++ roc_test.py | 175 ++++++++++++++++++++ shooter.py | 238 ++++++++++++++++++++++++++++ 79 files changed, 2435 insertions(+) create mode 100644 data/font/coure10.png create mode 100644 data/font/coure10.tfd create mode 100644 data/font/micross20.png create mode 100644 data/font/micross20.tfd create mode 100644 data/font/micross42.png create mode 100644 data/font/micross42.tfd create mode 100644 data/font/monopro6.png create mode 100644 data/font/monopro6.tfd create mode 100644 data/font/proggysquaresz12.png create mode 100644 data/font/proggysquaresz12.tfd create mode 100644 data/font/proggytinysz12.png create mode 100644 data/font/proggytinysz12.tfd create mode 100644 data/font/vgafix12.png create mode 100644 data/font/vgafix12.tfd create mode 100644 data/shaders/shadow_pass1.frag create mode 100644 data/shaders/shadow_pass1.vert create mode 100644 data/shaders/shadow_pass2.frag create mode 100644 data/shaders/shadow_pass2.vert create mode 100755 data/shaders/sprite.frag create mode 100755 data/shaders/sprite.vert create mode 100755 data/shaders/standard.frag create mode 100644 data/shaders/standard.vert create mode 100644 data/shaders/test.frag create mode 100644 data/shaders/test.vert create mode 100644 data/sprite/bluelight_static.png create mode 100644 data/sprite/fuzzy_particle.png create mode 100755 data/sprite/hard_particle.png create mode 100755 data/sprite/medium_particle.png create mode 100644 data/sprite/redlight_static.png create mode 100755 data/sprite/soft_particle.png create mode 100644 data/sprite/star_sprite_inner.png create mode 100644 data/sprite/star_sprite_main.png create mode 100644 data/sprite/star_sprite_washout.png create mode 100644 data/sprite/whitelight_static.png create mode 100644 data/sprite/yellowlight_static.png create mode 100644 data/tex/black.png create mode 100644 data/tex/dralthi.png create mode 100644 data/tex/nm_flat.png create mode 100644 data/tex/plasma1.png create mode 100644 data/tex/plasma2.png create mode 100644 data/tex/star_sprite_main.png create mode 100644 data/tex/test1.png create mode 100644 data/tex/white.png create mode 100644 data/tex/whitelight_static.png create mode 100755 data/ui/button_bg_corner.png create mode 100755 data/ui/button_bg_edge.png create mode 100755 data/ui/button_corner.png create mode 100755 data/ui/button_edge.png create mode 100755 data/ui/frame_bg_corner.png create mode 100755 data/ui/frame_bg_edge.png create mode 100755 data/ui/frame_corner.png create mode 100755 data/ui/frame_edge.png create mode 100644 data/xml/constants.xml create mode 100644 data/xml/def/bases.xml create mode 100644 data/xml/def/commodities.xml create mode 100644 data/xml/def/components.xml create mode 100644 data/xml/def/engines.xml create mode 100644 data/xml/def/factions.xml create mode 100755 data/xml/def/models.xml create mode 100644 data/xml/def/shaders.xml create mode 100755 data/xml/def/ships.xml create mode 100755 data/xml/def/sprites.xml create mode 100644 data/xml/def/stellars.xml create mode 100644 data/xml/def/systems.xml create mode 100755 data/xml/def/textures.xml create mode 100644 data/xml/def/weapons.xml create mode 100644 data/xml/engines.xml create mode 100644 data/xml/factions.xml create mode 100755 data/xml/models.xml create mode 100755 data/xml/shaders.xml create mode 100755 data/xml/ships.xml create mode 100755 data/xml/sprites.xml create mode 100644 data/xml/stellars.xml create mode 100755 data/xml/textures.xml create mode 100644 data/xml/weapons.xml create mode 100755 looprun.bat create mode 100755 refuge.py create mode 100755 roc_test.py create mode 100755 shooter.py diff --git a/data/font/coure10.png b/data/font/coure10.png new file mode 100644 index 0000000000000000000000000000000000000000..45440c9c727eaa7a9a0189eb90179fc1a4182b5c GIT binary patch literal 1962 zcmV;b2UYlqP) z+mhtC3Pt4;^Z&n`^Kv|+X1Ht+y4Yq#R8*ynL6)$Dz}bEMe!r%1T~{laXUTZ@pG&%U z9Z?6+-SFS@8FJBcR1T5#=o{5>1gFmcnuGjWYZr5l`+WWXC#y}GF0M_-vdaPbCsG>Z ze&D!Hz1n{V!y23up!dFYHksuB7x`_SN1jmbJTmy6C(>#I>R_79`}!aGyoJAZ8aJSw zsCAS!FegpN(o)viCPz5g0b0YJaBJ`{^(=Unib1KmpV5Bj9@TLuhwFF23pcM=34iYcn?=8&A17x8Elk^xj!1u9V`_n<9 z?MDO3m5w$v7CUBu{(3Z`_UhG+ZGY+tY^97PV4WyHiAka!)W#5;` ziX|W#6-Nt15t%H!gTI~G4sb%|4P{4LxA)J?C1CZP+>&_$Vsdl|}jVInf&!M*5+zyaASSJoXswZ3L@npvUCk{UHWN;xkf;T%S$$2YysH~N&@f5)>hYZBi9UxLQla6VrRqln;h<#3v^dhU~ z7>EqSiek{r>pivoUqX9OTRq6u5=~ZR$ov840B9W^kNoRbU(FAx=x$=Z>FY%Xa4&DSsgm^npNKpTJhs#weuFzJzM>NI`F!1u8%9Kc-$aH+u^k}QwAck1k8@K zi=tRXRRdorwRhrz$u@#{(Cz3ZbybAoD$C*#q9u@fyfLz?VIrgbM_<4MMRHuO$z-I;HhLuRWsT+ zZXa${=Qvx9`OMj|^jMWX&p=pJysYYEV?Ixd0YB9l;bf>RC6c_7K(=!pTSGHRp9qo+>_W>mcy#oP=$Tcq8|~w? z8Q_UzI7!6TYnb5xo>7kA9k4tSr+QYSpf+T`y z8>Kd{lDR)i{Rb2IUchRkY^3IVyU|jzQoB9S*(rR_PmclUlRvwpE!7Ej*&1%glO2GY z>ZKx*cAfXU#%;g<&FR;cEEKI+1w(^Cts*8h76}%$shb0-ym{JV1-JD4J)1~2qfZ@L zd9-Xvm034^IhY#fKyTcVv!eMdJ04jn)`;qf2Al|K%TM+a5b?}3Z+;Qd3{(`kJhB>C zW(B!aYhL$R3MFNInOnqo3L z93U$hQY65AH!y2J>gj#}+!sT#GEkMtdH_$Z1{MjF1ALrvfRDrN0!D+k%)qZ=h@vQp wq9}@@D2k#eilQirq9}@@D2k#eilXrFH+y+*1@LO8o&W#<07*qoM6N<$f($0P#sB~S literal 0 HcmV?d00001 diff --git a/data/font/coure10.tfd b/data/font/coure10.tfd new file mode 100644 index 0000000..e14fb48 --- /dev/null +++ b/data/font/coure10.tfd @@ -0,0 +1,102 @@ +fontheader +32,128 +9,14 +13,8 +128,128 +charsizes +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 +8,13 diff --git a/data/font/micross20.png b/data/font/micross20.png new file mode 100644 index 0000000000000000000000000000000000000000..fac17ec45c68e19daacd46103697c1674e42f30b GIT binary patch literal 14615 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 literal 0 HcmV?d00001 diff --git a/data/font/micross20.tfd b/data/font/micross20.tfd new file mode 100644 index 0000000..2d133bf --- /dev/null +++ b/data/font/micross20.tfd @@ -0,0 +1,102 @@ +fontheader +32,128 +21,25 +11,9 +256,256 +charsizes +5,24 +6,24 +7,24 +13,24 +11,24 +17,24 +13,24 +4,24 +7,24 +7,24 +8,24 +11,24 +6,24 +7,24 +6,24 +6,24 +11,24 +12,24 +12,24 +11,24 +12,24 +11,24 +11,24 +11,24 +11,24 +11,24 +6,24 +6,24 +12,24 +11,24 +12,24 +12,24 +20,24 +15,24 +14,24 +14,24 +15,24 +14,24 +12,24 +15,24 +15,24 +6,24 +10,24 +14,24 +12,24 +17,24 +15,24 +16,24 +14,24 +16,24 +14,24 +13,24 +13,24 +15,24 +14,24 +19,24 +14,24 +14,24 +13,24 +6,24 +6,24 +6,24 +9,24 +11,24 +7,24 +11,24 +11,24 +10,24 +11,24 +11,24 +7,24 +11,24 +11,24 +4,24 +5,24 +10,24 +4,24 +16,24 +11,24 +12,24 +11,24 +11,24 +7,24 +11,24 +7,24 +11,24 +10,24 +15,24 +10,24 +10,24 +11,24 +7,24 +6,24 +8,24 +12,24 +6,24 diff --git a/data/font/micross42.png b/data/font/micross42.png new file mode 100644 index 0000000000000000000000000000000000000000..c4169e9354d89c17eb00a4f6ab03458e4872a0e9 GIT binary patch literal 35285 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%0AS2*tDXLu#P*EI| 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 literal 0 HcmV?d00001 diff --git a/data/font/micross42.tfd b/data/font/micross42.tfd new file mode 100644 index 0000000..f12cb08 --- /dev/null +++ b/data/font/micross42.tfd @@ -0,0 +1,102 @@ +fontheader +32,128 +43,49 +11,10 +512,512 +charsizes +11,48 +12,48 +15,48 +25,48 +23,48 +38,48 +28,48 +8,48 +15,48 +15,48 +16,48 +24,48 +12,48 +13,48 +12,48 +12,48 +24,48 +24,48 +23,48 +24,48 +24,48 +24,48 +24,48 +23,48 +24,48 +24,48 +12,48 +12,48 +24,48 +24,48 +24,48 +24,48 +42,48 +30,48 +27,48 +30,48 +30,48 +28,48 +26,48 +33,48 +30,48 +12,48 +21,48 +28,48 +23,48 +34,48 +30,48 +33,48 +28,48 +33,48 +30,48 +28,48 +26,48 +30,48 +28,48 +40,48 +28,48 +28,48 +26,48 +12,48 +12,48 +12,48 +20,48 +24,48 +14,48 +24,48 +23,48 +21,48 +23,48 +23,48 +13,48 +23,48 +24,48 +10,48 +12,48 +22,48 +10,48 +36,48 +24,48 +22,48 +23,48 +23,48 +15,48 +21,48 +12,48 +24,48 +21,48 +31,48 +21,48 +21,48 +21,48 +14,48 +11,48 +13,48 +25,48 +12,48 diff --git a/data/font/monopro6.png b/data/font/monopro6.png new file mode 100644 index 0000000000000000000000000000000000000000..64be62469388faa870b88bbbdfd2811c8ab4629a GIT binary patch literal 1557 zcmb7^`CHNl0LH(HVl%a-QF*Xzl?#(OQ&dbyOF=ZnSsvsOd4Q;SCV3`M)66+MDbKZ% z$Pf=y)Yf57D@6m#v_w$ppv=T0DDPbDKiK;`@B8`b{pJ1P&G+@e>g$^50sx?o^KkR~ zO4>JX0DsK~=#%{bpe@6>xgJZaR@Nv>>MZqglVWDpSz|kb#r*eKAd~8adMAVwv)Nm3 z?$82Ktco-1NwOPxJ8Jn+;mo|p&FR^*;!z_*a+2U&Xf^8D=NEE)n#6;iB6x1_HZ7ra zx;8es=`a5YkM44E6cFSSuT;IS920^Bn6Ns`fl=zo+;G zksrYcIy<i zB7xA!zR#XMKV+BqPyT_Tih3aNAa+l^S}C}gg>NXR+IPZD3(BkZ=L{P(HrO4`FY9k> z)v^U$$xC67Ev}TeP7O_c0v812RyC5Ogj~Wo7o`QyL6{=rr;nP8L}?!&e4j1AxTLpn(-6BcOaJc_ws86ZXZNpDoCtW>t_%E zP__K#3I!J%${4NhqI3dFyh}2$eUwq5XK0jDAdvXVGi78sx^44j7vY#Gs<^-$Ox+Og9OYCVtUzlHe_LmP? z__cs_)B{-4lqTj85VHCA1{pySh?Wg{b?m#0*w{Rn&V1)g$tv>Z5nv;+1p4LL-l1-*8#xCTzev#+dHi7vGU6KPn0QUG9KC_lCt6s;2#RE zh9DbJbV+)0qV_}GFuL&pF!BGh;1~LIAG>_gDQAsNW<|d`Qc$` z`aaST0wvfvHM75P64G%PM9ZXA5a;%0bNwRhHjuQ!BOxtY@Yx4C+i$@#%Xl;Im&3ZF zP2P+H_?i%l%kUP`?CeZ3lZdpzVC;eXF4 zsGQ(4Iw%3M0N5fX*u8&a{c)Hypu1UH(=PnFzJ?{`=iV)^1xBOXJjBAfBg9kb&#=Se}qe(O_VkETrYn{+rQcQ0L{*K-doS1EW1(Df= zazK^ERictn6i>@xVfN>d$%&^t<8M{@3hhAM~nQWi1!BSm6Z41Hq0}5e~3UL#Y##w!;&5Uw(Gd z%EgG>8NqfpAU`!@f1nGO>q7%?r{KbL6Pe^JS|D^7D;=hHxUU;RUv{63axRG|K zVNgRbvPlP>v%{Q^HCTBc1}vn^hshVW(FkAv`hN?u2wKa4IJ?g7zx=I>bN6v;JVa#t E3va#RrT_o{ literal 0 HcmV?d00001 diff --git a/data/font/monopro6.tfd b/data/font/monopro6.tfd new file mode 100644 index 0000000..5e7e64a --- /dev/null +++ b/data/font/monopro6.tfd @@ -0,0 +1,102 @@ +fontheader +32,128 +7,11 +13,8 +128,128 +charsizes +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 diff --git a/data/font/proggysquaresz12.png b/data/font/proggysquaresz12.png new file mode 100644 index 0000000000000000000000000000000000000000..50c2d01fdd0d5f4215d2e138f8c5851f970bb6d4 GIT binary patch literal 1717 zcmV;m21@yfP) z?UEcJ2u1Bw-v5;+KT>WP0s@MPJ@-^?ZD#yzMMSVS&*$?g63_FLFHHZGQXVG#=ljU^ zPxC9Vt`GS=lBZYJ(!N&Sk}l24V<>+eUIAD+0IhJ)cDQywDG5G_VzDtv6FZC(AV>bI1StnUh18(`KjnJs^E z@*na;`x9Zbr4*=LHh@LNT8~lEKHjq%W^9U@zt=x4JuQ&}F#FIegDfKxe!34^s9V5l z^_24A0r+}O#R8CC^2GvP>F8*feLjz`eUQpWmi%)K!$Uy=BMYNPMcmGZCyP#?dZgx9={>1TYz<7M$Yn< zNwW^9CI~aCSbP2}R6fPy2#R)%(t2k!0L?ct_^psz_V`y2?F!aHvDQdk`kGFWIcM$*X!VWM-7D|y|1rLC3jhFA5DVCs{+|tSQ!Iey@%Z_*JeJ$M zJy)vbl4mbns>55p*MI5rajdZbi!a-o-%>7`RrOm0J|%B30=Z+CccN(>ZTXShyC zB9ZBt&Ah<|s8}zIXcm22mz66gzZBnJ37gp>X8r7Ged!IBYjNqY#sX*_8q?R#yVil2 z@%Q)gjP%dr&!4>uag5Pd!_qv!MPST8K58t0HDWBj>|kH{(@CGLKV|x9Jg0!C=xS`n z$uo0lB-*(&(~pzRE;sb;;L{>`y8Rh4jGvpxzYnn56E}M;T|0_ut2X-DdkSHpp1{mf zyeb+g<=4`={L(Q`tN$2L8i0$QMGMmDLDTLnWL`WXQ~EFls^zKqytim-y<8g>KYQ=_ zyydy}rM_9(KZf_OglQ_;dR`wnN7J(0MNX*=OKiYfp3>`EHowXbyKe=j9f$xVVXUOI zZ+8Cg;VB1T6Rl=wKObkO2B}$B4WTQc3%;006?b#RC4Z!X4#V>-|l!fKuLXoma!t;>o1E_5|~$ z*Tca8Q~;zmTV_5>tEQJ{zRlMY@8e70eBOZy-kp@6@1cQNYx2?*_J? zrL+;A=66pZI3dv5|B&Bpd!U2I2%NbNrupi297ejy0t4?mbM{i00000 z000000000000000000000000000000000000000000000U@w0F|9<+G8G49L00000 LNkvXXu0mjfaPKv~ literal 0 HcmV?d00001 diff --git a/data/font/proggysquaresz12.tfd b/data/font/proggysquaresz12.tfd new file mode 100644 index 0000000..76db60f --- /dev/null +++ b/data/font/proggysquaresz12.tfd @@ -0,0 +1,102 @@ +fontheader +32,128 +8,12 +12,8 +128,128 +charsizes +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 +7,11 diff --git a/data/font/proggytinysz12.png b/data/font/proggytinysz12.png new file mode 100644 index 0000000000000000000000000000000000000000..d62117e7ee56a4ac4365693227f19156c3215c82 GIT binary patch literal 1578 zcmV+_2G#kAP) z>yG0f428*P-v5=eKXx->J-!2pNzW%$RpS^aI9v{N<~Yx@aU93d9JaHyc69Gvzg4!M zatMB0IsfxnS05Y89U9wTT^!aMQOoK^{f1#zR z<+Xj_j0V6#-Y;n5pTySt9gK}OdbB(w9I^$z`ff;RqjEgBSAv_L$Y z-ivL+${|3b4-6{^F1R6JWyRB;s?Y0aaxbFjEK_#)_Wgu6fEZ zPt5_I!V`3>@&TY8$3)5V{A+qt3NCG{h<6TH z9^H%P{bU1_A3D5~z|6L+r`z>R-Dzw>BmPd%Nn0&8jd@g+|rB zyKSWy83MNXk^lgKnNl!pkbEX$~$cX%krlRChPE_>B55J|J* zFeGyQE+AXzeoT(clKbmX-)yfD_0QJJmP0^BVvYED)0pAMrI9IT#BVf69|KY_0H4g8 zq~KrU?mrtl3wQWUFK0!*ntpzdew(LlQaLYND!1}^tXZ8hLn`R>-s6!GkNvtMt!u;uVCdLi$0s& z&|24ekax}xOk&2Li;p%+wrd@2{4K`hyRi<1R+BZo5;Jh(ITk)Dmu6(sh@9KQZD-Ro zti1;hlFxPlS@GAwSt6S}8NX2<0P0~$!Iq3F`O(YgUsLGczjY?lZ&o>}?N_>tgnTeI zHqDAu+zq@c{ccrqR43SyiUF{S>}2-USicL1*r;85qNFtGso!i_B%9R8mi@XXx)Lcb zTyZCYyayb$FQ+ZFI2#p)JSw2KoPD|ymVHF(E*%714{!%NDRQM7a1`m6L95xRLd!qJ zBX~{)OJghN=h65zKaD4~{MQCS^i*)fzS^cu`m$28<`b2ywO!3J>?Q@z-k7Si(FMT$ zyy;YMd0RzxQv!EdK5oHo0RSe${ns$B#2WGI?esigL|*Rgn)0V9mUq}FHT(Z&OTk(B z)e@Jadp&FI6_v^5o0W65`YOj$Lx2=SS7l$XS$XxFOj%7oO8Lfbt>zq{KMSyW(q}#8 zbhz@eMdPr0wuN=Ec!Ijvy(E<2@O2I$l9CJ$dC(50tW`Ae4p;Y>I=s%5$w!)Kp^k4!Nmx16$ z5C9*}6#yf`g)|IMH4j5YLHfObnUW{BIf7YUL00Ji)>%4G1k3?GoIU_vz3BmXXb%w8 z+0pm_000000000000000000000000000000000000000000000000000000000000 c007M358kosfzABya{vGU07*qoM6N<$f(yIv2><{9 literal 0 HcmV?d00001 diff --git a/data/font/proggytinysz12.tfd b/data/font/proggytinysz12.tfd new file mode 100644 index 0000000..5e7e64a --- /dev/null +++ b/data/font/proggytinysz12.tfd @@ -0,0 +1,102 @@ +fontheader +32,128 +7,11 +13,8 +128,128 +charsizes +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 +6,10 diff --git a/data/font/vgafix12.png b/data/font/vgafix12.png new file mode 100644 index 0000000000000000000000000000000000000000..bc5b810b8a0b78c1cc2e2b512d508911ad3b919e GIT binary patch literal 1857 zcmV-H2fp};P) z>#`gx2uAHx-v5>7{5hQ%w!+87+sLX)WoI{y-HM39OrFo@Q#hXIDJk=PGB3Ya$@P5x z|C0>j_v#05P#eb6l}cDF9)O#b^jc50{yitt`nmr1)4ASiOY$VBx6!=+_Gk@&8Oh~XMN~V}SP=vCjEL*B+7L?l+0l=1|4ty@Pr4RHv;njRiq4kSK=yt{ zjG`X=UR%=4?LBJ^qNCNObbV?3q74GM&W`47>m#(qJK)B zk`ZV+hjz#cqi7AX$7>;Nu~?P>$yG{dV*q4kAd!A=xtUFLVCo`z8;F3!0B9SnC299y zu%1BNWI`qyy2b6X>q%fem{NeJ(c>`^^xoa#4i-xc5b zJ%E;aOE|inQuw`lEjJo>dnfDyc0=+;Gug3!l9PCL%TuS!9GRDIi2)KLX#khw2?CKb z_`=9U=+MYW&p?sdqt{VAQSTMP2oHef@}(jUNr$y&pvOc0NV1muSG*UC)dQgWPwl{u z#B%VfZ(>RX=$*edBplAM)45DW=t)!JVA-2UH-eLfn4v47K(X8Q7SxWAB`jxe$ zsO$cSFeLXx8MzCHaP`_s9!oJrYwaGjOtqe;7w~Oa5;pU!8=3iN2T|FX1Ka~OYE+*I zx&%bIQ}6vzhSuAHS+=FKL7ru55QugTP0u3tNNu+CM74wLxue=b^-S9-Q3Hswd{mDV zY(=%h$w#&|Q%0k!Yfu^wu!CDn^st_L_j-WDPfpyVPu2rmD)W-*;LAw^xSU=PXgv_I zW(lpib*ask9!vh+lEZJwM%4_^ckcCp_}ncI;5iLL&eElPH@%LW^-FC=<=>I_L+S!J znaFwo@i>_pKxBq$^l8@A!ikERZ4IYh0wPPN>LX8jz2y?o^X?h!wr?K#Jg)(uX;TfH z5uk0>G9E*SOmaoEHKK;W#A^W3U~!GD&a5GwfE02>5qZ`x8H#&3s+R!C2sE7*pys}a(B2__5j*EepEexM-R>ab2S4~uo^(biQk9(&B>g| z^1($|=>gs&Pc&z+J3AMObf3xkWznU~vF@l&tS@ZJd=NB(>z20set@6s z6mTZVSh61AQkj=qmVn6Ig;&p3+z~?!(>j$1>9~}!&q$q-k>p}T%02fFZph=9^g`$m)r(k&PoH&Y?)3t2s#q( zKaMO#9|X-j21eSN@%eE84p9kkoPR!2&?YHc-;R*uSBy%t5Pbh6~} zt$KRT!&PTN?P+2FO|pZ_L8Hl%*+~^z2-E94PafZ@hojd9)zj2RYXa%dr>vQ`rl8&V z5n2-V{(KUrK6eCCUPep?eZx6G26}zO618tIfKt*3%xM4j@Q6bhF6fCy+g4QFf~3!z z>qmfg9GdS3pfX4UEuGQjV&1lp`_OucsIv{r7S!}C-?9WGMl?%+)e(jnvUUzjiaP-H$kOGNWXg+;4ja`?3dR9jnCZ{LT_>W3V?P>s}{5u$@4F1b8 zMzFI1^x_h$9w~tnIatfrc9duXKwNh%(~CVc^>rNRKtvkBF@s;q&vY=C&qnjqvjR$M z{+*M%4w?0ew00000NkvXXu0mjf`;wC> literal 0 HcmV?d00001 diff --git a/data/font/vgafix12.tfd b/data/font/vgafix12.tfd new file mode 100644 index 0000000..a66ef11 --- /dev/null +++ b/data/font/vgafix12.tfd @@ -0,0 +1,102 @@ +fontheader +32,128 +9,16 +14,8 +128,128 +charsizes +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 +8,15 diff --git a/data/shaders/shadow_pass1.frag b/data/shaders/shadow_pass1.frag new file mode 100644 index 0000000..f4a2ab7 --- /dev/null +++ b/data/shaders/shadow_pass1.frag @@ -0,0 +1,13 @@ +uniform sampler2D TextureMap; + +varying float CameraDepth; +varying vec2 TexCoord; + +void main() +{ + // draw the typical textured output to visual framebuffer + gl_FragData[0] = texture2D(TextureMap, TexCoord); + + // write "normaliized vertex depth" to the depthmap's alpha. + gl_FragData[1] = vec4(vec3(0.0), CameraDepth); +} \ No newline at end of file diff --git a/data/shaders/shadow_pass1.vert b/data/shaders/shadow_pass1.vert new file mode 100644 index 0000000..377efc0 --- /dev/null +++ b/data/shaders/shadow_pass1.vert @@ -0,0 +1,24 @@ +uniform vec3 CameraPos; +uniform vec3 CameraDir; +uniform float DepthNear; +uniform float DepthFar; + +varying float CameraDepth; // normalized camera depth +varying vec2 TexCoord; + +void main() +{ + // offset = vector to vertex from camera's position + vec3 offset = (gl_Vertex.xyz / gl_Vertex.w) - CameraPos; + + // z = distance from vertex to camera plane + float z = -dot(offset, CameraDir); + + // Depth from vertex to camera, mapped to [0,1] + CameraDepth = (z - DepthNear) / (DepthFar - DepthNear); + + // typical interpolated coordinate for texture lookup + TexCoord = gl_MultiTexCoord0.xy; + + gl_Position = ftransform(); +} \ No newline at end of file diff --git a/data/shaders/shadow_pass2.frag b/data/shaders/shadow_pass2.frag new file mode 100644 index 0000000..ab181e9 --- /dev/null +++ b/data/shaders/shadow_pass2.frag @@ -0,0 +1,25 @@ +uniform sampler2D DepthTexture; +uniform sampler2D ShadowTexture; + +varying vec2 DepthTexCoord; +varying vec3 ShadowNear; +varying vec3 ShadowDir; + +const vec3 shadowColor = vec3(0.0); + +void main() +{ + // read from DepthTexture + // (depth is stored in texture's alpha component) + float cameraDepth = texture2D(DepthTexture, DepthTexCoord).a; + + vec3 shadowPos = (cameraDepth * ShadowDir) + ShadowNear; + float l = dot(shadowPos.yz, shadowPos.yz); + float d = shadowPos.x; + + // k = shadow density: 0=opaque, 1=transparent + // (use texture's red component as the density) + float k = texture2D(ShadowTexture, vec2(l, d)).r; + + gl_FragColor = vec4(shadowColor, k); +} \ No newline at end of file diff --git a/data/shaders/shadow_pass2.vert b/data/shaders/shadow_pass2.vert new file mode 100644 index 0000000..52e01e3 --- /dev/null +++ b/data/shaders/shadow_pass2.vert @@ -0,0 +1,49 @@ +uniform mat3 WorldToShadow; +uniform vec3 SphereOrigin; + +uniform vec3 CameraPos; +uniform vec3 CameraDir; +uniform float DepthNear; +uniform float DepthFar; + +varying vec2 DepthTexCoord; +varying vec3 ShadowNear; +varying vec3 ShadowDir; + +void main() +{ + vec4 tmp1 = ftransform(); + gl_Position = tmp1; + + // Predivide out w to avoid perspective-correct interpolation. + // The quantities being interpolated are screen-space texture + // coordinates and vectors to the near and far shadow plane, + // all of which have to be bilinearly interpolated. + // This could potentially be done by setting glHint, + // but it wouldn't be guaranteed to work on all hardware. + + gl_Position.xyz /= gl_Position.w; + gl_Position.w = 1.0; + + // Grab the transformed vertex's XY components as a texcoord + // for sampling from the depth texture from pass 1. + // Normalize them from [0,0] to [1,1] + + DepthTexCoord = gl_Position.xy * 0.5 + 0.5; + + // offset = vector to vertex from camera's position + vec3 offset = (gl_Vertex.xyz / gl_Vertex.w) - CameraPos; + + // z = distance from vertex to camera plane + float z = -dot(offset, CameraDir); + + vec3 shadowOffsetNear = offset * DepthNear / z; + vec3 shadowOffsetFar = offset * DepthFar / z; + + vec3 worldPositionNear = CameraPos + shadowOffsetNear; + vec3 worldPositionFar = CameraPos + shadowOffsetFar; + + vec3 shadowFar = WorldToShadow * (worldPositionFar - SphereOrigin); + ShadowNear = WorldToShadow * (worldPositionNear - SphereOrigin); + ShadowDir = shadowFar - ShadowNear; +} \ No newline at end of file diff --git a/data/shaders/sprite.frag b/data/shaders/sprite.frag new file mode 100755 index 0000000..fb132e5 --- /dev/null +++ b/data/shaders/sprite.frag @@ -0,0 +1,17 @@ +varying vec4 ambientGlobal/*,ambientA[8],diffuseA[8]*/; +varying vec4 pixelpos; +uniform sampler2D tex; + +void main() +{ + vec4 color = ambientGlobal; + vec4 white = vec4(1.0, 1.0, 1.5, 1.0); + //color = white; + + vec4 texcolor = texture2D(tex, gl_TexCoord[0].st); + color = clamp(texcolor * color, 0.0, 1.0); + //color = color * vec4(1.0, 1.0, 1.0, 0.5); + gl_FragColor = color; + // gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); + +} \ No newline at end of file diff --git a/data/shaders/sprite.vert b/data/shaders/sprite.vert new file mode 100755 index 0000000..e43949b --- /dev/null +++ b/data/shaders/sprite.vert @@ -0,0 +1,15 @@ +varying vec4 ambientGlobal/*,ambientA[8],diffuseA[8]*/; +varying vec3 normal/*,lightDirA[8],halfVectorA[8]*/; +/*varying float distA[8];*/ +varying vec4 pixelpos; + +void main() +{ + normal = normalize(gl_NormalMatrix * gl_Normal); + + pixelpos = gl_ModelViewMatrix * gl_Vertex; + ambientGlobal = gl_LightModel.ambient * gl_FrontMaterial.ambient; + + gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; + gl_Position = ftransform(); +} diff --git a/data/shaders/standard.frag b/data/shaders/standard.frag new file mode 100755 index 0000000..3aec6dd --- /dev/null +++ b/data/shaders/standard.frag @@ -0,0 +1,141 @@ +varying vec4 ambientGlobal/*,ambientA[8],diffuseA[8]*/; +varying vec4 pixelpos; +uniform sampler2D tex; +varying vec3 normal/*,lightDirA[8],halfVectorA[8]*/; +/*varying float distA[8];*/ + + +vec4 overlay_blend(vec4 base, vec4 blend) +{ + vec4 lumCoeff = vec4(0.2125, 0.7154, 0.0721, 1.0); + vec4 white = vec4(1.0, 1.0, 1.0, 1.0); + vec4 result; + float luminance = dot(base, lumCoeff); + + if (luminance < 0.45) + result = 2.0 * blend * base; + else if (luminance > 0.55) + result = white - 2.0 * (white - blend) * (white - base); + else + { + vec4 result1 = 2.0 * blend * base; + vec4 result2 = white - 2.0 * (white - blend) * (white - base); + result = mix(result1, result2, (luminance - 0.45) * 10.0); + } + return result; +} + +vec4 process_lightsource(gl_LightSourceParameters light, vec4 incolor) +{ + vec3 n,halfV,viewV,lightDir,halfVector; + float NdotL,NdotHV,dist; + vec4 color = vec4(0.0, 0.0, 0.0, 1.0); + vec4 spec = vec4(0.0, 0.0, 0.0, 1.0); + vec4 white = vec4(1.0, 1.0, 1.0, 1.0); + float att; + + /* a fragment shader can't write a varying variable, hence we need + a new variable to store the normalized interpolated normal */ + n = normalize(normal); + + vec3 aux, ldir; + vec4 d,a; + if (light.position[3] == 1.0) + { + aux = vec3(light.position-pixelpos); + ldir = normalize(aux); + dist = length(aux); + } + else + { + ldir = normalize(vec3(light.position)); + dist = 0.0; + } + + halfVector = normalize(light.halfVector.xyz); + + /* Compute the diffuse, ambient and globalAmbient terms */ + d = gl_FrontMaterial.diffuse * light.diffuse; + + /* The ambient terms have been separated since one of them */ + /* suffers attenuation */ + a = gl_FrontMaterial.ambient * light.ambient; + + /* compute the dot product between normal and normalized lightdir */ + NdotL = dot(n,ldir); + +#define SHADOW_FUZZ 0.1 + + if (NdotL > 0.0) { + NdotL = ((1.0 - SHADOW_FUZZ) * NdotL) + SHADOW_FUZZ; + + att = 1.0 / (light.constantAttenuation + + light.linearAttenuation * dist + + light.quadraticAttenuation * dist * dist); + color = att * (d * NdotL + a); + + + halfV = normalize(halfVector); + NdotHV = max(dot(n,halfV),0.0); + + //spec = att * gl_FrontMaterial.specular * light.specular * pow(NdotHV,gl_FrontMaterial.shininess); + spec = att * white * light.specular * pow(NdotHV,10.0); + + } + else if (NdotL > (-1.0 * SHADOW_FUZZ)) { + float fraction; + NdotL = (NdotL+SHADOW_FUZZ); + fraction = NdotL / SHADOW_FUZZ; + + att = 1.0 / (light.constantAttenuation + + light.linearAttenuation * dist + + light.quadraticAttenuation * dist * dist); + color = att * fraction * (d * NdotL + a); + + halfV = normalize(halfVector); + NdotHV = max(dot(n,halfV),0.0); + + //spec = att * fraction * gl_FrontMaterial.specular * light.specular * pow(NdotHV,gl_FrontMaterial.shininess); + spec = att * white * light.specular * pow(NdotHV,10.0); + + } + + + // blend mode SCREEN + color = white - ((white - color) * (white - incolor)); + // blend mode AVG + //color = (color + incolor) * 0.5; + // blend mode LIGHTEN + //color = max(color, incolor); + // blend mode OVERLAY + //color = overlay_blend(incolor, color); + // blend mode DODGE + //color = incolor / (white - color); + // blend mode MULTIPLY + //color = color * incolor; + + color += clamp(spec, 0.0, 1.0); + return clamp(color, 0.0, 1.0); + +} + +void main() +{ + vec4 color = ambientGlobal; + vec4 white = vec4(1.0, 1.0, 1.0, 1.0); + //color = white; + + color = process_lightsource(gl_LightSource[0], color); + color = process_lightsource(gl_LightSource[1], color); + color = process_lightsource(gl_LightSource[2], color); + color = process_lightsource(gl_LightSource[3], color); + color = process_lightsource(gl_LightSource[4], color); + color = process_lightsource(gl_LightSource[5], color); + color = process_lightsource(gl_LightSource[6], color); + color = process_lightsource(gl_LightSource[7], color); + + vec4 texcolor = texture2D(tex, gl_TexCoord[0].st); + gl_FragColor = clamp(texcolor * color, 0.0, 1.0); + // gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); + +} \ No newline at end of file diff --git a/data/shaders/standard.vert b/data/shaders/standard.vert new file mode 100644 index 0000000..9d75179 --- /dev/null +++ b/data/shaders/standard.vert @@ -0,0 +1,15 @@ +varying vec4 ambientGlobal/*,ambientA[8],diffuseA[8]*/; +varying vec3 normal/*,lightDirA[8],halfVectorA[8]*/; +/*varying float distA[8];*/ +varying vec4 pixelpos; + +void main() +{ + normal = normalize(gl_NormalMatrix * gl_Normal); + + pixelpos = gl_ModelViewMatrix * gl_Vertex; + ambientGlobal = gl_LightModel.ambient * gl_FrontMaterial.ambient; + + gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; + gl_Position = ftransform(); +} diff --git a/data/shaders/test.frag b/data/shaders/test.frag new file mode 100644 index 0000000..03f0e92 --- /dev/null +++ b/data/shaders/test.frag @@ -0,0 +1,12 @@ +varying vec3 normal; +varying vec3 lightdir; +uniform sampler2D tex; + +void main() +{ + float intensity; + intensity = dot(lightdir, normalize(normal)); + + var; + gl_FragColor = texture2D(tex, gl_TexCoord[0].st) * vec4(intensity, intensity, intensity, 1.0); +} \ No newline at end of file diff --git a/data/shaders/test.vert b/data/shaders/test.vert new file mode 100644 index 0000000..5cdab5e --- /dev/null +++ b/data/shaders/test.vert @@ -0,0 +1,13 @@ +varying vec3 normal; +varying vec3 lightdir; + +void main() +{ + gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; + + normal = gl_NormalMatrix * gl_Normal; + vec4 newpos = ftransform(); + gl_Position = newpos; + + lightdir = normalize(vec3(gl_LightSource[0].position) - vec3(gl_ModelViewMatrix * gl_Vertex)); +} \ No newline at end of file diff --git a/data/sprite/bluelight_static.png b/data/sprite/bluelight_static.png new file mode 100644 index 0000000000000000000000000000000000000000..d7197dae3aed078fd7519fc7c9534faffc000530 GIT binary patch literal 9512 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 literal 0 HcmV?d00001 diff --git a/data/sprite/hard_particle.png b/data/sprite/hard_particle.png new file mode 100755 index 0000000000000000000000000000000000000000..630fbec8a913c620e3db18e01bfec32f565bc08f GIT binary patch literal 890 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 Ef|rvEX8-^I literal 0 HcmV?d00001 diff --git a/data/sprite/soft_particle.png b/data/sprite/soft_particle.png new file mode 100755 index 0000000000000000000000000000000000000000..09c56436d70be18238f12882dc58cb54b1bcae62 GIT binary patch literal 865 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 literal 0 HcmV?d00001 diff --git a/data/sprite/whitelight_static.png b/data/sprite/whitelight_static.png new file mode 100644 index 0000000000000000000000000000000000000000..b15444a878fbc48938e461472e7ca507700597cb GIT binary patch literal 5487 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 literal 0 HcmV?d00001 diff --git a/data/sprite/yellowlight_static.png b/data/sprite/yellowlight_static.png new file mode 100644 index 0000000000000000000000000000000000000000..78331a73df9754c5d21bf5ca5e291e0d7ff0fcc3 GIT binary patch literal 8531 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 literal 0 HcmV?d00001 diff --git a/data/tex/black.png b/data/tex/black.png new file mode 100644 index 0000000000000000000000000000000000000000..1090894c046636ad8e9ddc3ffb8220faa1485a74 GIT binary patch literal 281 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 literal 0 HcmV?d00001 diff --git a/data/tex/nm_flat.png b/data/tex/nm_flat.png new file mode 100644 index 0000000000000000000000000000000000000000..22f4692eb2d2c17cca1f272372e875ae36acb3fb GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;OS+@4BLl<6e(pbstU$g(vPY0F z14ET614BbI1H;e%K>8&EL#Y7+!>a@a2CEqi4C48d;*Yuk)v^Wngt#^|{0D+7UAAdJ z5ym8McNfP0OuF}g9L@rd$YKTtZeb8+WSBKa0w~B{;_2(k{*aYj*i4PF>&|)78&qol`;+0HM`McK`qY literal 0 HcmV?d00001 diff --git a/data/tex/plasma1.png b/data/tex/plasma1.png new file mode 100644 index 0000000000000000000000000000000000000000..46d9a19118797b0fed0471d723be2a9758d56242 GIT binary patch literal 9919 zcmZ{qLwF?&tcFiJ?bL3kJhg4xobuF|+O}=mw%e&~+qUg?>igg2UEIZ&FUga4okbF^ z@LK`_76%pp03b+7iYoo*qyH=D{{kS4PRe*u~`U6`u69HQ@A&uI5|S7R#Y+%`!XhPA@Hyxld{!!}7D3 zo@seZOy{}w6pjmw3P`EvA&(Y9Th zZciIE2BOZBGtG}zoLvCbT=S^n9J}d<( zZ#v&@ZpoRH&@y2eR-4ttop6j;)C34yZ?Nph^t`>*LUk`3m=Vt7p>dxX_gI!}PV{i# zx&liDR&SyP6$0ZF`|F_cs>nO z<&FT+nAvHf?t*^d!qw+(-E1RMP4QbMlOLYIksi(qU%%0yj-L3xQI15{j0hJG^igEm z3isDQ&V>ZbGD8N1n}zb#ikk5n1=D_R_rVRF`k(ue{Dlq}Mm(M;jNKb6`Teq30x-4} zhhRvz@|i!D$RDATM~3IFIBi0gJl*vdM)*BAR20$(=HW3XcZB1f7>_pi)T;LxpX2#@ zNbW1^wv(Bn;%a-Xt$!&qx??)Kg$Q>OVq>utYuWg^+ATFA41K=wPFlKcdG)D12P-#S z%wFppL4NhQEO63349VPrO-)Z6W1l@JwfA$nVUn=OgJiQGjOu0hb~qZ)hQ+@xnn1C@ zB%s=)sfoiichDgT!l_3X+OeTA^ymahVXE#J`iD}2J*yL!G~HK(C*Oy(+k%$VVugbo zHO4lFw3KKX#PXvV8>j=Jx%d-gis>r{{}ucQvY&i%7N&+j%v54>Oo^r>43WpvJHsl# zSwJv)EC|)jh41Jd<;W_~N=k}uotNeM^kEVTo0^`L9>VFBKq*3vlP)I2JyMQ8R~&?T zSl)kbj!>~irvT0Kpt{atPeR&M4FUN}VjC*#NeB``C^wzdnpnywC==YC2yCQu&zb6qqrzs6yMu3-0Re=+|L=oYwdS6XmlwJkI=0;(wZf8+wCq#V; zU7}!0GPO^CK8fA$KD8dN=pm5)Gt=y-Q}+I0=5%OH%Lx0%os4HMa^2Js8{J!f+ce

Se-;6K6B%$an&V_61XjrWvLwZ}ELXiih_Qe*AOZL4gM+HgJy^i|DOk0d43L55>} zTBXF-bx$qF(--MdDK~XKLtTcUZXomR&1_-)3i)CwdUWJ#8bOjj5^x=K?Nw{9K!gJc z&j8m*9Q5_R2SQCi8gtZN!ovOTKS92N5a zT<0~TV$8*oEPK(n@w*`%cM*mv7zyOxCTf z*Zks5JMUkj_ z47VIeT*BPPI{29DYcasE=&|m;Eq&aA%1aj&_WI&j=rYyz!`JkIrKN^EcIQLnZ@aQg6-!&HZuJKqELfpeiyU%CD-7Z=3Hf21$~O~gtLF{!@N>jtNGXqyU~2! zT1W&Vk5tF0FQ$kuDCBm9>w4n$dBZBlT{&1Y*7wj0Y?V$c_-d1_8UQIX*ka6Bc^QEV zb!TP~;WFV?8jpCtyzT{Ng8Y*(bV_ZvhOjy#nctN>x9wC6j`M2E;=1+-6c3S0Jq=c)geKz358g>BTcZdbq~H2BOpb zyAAiPcy2;H=-*S%^Ekh zvCC12XgwS;*KqC1KO+$7^2C<4juG}&0-AXa$&F*4o^N- zCoUf7PWBBI>qk~9SW8WiPHsckQvn(pdbt8fAj5dcDI)S#Jw6nRn2(J790Y4l;8e#9 z7N^--T#jH`s@_L-`N|rjXs}o@Wt-TVRpkax=+}k4HYnG(8auU;5dm`Hw&Kc#od5u(08Tdkw5Z+!8c>!Uw-7L1k=l=6LFhm^q( zbWIaALI+93R#7qqN8?q#>{A6iye4PlvGtsvAVJVWO#X@|B}#-C2DZNB)_z(4;pGzf z?-S$^1ZO|CVDJjPAIC+nf)4`yGsNW;gqa*7I6c}9!BFcO)mGAAWpA+&R1Cn(*r%+PO%gSJ2&ac z)Ytq9gA$x`F;ovf?25b;^9*9ijWNTGXhi(&WjwF(do_KMept-feZP*)2a+*UF@tPH z=!Apg#d!qT6%KqBDwdH;%ttvNV@)6GWk&WyTC^MAX?n-HD2BfubWNJX9yz)cqv6|E z!tMutkB~QO`(t5!1V&5KX6%Y$>`c0?Jn(})u%1Zp8h`BdP`4MfpHDuTHk1>-Fp$2r zCB2e9*6J=4)qQtw>%|U>5c%q}7tHT(2hG3h&v)OTH(RXXa6a}MQIGTT=YJ29TFN!j zsV_a)18bxPBJTRZ(OhN_9iLLAgf-L0I453#zcvZ(gZ@;w#P+Tn5G*8)Inrq!IZ2e6UVH6Q7Yb6iK|^e4$C{0v5iNyQo?d!a z!4+cbdrV!emb{(ielR`2DCiaCQ2a`{{3-!PEz`vPRAXAZU+_if(%2{f6f|RLz$9tL zCFU#SRT}g)#fldX-c4h;L7Vq%QKh5G4XYwY4_;})iE9KXQ|WOr1Y>Z`I$PO%BB79w zac|rLZ3gOIxW1`4MC>x|UoAp-s#RyymwSOqPmKP?gpn_HtreOTUmj+tw5j+_D%ej4 z3hdNXm4>SSXziu-_3UG$%(x=8VN?pw-+hfdg;PF=(5`R6C174+(~ZU6*?{jGWYpfs z0I&AxbPPv*^Mq~46+HZ<1ZnmCxRTWn=P{(W_2qq}egp%2w?Jt=!KsuXdHL*4$p!}j z@D$wZ-m$~IgTAn8rDx%>YBuhvf z!*s3*0ix;{xJQQ>1lVkK)GAwQL=Caan`r|?Mk$AtZ-Ict-jOA)kXt)yX}cWMv<^(^ z*=HQNkBMFH9!VZmmKHWuX~)+zM%M#d*+k``lk+y;SC9`fS@45DR7;J<%ZwFloz$+HuD}Q z2y{&%$Eevzu`Y>Zrard(B?e(QS?;N?XfG?lFqB+G%WoYfQ!E@$iO&(|*zEFCbPbEM zWQ#;SGOD&-1>`hMLK2UwNs^|Hgpbym4h!(!7T$xP*uTz8FsE@WP){Al`VV9{lfRRd zr+lh3kVED0&le|at9BcA^61mr{xPJWUnw~s1 zlh0?w@bK&@g9>*hT^f+xW!H0&3{tMOOb>HHXZN7$2vc3x7*KBh%X-f`~q z{LNJbS)Q4^4$yiO19#ycOk~7I(l}7ysy|bwbgaJiPK>5|Jk>J6%r`TLJwarA!LBoL zvp|p@B~kd~*w}s|msZu73@_g{8x3KRz~Ro%8M_&47y>W$c`SDkx2Hq5Qg%vDw58`@ zwK3z2+q$&W8e2v@lU7;!KE||NvQzE$JYo6lgz)IgRXTuuUbRFF6HdVhK2^J;p26O! z=DPA)jS8n0HNdxN;~Zw)Y@DYWbDhG8wM?pfuZ)_9rkY=-A#TUFmR>+yEm&xXht@@c z6oG!|$z^JEk+oJa_6vHCk<#zFrUSq*#a#fxJT9Ual3I(#hzY=BDQP`Me7?NW9nlEbcLez+&0ta07fN8fGGfjFqhFu1+1!`4Xn^_3Z6DrC@jmDOrV|D#Oa_@X707Ev-KDbJPoK3Q5#P_~-JbgwR$?>W0+)*{t)&t~%_H&H$wQ^Ml+QI{k5ytG+$`60qRWC7 zn8VuHY4HmUGke{V?>tc6Hywc!@z2JK#J6z8)rSSeX6MTkBxqVlk?2pd&F)N-0r{-U zncB)X15Niq~Zf3EWeDv^~mH7fiix96I6^ZErnO^=~tkP4?CuM1t6@zpf|S0(^!FN5dLh z7$MpAOe1!xp=S*ZmL;_5+hPj`VjR8s_9aZ(T@M+Bj`Xb+*BP3_`gW6aBTp*j(z+V^ zb)X=FYMbSpkk*b;zVSAp?&6+?)(e>;#-xy{3o8Z`Mcy4t^`v>N!Y(uC`x}T@%$DZH z*U>_D@xQuIIkm=^4Q68Ne1Eylnl{FCOmo*WoR7=+baW@feG(OpwrXxHtv#`RiJ=6! z@lRqz#&Yj}h$Z|v>JDz-8Qe8LQEi34MDAWnnOPnTys#yMUp(?kn=?f6dnENYw33Ih zaxW;{z%yCBLtXuo(2>JSK4pOQA*cDy(22Xfd5~Ad9~JR>4SUT*zM>?Wgn5+WCwF?6 ztbEW;OBWeQXotPxieTijo~r9Y#&YXRd$|tAtofTRwfkGQCZTvF`;(oCn?99aXuYF9 zUNSlMBTWe}x6jVsK%6o;(w#Fv0_~MSxm*7+XN~FGu|aX7Dcc^Fi*dZ=D=rGtH^mf96?wBeI4x z@-3?*C%eRnz*l0rlKILb@2K8-L&fXR6_JtP7)<(~>>q|2K{|$JdQi=;$`A=k##7_Y z=_3*o2wLyk9xU#jKtHwoWx$G*&c7t1-?^gCM7ovwI#t6QOh*edjIVi?M+XhV?P&Kk z@R^RGh-r5IWEFYQ6yk)RqgmNwVm0}u_ z(+-M_3KtoWlDd@?4ThsstJrZul%5;(`;-e9?e4kk7c@^o->PIb`_40K*8j$tNU=sD zs;3D-3dC++$I28*;W|0vmDpX5D6SQ7N&@*h@m39=48Za(l@PRhdn;PLhVcfa-3` zA_~l&W_M%pQ*2vxlMwnLty9Q53xp_Zztu7SsqeTT#A1yqja;_bFrJ4lY8}KD zeo4fVg3m{Ihbwrs!JQOSt&4^-JE%B}E2mIE2_@R}nkw*RmNlTTufRPjJ}kc6DKNdoxBN|tGb#zISR!ASP_mSD`!3OT8mv!O=G9Vz7w|E{v( zLJv3fkcyjb7<~sS)x}otgFsHBC{$PbDi6LOZQ z4(o*n*PoY$u}xc)6!tW9+e!OlP6Tt%WU$#Yp#8}>K?{UJ{n~A~jj_$%k^f|}+uPE; zBq&AVro0(tq0pVp!83EI0(w&HS_Wa+8Ig$&)2{IDB|_8Sq=uqgX>{@JET;W6*w-Q* z5*{D7){vGt9U0<&Rh9#oZ@J(P^FL7*7rmcj1YY2<6;Jg%;q$gR#A-1R^^tRN0A~5^ za5;Y%n@i_8l2KRl>VF~ug`B?sZG{o~)~)iZ4>D5u!OSh!HIEpKM>)4IgqnVOjqYN} zwbREXjKb@hni=YFr0|U#QMmq52-shgHx8}c@7R2ad}ST+%3XMo$SuiKQW|>$t_Arkq3xSwb{svpgBOK{>V}4_c=>*i zbM=U&DH#j>`)(m5>Yzcu0224<2`hA|Ti$nhDu5A|ac`YueLL||U4W%y@f)tb8L4`b zA!(RU|08U?>=J+!uTqx7TSeLuL}6V%pm4uaaQHVgXi+%sWYJE2C3&rp|?+-_jBor;8&Srt@fsNv3Mi-X}e6YNy>Nf}8)~YoFkJ zIig6l_#j7al;c)NhCX(6_jttX(3U9i3Bfs=GPc9urX3z}m?OjPl9ikTDT9lbre69Z z9R7|jR&+ z{L7x1rWt9PcspZ2i(1r`muTd@oRGV0Ng?XY) zK4RcWg$25O+`P?Jl?~7IoGx|N1YT(Z9kO)&`rWE0S?+b=7G>}$D>cgcUdio((^x>$ z+A;hG>=n!!!&URR+6Rqb!$t4>S@T<@w~^%Ik--@Q@3Q}_xu&BUm8c3n&wcLKHlKGl zsk51}q8O&dI3x4D!?&B6S->W%Fai7=5YCaT!Uxq6^40-{p$N(7(xmt#*_-s?BOWcg zx*fEu1%_hX6ti9X(3JyYRx1y3P!uXP;b0QPf?c=5sIeodrI=wk-XgN> z{KV9*2~a+K8@3*M6*x%}Ba;*`bQ$kL=-;wdDzRpuetFa&S*mOqM3JM*B*%3K_(qODYH{3;nSb!*(gJBXae}< zv$y0&fc~9`IzH@_wL5-DIV?`~XMrZ&I@q38u}8fU0l`z?h*lk0dIaYBG!+lQMyBDD z_IQi8h@)+UwH!$XsZjn+R%oHIgJN42O3-_ffizxYo$IZ&xkv9StGM(=xwPg*7ZPYA zlwYy0ypn<_?Gae^S~6wLn&jM%5~{cW{_l5Pr_Z4Mv<=&Ld59+f1hs#Ca}(;zy)IT? zou1DhT+d68sR3Jg_hB{scjx%Wa1#B$GtUekGat8{zgkp`BkZrF9gVZRSD;k24LPpXug?%_W6g*_ePOWZh?TIV)>#YiyOny=j7==LG&ip_`Yfy+2B zK}AC_%Rg)Q_n^(m1_gd*vP`~dNEnld4Ai6=gE4Hu9Qe2pabQ~GEx1<>OP;gxN=xS5 z84(miG~v8#u5!yG?F%E!WOj9+h=V))Y}$ve%2)e4eZTm(75N~w2lD**i_W65hvd;- z?yby6g_%HTo)6RN^3!K7*K=}vyjE9r*9Za#c`3nWNz~TRI=6LJgfE)zv*<1Uw?|&5 zqijxFvHuCEvi0C@Sf@%L6tkEg**0c~_4vBZh0?m1;Z}zHSp!oGDR4nDc&^;Ss$Ez~ zerow}w>LfOCHVD+DVl+1qZ0139@WH6-m-Ck=d#zz+E=F-e1r)_OrHJDhd&tK-%Bf0 zLiGXgp%(qUOdl+kH0fl2JDlaxR`@E_QyA~fDV`Hvmn9M8Fqe`UMi*_nwtM9e!CUYJ*NG}PM%#soOy|;Jt0H zk=qv0cndy?)WB%BMEDp@8Xy8zc<#P467??yUsk|Mb2Dc zoP>cvdovl#3nrDpcg1%s`;JZQ_VzYXBY*`pf7s2JGY4zuQaDgc!WdK0;h?Sh3S@`7 z8xoL~lBw47O{!;bY7otFHoM%^5gKn_Nrod)@yM#1CqSIi{MV)WsRw#vX)@~iBi3I;Hx#25 zb$qxvX;P6ob;) z$f`x*z>yD<)Z8BPdFClXqT$ZzE`D|1O;WPKUGNS6Tk?lyP|+pikpT5c}g1%^kJnjEIbdfoUsXH0zI~j8uIvD?F0A@xe4mw6QIz|o^CN6F^ sR&Ex~|8j0dMoC=#;r|0z+Zvghxc~nEm-w2;e*i#A?6+u*@SlMH0ZlMYrvLx| literal 0 HcmV?d00001 diff --git a/data/tex/plasma2.png b/data/tex/plasma2.png new file mode 100644 index 0000000000000000000000000000000000000000..d5ace7f97c3400e8167dbeb288efe45058ca930e GIT binary patch literal 17537 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 literal 0 HcmV?d00001 diff --git a/data/tex/test1.png b/data/tex/test1.png new file mode 100644 index 0000000000000000000000000000000000000000..0ce9fa3795cf635753f7d5ef15b5dbdbf1475dce GIT binary patch literal 17420 zcmV*2KzF~1P)004R=004l4008;_004mL004C`008P>0026e000+nl3&F}00006 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 M>FVdQ&MBb@0CU7LZU6uP literal 0 HcmV?d00001 diff --git a/data/tex/white.png b/data/tex/white.png new file mode 100644 index 0000000000000000000000000000000000000000..b82ed717820e4a967bc6652886368d05780c43f2 GIT binary patch literal 283 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 literal 0 HcmV?d00001 diff --git a/data/ui/button_bg_corner.png b/data/ui/button_bg_corner.png new file mode 100755 index 0000000000000000000000000000000000000000..ed0aaa758095393977fd1ea256accaaaacae9cdb GIT binary patch literal 2822 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 Y0HksYr<-8wb^rhX07*qoM6N<$f`eT-*Z=?k literal 0 HcmV?d00001 diff --git a/data/ui/button_bg_edge.png b/data/ui/button_bg_edge.png new file mode 100755 index 0000000000000000000000000000000000000000..aa550e81afd8cc3149a15caeff840502666b24a2 GIT binary patch literal 2802 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 Ef^FwA=Kufz literal 0 HcmV?d00001 diff --git a/data/ui/button_corner.png b/data/ui/button_corner.png new file mode 100755 index 0000000000000000000000000000000000000000..ad04941359d7eee28da3a13df9da8b46593af5f6 GIT binary patch literal 2810 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 Ef`}zZn*aa+ literal 0 HcmV?d00001 diff --git a/data/ui/frame_edge.png b/data/ui/frame_edge.png new file mode 100755 index 0000000000000000000000000000000000000000..f2500d341730ceffc2e6c3a485bbad0ad7f22cf2 GIT binary patch literal 2813 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 z0000eNklo literal 0 HcmV?d00001 diff --git a/data/xml/constants.xml b/data/xml/constants.xml new file mode 100644 index 0000000..836de95 --- /dev/null +++ b/data/xml/constants.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/data/xml/def/bases.xml b/data/xml/def/bases.xml new file mode 100644 index 0000000..c9c9f28 --- /dev/null +++ b/data/xml/def/bases.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/xml/def/commodities.xml b/data/xml/def/commodities.xml new file mode 100644 index 0000000..d5a4c91 --- /dev/null +++ b/data/xml/def/commodities.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/data/xml/def/components.xml b/data/xml/def/components.xml new file mode 100644 index 0000000..44c7278 --- /dev/null +++ b/data/xml/def/components.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/xml/def/engines.xml b/data/xml/def/engines.xml new file mode 100644 index 0000000..b75e3c2 --- /dev/null +++ b/data/xml/def/engines.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/xml/def/factions.xml b/data/xml/def/factions.xml new file mode 100644 index 0000000..7b4dae9 --- /dev/null +++ b/data/xml/def/factions.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/data/xml/def/models.xml b/data/xml/def/models.xml new file mode 100755 index 0000000..7df099c --- /dev/null +++ b/data/xml/def/models.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/xml/def/shaders.xml b/data/xml/def/shaders.xml new file mode 100644 index 0000000..87c9135 --- /dev/null +++ b/data/xml/def/shaders.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/data/xml/def/ships.xml b/data/xml/def/ships.xml new file mode 100755 index 0000000..5f0d76e --- /dev/null +++ b/data/xml/def/ships.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/xml/def/sprites.xml b/data/xml/def/sprites.xml new file mode 100755 index 0000000..5f08046 --- /dev/null +++ b/data/xml/def/sprites.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/xml/def/stellars.xml b/data/xml/def/stellars.xml new file mode 100644 index 0000000..15cf568 --- /dev/null +++ b/data/xml/def/stellars.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/xml/def/systems.xml b/data/xml/def/systems.xml new file mode 100644 index 0000000..df6d0af --- /dev/null +++ b/data/xml/def/systems.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/data/xml/def/textures.xml b/data/xml/def/textures.xml new file mode 100755 index 0000000..f2bcfcf --- /dev/null +++ b/data/xml/def/textures.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/xml/def/weapons.xml b/data/xml/def/weapons.xml new file mode 100644 index 0000000..7b23f39 --- /dev/null +++ b/data/xml/def/weapons.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/xml/engines.xml b/data/xml/engines.xml new file mode 100644 index 0000000..5efd993 --- /dev/null +++ b/data/xml/engines.xml @@ -0,0 +1,20 @@ + + + LX-20 Light Freighter Engine + The LX-20 is one of the cheapest, simplest, and least effective engine designs available. It is commonly found equipped on the cheapest freighters, where its general reliability and the ease of finding replacement parts for it serves well. No reputable dealer would ever stock an engine this decrepit, but you can probably find a servicable one littering any spaceport since most people consider them useless. + 18000 + 0 + 150 + 3800 + eng_large + + + Plasma Vector Drive + This is the engine equipped as standard on the Kestrel fighter. Top-of-the-line by any account, there is no downside except the price. It's small and lightweight, and it provides tremendous speed and agility with a minimal fuel cost. + 0.05 + 25 + 22000 + 550000 + eng_advanced + + diff --git a/data/xml/factions.xml b/data/xml/factions.xml new file mode 100644 index 0000000..e93b0a7 --- /dev/null +++ b/data/xml/factions.xml @@ -0,0 +1,54 @@ + + + Government FactionGroup + -1 + + + Neutral FactionGroup + -1 + + + Criminal FactionGroup + -1 + + + Colonial Alliance Navy + 10000 + + + Colonial Alliance Police + 10000 + + + Associated Worlds Navy + 10000 + + + Associated Worlds Police + 10000 + + + Evon Naval Forces + 10000 + + + Evon Police Forces + 10000 + + + Royal Victorian Navy + 10000 + + + Victorian Police Forces + 10000 + + + Independent Defense Fleet + 10001 + + + Corsair Navy + 10002 + + diff --git a/data/xml/models.xml b/data/xml/models.xml new file mode 100755 index 0000000..0e24d86 --- /dev/null +++ b/data/xml/models.xml @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + mesh_sprite + mat_test + + + + + mesh_sprite + mat_star + + + + + mesh_centered_sprite + mat_star + + + + + mesh_centered_sprite + mat_particle + + + + + mesh_centered_sprite + mat_dralthi + + + + + + mesh_sprite + mat_ui_frame_corner + + + mesh_sprite + mat_ui_frame_bg_corner + + + + + mesh_sprite + mat_ui_frame_edge + + + mesh_sprite + mat_ui_frame_bg_edge + + + + + mesh_sprite + mat_ui_frame_corner + + + mesh_sprite + mat_ui_frame_bg_corner + + + + + mesh_sprite + mat_ui_frame_edge + + + mesh_sprite + mat_ui_frame_bg_edge + + + + + mesh_sprite + mat_blank + + + + + mesh_sprite + mat_ui_frame_edge + + + mesh_sprite + mat_ui_frame_bg_edge + + + + + mesh_sprite + mat_ui_frame_corner + + + mesh_sprite + mat_ui_frame_bg_corner + + + + + mesh_sprite + mat_ui_frame_edge + + + mesh_sprite + mat_ui_frame_bg_edge + + + + + mesh_sprite + mat_ui_frame_corner + + + mesh_sprite + mat_ui_frame_bg_corner + + + + + + + + mesh_sprite + mat_ui_button_corner + + + mesh_sprite + mat_ui_button_bg_corner + + + + + mesh_sprite + mat_ui_button_edge + + + mesh_sprite + mat_ui_button_bg_edge + + + + + mesh_sprite + mat_ui_button_corner + + + mesh_sprite + mat_ui_button_bg_corner + + + + + mesh_sprite + mat_ui_button_edge + + + mesh_sprite + mat_ui_button_bg_edge + + + + + mesh_sprite + mat_blank + + + + + mesh_sprite + mat_ui_button_edge + + + mesh_sprite + mat_ui_button_bg_edge + + + + + mesh_sprite + mat_ui_button_corner + + + mesh_sprite + mat_ui_button_bg_corner + + + + + mesh_sprite + mat_ui_button_edge + + + mesh_sprite + mat_ui_button_bg_edge + + + + + mesh_sprite + mat_ui_button_corner + + + mesh_sprite + mat_ui_button_bg_corner + + + + + + diff --git a/data/xml/shaders.xml b/data/xml/shaders.xml new file mode 100755 index 0000000..be9262d --- /dev/null +++ b/data/xml/shaders.xml @@ -0,0 +1,22 @@ + + + standard + standard + + + test + test + + + sprite + sprite + + + shadow_pass1 + shadow_pass1 + + + shadow_pass2 + shadow_pass2 + + \ No newline at end of file diff --git a/data/xml/ships.xml b/data/xml/ships.xml new file mode 100755 index 0000000..d2f65dc --- /dev/null +++ b/data/xml/ships.xml @@ -0,0 +1,83 @@ + + + Spacetruck + m_fr_spacetruck + 55 + 64 + 35 + 15000 + 15000 + 2450 + 0 + 1 + The commercial backbone of the colonies, the Space Truck carries a lot of cargo and does it very cheaply. They are perfect for trading in heavily patrolled sectors, but in rougher areas their lack of defensive systems and voluminous cargo hold makes them an obvious target. + + + Kestrel + m_fi_kestrel + Graceful lines and top-end equipment make this fighter a favourite of civilian pilots. + 215 + 120 + 200 + 480 + 5 + 28 + 6 + 1 + + + Thor Class Battlestation + m_bs_thor + Massive and bristling with armaments and defenses, the Thor class battlestations are the Colonial Alliance's most powerful line of defense against any aggressor. Indeed, simulations show that in a best case scenario one of thsese battlestations could potentially defeat an entire foreign Navy single-handedly. + 451000000 + 6000000 + 140000 + 28 + + + Nav Buoy + m_misc_navbuoy0 + 1500 + + + Nav Buoy Test + m_misc_navbuoy_test + 1500 + + + Bob + m_pl_bob + 4.5e22 + + + + Starter Pack - Not for Resale + + + New pilots get this ship with this equipment + + + Thor Class Battlestation + + Massive and bristling with armaments and defenses, the Thor class battlestations are the Colonial Alliance's most powerful line of defense against any aggressor. Indeed, simulations show that in a best case scenario one of thsese battlestations could potentially defeat an entire foreign Navy single-handedly. + + + Bob + + A planet + + + + Nav Buoy + Navigation buoys are typically used to mark a route or a specific point in space. + + + + + Nav Buoy + Navigation buoys are typically used to mark a route or a specific point in space. + + + + + diff --git a/data/xml/sprites.xml b/data/xml/sprites.xml new file mode 100755 index 0000000..fe02b6b --- /dev/null +++ b/data/xml/sprites.xml @@ -0,0 +1,5 @@ + + + tex/test1.png + + \ No newline at end of file diff --git a/data/xml/stellars.xml b/data/xml/stellars.xml new file mode 100644 index 0000000..60def60 --- /dev/null +++ b/data/xml/stellars.xml @@ -0,0 +1,9 @@ + + + Bob + earthy + Bob is a rich agricultural planet, with a moderate industrial sector, large population centers, and a stable ecosystem. It's a pleasant place, with a little something for everyone, but is otherwise fairly nondescript. + 7.4e24 + 8552.3 + + \ No newline at end of file diff --git a/data/xml/textures.xml b/data/xml/textures.xml new file mode 100755 index 0000000..d041dac --- /dev/null +++ b/data/xml/textures.xml @@ -0,0 +1,100 @@ + + + tex/black.png + + + + + tex/white.png + + + + tex/nm_flat.png + + + + + + + + tex/test1.png + + + tex/whitelight_static.png + + + tex/star_sprite_main.png + + + tex/dralthi.png + + + + + ui/button_corner.png + + + ui/button_edge.png + + + ui/button_bg_corner.png + + + ui/button_bg_edge.png + + + ui/frame_corner.png + + + ui/frame_edge.png + + + ui/frame_bg_corner.png + + + ui/frame_bg_edge.png + + + + + + + + + + + + + + + + + + + + + + + + + + + + tex/plasma1.png + + + tex/plasma2.png + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/xml/weapons.xml b/data/xml/weapons.xml new file mode 100644 index 0000000..22bba03 --- /dev/null +++ b/data/xml/weapons.xml @@ -0,0 +1,22 @@ + + + Light Blaster + The staggering ubiquity of the blaster class weapons is due to their simplicity and reliability. This particular model is one of the smallest blaster models, and it is more of a mild deterrant than an actual combat weapon. Against any moderately capable fighter it would prove almost ineffective even in large numbers, and it would be absolutely laughable to suggest that it would be of any use at all against a larger ship. Still, they are often found on shuttles and small freighters hoping that any agressor will see that numerous guns are mounted without bothering to scan too closely. + 250 + 0.2 + 2 + w_lightblaster + + + 250 + wp_lightblaster + 1000 + + + hard_particle + + 400 + 20 + 20 + + \ No newline at end of file diff --git a/looprun.bat b/looprun.bat new file mode 100755 index 0000000..9f601e3 --- /dev/null +++ b/looprun.bat @@ -0,0 +1,6 @@ +@echo off +:restart +roc_test.py +pause +echo Starting... +goto restart diff --git a/refuge.py b/refuge.py new file mode 100755 index 0000000..a00855e --- /dev/null +++ b/refuge.py @@ -0,0 +1,97 @@ +#!/usr/local/bin/python2.4 + +import pygame +from pygame.locals import * +import os +import sys +import math +import random +import inputs +import gamedata +import gametimer +import video +import glwrapper +import init_universe +import universe +import time +import components +try: + from PIL import PngImagePlugin +except: + import PngImagePlugin +from .gameobj import * +from player import * +from particles import * +from ai import * + +pygame.init() +gamedata.load_gamedata() + +size = width, height = (1600,1200) +size = width, height = (1024,768) + +video.set_res(size) +video.init() +video.enable_vsync() +gametimer.start_loop() +init_universe.init() +view = None +skipping = False +while True: + events = pygame.event.get() + #if skipping: + # print "SKIPPING! Forced? %s" % (video.get_forced_redraw(),) + gametimer.next_frame(skipping) + """ + if guiscreen != None or guidlg != None: + video.force_redraw() # irrelevant right now, but when we exit the gui, we'll need a full redraw! + for ev in events: + if ev.type == QUIT: + inputs.add_command('exit') + break + if 'exit' in inputs.commands: + break + if guiscreen: + guiscreen.distribute_events(*events) + continue + """ + pygame.event.pump() + for ev in events: + if ev.type == QUIT: + inputs.add_command('exit') + break + elif ev.type == KEYUP: + inputs.keyup(ev.key) + elif ev.type == KEYDOWN: + inputs.keydown(ev.key) + #elif ev.type == VIDEOEXPOSE: + # video.force_redraw() + elif ev.type in (MOUSEBUTTONDOWN, MOUSEBUTTONUP): + pass + + if 'exit' in inputs.commands: + break + + #map.handle_keys(keys) + #units.mgr.update() + #view.update() + + #if video.get_forced_redraw(): + # video.get_scr().fill((0,0,0)) + + #skipping = video.skipping_next_frame() + + + if not skipping: + universe.next_frame() + video.predraw() + universe.render() + + if not skipping: + video.next_frame() + inputs.next_frame() + else: + video.reset_skipping() + + + diff --git a/roc_test.py b/roc_test.py new file mode 100755 index 0000000..9dd5cfc --- /dev/null +++ b/roc_test.py @@ -0,0 +1,175 @@ +#import roc +import os +import sys +import roc +import pygame +from OpenGL.GL import * +from py3dutil import vect, quat +from roc import models +from roc import fonts +from roc import gametimer +from roc.platform import * +from roc import pipeline +import time +import collections +import random +import math + +class partycle(object): + def __init__(self, x, y, xd, yd, rot, rotd, color): + self.x = x + self.y = y + self.xd = xd + self.yd = yd + self.rot = rot + self.rotd = rotd + self.color = color + + @classmethod + def random(cls): + x, y = [((random.random() * 2.0) - 1.0) * 10.0 for _ in range(2)] + xd, yd = [((random.random() * 2.0) - 1.0) * 4.0 for _ in range(2)] + hue = random.random() + m1 = 1.0 + h1 = hue * 6.0 + s1 = 1.0 - abs((h1 % 2.0) - 1.0) + if h1 < 1.0: + r, g, b = 1.0, s1, 0.0 + elif h1 < 2.0: + r, g, b = s1, 1.0, 0.0 + elif h1 < 3.0: + r, g, b = 0.0, 1.0, s1 + elif h1 < 4.0: + r, g, b = 0.0, s1, 1.0 + elif h1 < 5.0: + r, g, b = s1, 0.0, 1.0 + elif h1 < 6.0: + r, g, b = 1.0, 0.0, s1 + + rot = random.random() * 90.0 + rotd = ((random.random() * 2.0) - 1.0) * 3.0 + rv = cls(x, y, xd, yd, rot, rotd, (r, g, b, 1.0)) + + return rv + + def movestep(self): + self.x += self.xd + self.y += self.yd + self.xd *= 0.985 + self.yd *= 0.985 + self.rot += self.rotd + +class test_engine(roc.roc_engine.base_engine): + def __init__(self): + self.font = models.mgr.fontlib["micross20"] + self.text1 = models.TextModel("micross20", "#$% 0123 ,,,, Hello world!\xa8\xa8\xa8F", (1.0, 1.0, 0.5, 1.0)) + self.string = "" + self.move = 199.0 + self.moveinc = 1.0 + self.particles = collections.deque() + self.particles.append(partycle.random()) + self.gtime = gametimer.GameTimer() + self.gtime.start_loop() + + + + def frame(self, events): + self.gtime.next_frame() + #print "*** Starting frame" + # pink triangle + glDisable(GL_BLEND) + glDisable(GL_TEXTURE_2D) + glBegin(GL_TRIANGLE_STRIP) + glNormal3f(0.0, 0.0, 1.0) + glTexCoord2f(0.0, 0.0) + glColor4f(1.0, 0.0, 0.5, 0.0) + glVertex3f( 20.0, 50.0, 1.0) + glVertex3f( 20.0, 600.0, 1.0) + glVertex3f( 400.0, 50.0, 1.0) + glEnd() + + # yellow square + glBegin(GL_TRIANGLE_STRIP) + glNormal3f(0.0, 0.0, 1.0) + glTexCoord2f(0.0, 0.0) + glColor4f(0.0, 0.2, 0.5, 0.8) + glVertex3f( 150.0, 20.0, -50.0) + glVertex3f( 150.0, 400.0, -50.0) + glVertex3f( 360.0, 20.0, -50.0) + glVertex3f( 360.0, 400.0, -50.0) + glEnd() + glEnable(GL_BLEND) + glEnable(GL_TEXTURE_2D) + glColor4f(1.0, 1.0, 1.0, 1.0) + + # texture test + mdl = models.mgr.create("m_test") + glPushMatrix() + glTranslate(100.0, 300.0, -5.0) + mdl.render() + glPopMatrix() + + + + + # font test + glPushMatrix() + glTranslate(200.0, 200.0, 5.0) + self.text1.render() + glPopMatrix() + + for x in range(self.gtime.num_frames(10)): + self.move = self.move + self.moveinc + if self.move > 300.0: + self.moveinc = -1.0 + elif self.move < 200.0: + self.moveinc = 1.0 + for party in self.particles: + party.movestep() + if self.moveinc > 0.0: + party = partycle.random() + self.particles.append(party) + #print party.color + else: + self.particles.popleft() + + + glPushMatrix() + glTranslate(self.move, 250.0, 5.0) + + + """ + if len(self.string) > 61: + self.string = "" + + for x in xrange(self.gtime.num_frames(1000)): + self.string = self.string + str(len(self.string) % 10) + """ + for x in range(self.gtime.num_frames(100)): + self.string = str(round(self.gtime.get_fps(), 1)) + #print len(self.gtime.g_framelist) + + + self.font.render(self.string) + glPopMatrix() + + # texture test + mdl2 = models.mgr.create("m_particle") + mdl2.layers[0].color = None + #print mdl2.layers[0].mesh + for party in self.particles: + glPushMatrix() + glTranslate(600.0 + party.x, 350.0 + party.y, 6.0) + glRotate(party.rot, 0.0, 0.0, 1.0) + glColor4f(*party.color) + mdl2.render() + glPopMatrix() + + + +roc.init2d() +roc.set_engine(test_engine()) +roc.main() + + + diff --git a/shooter.py b/shooter.py new file mode 100755 index 0000000..111d682 --- /dev/null +++ b/shooter.py @@ -0,0 +1,238 @@ +import os +import sys +import roc +import pygame +from OpenGL.GL import * +from py3dutil import vect, quat +from roc import models +from roc import fonts +from roc import gametimer +from roc.platform import * +from roc import pipeline +import time +import collections +import random +import math +from roc import ui + + +class partycle(object): + def __init__(self, x, y, xd, yd, rot, rotd, color): + self.life = random.random() * 1000.0 + self.x = x + self.y = y + self.xd = xd + self.yd = yd + self.rot = rot + self.rotd = rotd + self.basecolor = color + self.color = color + + @classmethod + def random(cls): + x, y = [((random.random() * 2.0) - 1.0) * 1.0 for _ in range(2)] + xd, yd = [((random.random() * 2.0) - 1.0) * 4.0 for _ in range(2)] + dir1, dir2 = [(random.random() * math.pi * 2.0) for _ in range(2)] + mag1 = random.random() * 100.0 + mag2 = random.random() * 4.0 + dir1 = random.random() * math.pi * 2.0 + dir2 = ((random.random() * 2.0) - 1.0) * 0.1 + mag2 += 1.0 + + x = math.sin(dir1) * mag1 + y = math.cos(dir1) * mag1 + xd = math.sin(dir1+dir2) * mag2 + yd = math.cos(dir1+dir2 ) * mag2 + + hue = random.random() + m1 = 1.0 + h1 = hue * 6.0 + s1 = 1.0 - abs((h1 % 2.0) - 1.0) + if h1 < 1.0: + r, g, b = 1.0, s1, 0.0 + elif h1 < 2.0: + r, g, b = s1, 1.0, 0.0 + elif h1 < 3.0: + r, g, b = 0.0, 1.0, s1 + elif h1 < 4.0: + r, g, b = 0.0, s1, 1.0 + elif h1 < 5.0: + r, g, b = s1, 0.0, 1.0 + elif h1 < 6.0: + r, g, b = 1.0, 0.0, s1 + + rot = random.random() * 90.0 + rotd = ((random.random() * 2.0) - 1.0) * 3.0 + rv = cls(x, y, xd, yd, rot, rotd, (r, g, b, 1.0)) + + return rv + + def movestep(self): + self.life += 1.0 + self.x += self.xd + self.y += self.yd + self.xd *= 0.985 + self.yd *= 0.985 + self.rot += self.rotd + #self.color = [math.cos(self.life / 20.0) * x for x in self.basecolor] + + +class test_engine(roc.roc_engine.base_engine): + def __init__(self): + self.font = models.mgr.fontlib["micross20"] + self.text1 = models.TextModel("micross20", "#$% 0123 ,,,, Hello world!\xa8\xa8\xa8Foobar", (1.0, 1.0, 0.5, 1.0)) + self.string = "" + self.move = 199.0 + self.moveinc = 1.0 + self.particles = collections.deque() + self.particles.append(partycle.random()) + self.gtime = gametimer.GameTimer() + self.gtime.start_loop() + from roc import enums + mdl = models.mgr.create("ui_frame_cl") + print((mdl.layers[0].scale)) + f = ui.UIFrame(enums.ui_frametype.model, mdl) + f = ui.make_button("hello world", None) + f = ui.make_mainmenu() + f.posset = (205, 205) + #f.minsize = (9, 80) + ui.mgr.add(f, "mainmenu") + + + def frame(self, events): + self.gtime.next_frame() + for ev in events: + ui.mgr.handle_event(ev) + + #print "*** Starting frame" + """ + # pink triangle + glDisable(GL_BLEND) + glDisable(GL_TEXTURE_2D) + glBegin(GL_TRIANGLE_STRIP) + glNormal3f(0.0, 0.0, 1.0) + glTexCoord2f(0.0, 0.0) + glColor4f(1.0, 0.0, 0.5, 0.0) + glVertex3f( 20.0, 50.0, 1.0) + glVertex3f( 20.0, 600.0, 1.0) + glVertex3f( 400.0, 50.0, 1.0) + glEnd() + + # yellow square + glBegin(GL_TRIANGLE_STRIP) + glNormal3f(0.0, 0.0, 1.0) + glTexCoord2f(0.0, 0.0) + glColor4f(0.0, 0.2, 0.5, 0.8) + glVertex3f( 150.0, 20.0, -50.0) + glVertex3f( 150.0, 400.0, -50.0) + glVertex3f( 360.0, 20.0, -50.0) + glVertex3f( 360.0, 400.0, -50.0) + glEnd() + glEnable(GL_BLEND) + glEnable(GL_TEXTURE_2D) + glColor4f(1.0, 1.0, 1.0, 1.0) + """ + + # texture test + mdl = models.mgr.create("m_test") + glPushMatrix() + glTranslate(150.0, 300.0, -5.0) + mdl.render() + glPopMatrix() + + + + + # font test + glPushMatrix() + glTranslate(200.0, 200.0, 5.0) + self.text1.render() + glPopMatrix() + + for x in range(self.gtime.num_frames(10)): + self.move = self.move + self.moveinc + if self.move > 300.0: + self.moveinc = -1.0 + elif self.move < 200.0: + self.moveinc = 1.0 + for party in self.particles: + party.movestep() + if self.moveinc > 0.0: + party = partycle.random() + self.particles.append(party) + #print party.color + else: + self.particles.popleft() + + + glPushMatrix() + glTranslate(self.move, 250.0, 5.0) + + + """ + if len(self.string) > 61: + self.string = "" + + for x in xrange(self.gtime.num_frames(1000)): + self.string = self.string + str(len(self.string) % 10) + """ + for x in range(self.gtime.num_frames(100)): + self.string = str(round(self.gtime.get_fps(), 1)) + #print len(self.gtime.g_framelist) + + + self.font.render(self.string) + glPopMatrix() + + # texture test + mdl2 = models.mgr.create("m_dralthi") + mdl2.layers[0].color = None + #print mdl2.layers[0].mesh + for party in self.particles: + glPushMatrix() + glTranslate(600.0 + party.x, 350.0 + party.y, 6.0) + glRotate(party.rot, 0.0, 0.0, 1.0) + glColor4f(*party.color) + mdl2.render() + glPopMatrix() + + ui.mgr.render() + + +class sotv_engine(roc.roc_engine.base_engine): + def __init__(self): + self.font = models.mgr.fontlib["micross20"] + self.text1 = models.TextModel("micross20", "#$% 0123 ,,,, Hello world!\xa8\xa8\xa8Foobar", (1.0, 1.0, 0.5, 1.0)) + self.string = "" + self.move = 199.0 + self.moveinc = 1.0 + self.particles = collections.deque() + self.particles.append(partycle.random()) + self.gtime = gametimer.GameTimer() + self.gtime.start_loop() + from roc import enums + mdl = models.mgr.create("ui_frame_cl") + print((mdl.layers[0].scale)) + f = ui.UIFrame(enums.ui_frametype.model, mdl) + f = ui.make_button("hello world", None) + f = ui.make_mainmenu() + f.posset = (205, 205) + #f.minsize = (9, 80) + ui.mgr.add(f, "mainmenu") + + + def frame(self, events): + self.gtime.next_frame() + for ev in events: + ui.mgr.handle_event(ev) + + + + ui.mgr.render() + +roc.init2d() +roc.set_engine(sotv_engine()) +roc.main() + + +