From 62feade05da387cd6b230e7a0edf558c6fd7c099 Mon Sep 17 00:00:00 2001 From: Kodexky Date: Tue, 9 Dec 2014 23:27:25 -0430 Subject: [PATCH] Add extra buttons to Android GUI. All icons are licensed by freepik.com under CC BY 3.0 --- src/touchscreengui.cpp | 86 ++++++++++++++++++++++++--- src/touchscreengui.h | 9 ++- textures/base/pack/camera_btn.png | Bin 0 -> 789 bytes textures/base/pack/debug_btn.png | Bin 0 -> 960 bytes textures/base/pack/drop_btn.png | Bin 0 -> 561 bytes textures/base/pack/fast_btn.png | Bin 0 -> 935 bytes textures/base/pack/fly_btn.png | Bin 0 -> 783 bytes textures/base/pack/noclip_btn.png | Bin 0 -> 1151 bytes textures/base/pack/rangeview_btn.png | Bin 0 -> 1604 bytes 9 files changed, 86 insertions(+), 9 deletions(-) create mode 100644 textures/base/pack/camera_btn.png create mode 100644 textures/base/pack/debug_btn.png create mode 100644 textures/base/pack/drop_btn.png create mode 100644 textures/base/pack/fast_btn.png create mode 100644 textures/base/pack/fly_btn.png create mode 100644 textures/base/pack/noclip_btn.png create mode 100644 textures/base/pack/rangeview_btn.png diff --git a/src/touchscreengui.cpp b/src/touchscreengui.cpp index a04b7fe5e..1a5d42e9d 100644 --- a/src/touchscreengui.cpp +++ b/src/touchscreengui.cpp @@ -40,10 +40,17 @@ const char** touchgui_button_imagenames = (const char*[]) { "down_arrow.png", "left_arrow.png", "right_arrow.png", + "inventory_btn.png", + "drop_btn.png", "jump_btn.png", "down.png", - "inventory_btn.png", - "chat_btn.png" + "fly_btn.png", + "noclip_btn.png", + "fast_btn.png", + "debug_btn.png", + "chat_btn.png", + "camera_btn.png", + "rangeview_btn.png" }; static irr::EKEY_CODE id2keycode(touch_gui_button_id id) @@ -62,17 +69,38 @@ static irr::EKEY_CODE id2keycode(touch_gui_button_id id) case backward_id: key = "backward"; break; + case inventory_id: + key = "inventory"; + break; + case drop_id: + key = "drop"; + break; case jump_id: key = "jump"; break; - case inventory_id: - key = "inventory"; + case crunch_id: + key = "sneak"; + break; + case fly_id: + key = "freemove"; + break; + case noclip_id: + key = "noclip"; + break; + case fast_id: + key = "fastmove"; + break; + case debug_id: + key = "toggle_debug"; break; case chat_id: key = "chat"; break; - case crunch_id: - key = "sneak"; + case camera_id: + key = "camera_mode"; + break; + case range_id: + key = "rangeselect"; break; } assert(key != ""); @@ -186,6 +214,11 @@ void TouchScreenGUI::init(ISimpleTextureSource* tsrc, float density) rect(0, m_screensize.Y - (button_size/2), (button_size/2), m_screensize.Y), L"inv", true); + /* init drop button */ + initButton(drop_id, + rect(2.5*button_size, m_screensize.Y - (button_size/2), + 3*button_size, m_screensize.Y), L"drop", true); + /* init jump button */ initButton(jump_id, rect(m_screensize.X-(1.75*button_size), @@ -202,11 +235,48 @@ void TouchScreenGUI::init(ISimpleTextureSource* tsrc, float density) m_screensize.Y), L"H",false); + /* init fly button */ + initButton(fly_id, + rect(m_screensize.X - (0.75*button_size), + m_screensize.Y - (2.25*button_size), + m_screensize.X, m_screensize.Y - (button_size*1.5)), + L"fly", true); + + /* init noclip button */ + initButton(noclip_id, + rect(m_screensize.X - (0.75*button_size), 2.25*button_size, + m_screensize.X, 3*button_size), + L"clip", true); + + /* init fast button */ + initButton(fast_id, + rect(m_screensize.X - (0.75*button_size), 1.5*button_size, + m_screensize.X, 2.25*button_size), + L"fast", true); + + /* init debug button */ + initButton(debug_id, + rect(m_screensize.X - (0.75*button_size), 0.75*button_size, + m_screensize.X, 1.5*button_size), + L"dbg", true); + /* init chat button */ initButton(chat_id, - rect(m_screensize.X-(1.5*button_size), 0, - m_screensize.X, button_size), + rect(m_screensize.X - (0.75*button_size), 0, + m_screensize.X, 0.75*button_size), L"Chat", true); + + /* init camera button */ + initButton(camera_id, + rect(m_screensize.X - (1.5*button_size), 0, + m_screensize.X - (0.75*button_size), 0.75*button_size), + L"cam", true); + + /* init rangeselect button */ + initButton(range_id, + rect(m_screensize.X - (2.25*button_size), 0, + m_screensize.X - (1.5*button_size), 0.75*button_size), + L"far", true); } touch_gui_button_id TouchScreenGUI::getButtonID(s32 x, s32 y) diff --git a/src/touchscreengui.h b/src/touchscreengui.h index 8dc482034..4fe731513 100644 --- a/src/touchscreengui.h +++ b/src/touchscreengui.h @@ -38,10 +38,17 @@ typedef enum { backward_id, left_id, right_id, + inventory_id, + drop_id, jump_id, crunch_id, - inventory_id, + fly_id, + noclip_id, + fast_id, + debug_id, chat_id, + camera_id, + range_id, after_last_element_id } touch_gui_button_id; diff --git a/textures/base/pack/camera_btn.png b/textures/base/pack/camera_btn.png new file mode 100644 index 0000000000000000000000000000000000000000..f61b0cc4a434126f32321ffecd63476ad8dc10e8 GIT binary patch literal 789 zcmV+w1M2*VP)CkwMbK2Bs_heHaEBo?_TeF_o>(3`M`q*GvApxXU@!=nJXEFVHk#C z7=~dOhG7`xg|}KA0h=VXNotbRC~3Q-t$y*mq-jZ0lEx){@H}r}-Fp|<33LHNzyk64 z1H1-q0Cnrp@DspOAWL$xz!Ttj>X!h}D(SwYcBd#O>5HUcNu!d+Bz>1O>zCI`+9j!3 zQmdrX{(pCTgOa*E&-;|N8LtKgfJJBaz5%^JLlJH61@8E51X%?7f$Fpve+rm%1~~~_ z1}Yz~+@Uz7lv9=yVo18zWjKfxd{){*}iG6U)si zaL!+L{}>EgLZw>sj{}|k1dhef-SX>SjHojbk^|g~(S92+9nd^lDF<9}LbN5O?xU}{ z8{ycQ5C^=E*~d{QiY}Gf_Sl}7t;!N8 zhIA}}gqz^I1P&NU#U_~W80<{ofR5B0g9#F$4Dh)K<41u^Y7(J@sqle_vpyfw!2Z;w z!X>y2jmI!P-IpP|4%>ss|MethkD}%NEME2>M(op=VHk#C7=~dOhG7_nQD*!F5B2bC T#=b{r00000NkvXXu0mjfP7YyO literal 0 HcmV?d00001 diff --git a/textures/base/pack/debug_btn.png b/textures/base/pack/debug_btn.png new file mode 100644 index 0000000000000000000000000000000000000000..66bd41f7abc7e16fa061b881747ba2920177ee4d GIT binary patch literal 960 zcmV;x13&zUP)ulprjOqA|fftfiZI6r~IvOKqNV#{2gEp{6shu za%7gjG*%*iOK2k6vMsd6w#&)==IQBszkS&HUa$K)`M&S|dA|3)-{-lX=YB*C!!QiP zFbu;m48t(~GlJe26c{QZ%|Q@!IIc1X*E^wPa=P}T?oBt>Q^5PcwVPFNYCq+=zz-(YRFa}r$d`gpqW!~6hflEMv{(b|r z0fXZbd~up!jzsv31{yruCSW-bc(xZ+{}gzq-@gG9bjA(Kb^hk@b{X&kxal0eE&!wAlz=f| zN2k;GgxCM4V|fPS=L6&ZrN(HmPT7#J+9*{4=N)-Fu+{OK0Tcm?fOEi_SiR}rNPxf1 zopW^kfmgbfm8xtAa9U?gz4itn6|w68Ge|%YunIT@yz~zP0 zBx@mXCWBhh01QlG0uDPhMX+tAV);p z#_5}wtN+3=E9>JY5_^DsH`3aX~*QD#+UzZ}$mIy>5!s1!S9Xu~ZeEN9H@_UHH>jO3y9`v$p2vA{UuX(C*WMc_y z(S_%c*Wy(eFD5YgG;kU)svTgN!5|Ffv@UthfA8yVRb4NsDO+C6S)G0-ZvGNg&;Ci* z<`kd5c#EZ~@oc$opO(QJ$?`Xu9djy<@v7ghSUQQLGwi@F^&55u7gjMWV0lw{Ecb|1 z-JEAN6F$ssnDSx0&#?-@HJ-aNKiyrkWbOH>7hF<2gIq7gOjg`JNiTVA6X$|yMbB29 z-19Ar!GJ|(*_wJ*AD7x_##0CGnqPi+XY(JX8@`e60+12joQ zK~#9!?U+x9l~okLe`k6#sSOoTR8v&iKO~4~V=7qC!aymAT(pWXH$jwCi^LYS2#Hps z&>xJbmAPnBB2iLALPS%DJY_1?VugSWZ&ob&Fv z=iKw%b0L$-WHOmdCX>lzGMP-KhfyC@zfw=DpQ@XdYBT=D#SQ`Mft3x^&qT!WlD+4E zmr8Q;z~+efxEG_f(dL{}R~2lHs(&sbd!i>ZAT9hlpw&QiHX=?J?5qR6sF7b45oee4 z*}t|XTc*{}e_zSofcoMj^B=>McyxYwhFxoKK7XT|t zV|y!{{{$EZCV(q|J*g&?1GY8&>e$_m^Z!@suTJN;$WtYmF?F`V{b5dhrq|E@rRgfW z!1EO{uQqW0uzGt>U4&{j;RfI#U?L(uD9zmjoB)O^RHu{PjleZ&>?CkBA|{v1rRQKx zly@%oZf{*heOTb6I@0a`Y%OuY7pE%UDZfR;xr*@@YmVjah?wi8Xg#uoZf~N(-liJ) zW2wESmonfz;Kzo#r%KMR0QS|$KN}JA%k|uc`c_T!zf)WN?BGyJ@0%;;E>{nR$EiB92d~yVTJ|^e<9htI*rijrB#FPTUV{>CpBJ@WR5g zlzIuU5x5N)0?q(m1IHJhwEkfY+kgW}7vK+IZAAR=Uu?kBzh@ZNcP2<25 zg`xcsv4cS&wbDPA`v2>fVsogUHXtIVf!7N|!|6GULCS)wN(FUBy=)*dAZ5WR;GM$I zC~)_nWx*Qt*TUs#HG_tFi@H5MuVpfsOeT}bWHOmdCX>mu&EH%D+2K_HnacnG002ov JPDHLkV1lNG#C8Ax literal 0 HcmV?d00001 diff --git a/textures/base/pack/fly_btn.png b/textures/base/pack/fly_btn.png new file mode 100644 index 0000000000000000000000000000000000000000..a095b92a79d3dac0f44c5d3782b9ebee9f9b7afd GIT binary patch literal 783 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE)4%caKYZ?lYt_f1s;*b zKpodXn9)gNb_Gz7y~NYkmHi$M52J+4A35!G1_q`%o-U3d6}R5bh|f5iC~cwExQ+3|9J9Lf zQ`UoEm7UKuJ?}HV`m`mK_YK=Qrd-Xh$0HdB>sb7m`X&SkmAyggW`j_b{d8HZC6 zI4?YL4{#5N_g=`lf?w+PtVf&mFI{xYU;R~C;h6PzX@>bt91*sU3(NCuozeez2|z6sIqM3jP9hqzQ7-GekxWxS5#`U8ncsQIA(|DG#pcC zYzsVgr+>|Z&&qY(4WBEm?#{j4tJYI6^}K+w@h0mSuaAGV=|BoIoQ#*D4*Qb4x_D3Y>AeLLwf9#@y-ZQcaWVS82l5YGw z#<6&g$;14jbG*O(wz;1X5A|elPulIcv@?Kp4%4y|sLABxGxO_3uR}it)LaB6T?S8A KKbLh*2~7a1En&(4 literal 0 HcmV?d00001 diff --git a/textures/base/pack/noclip_btn.png b/textures/base/pack/noclip_btn.png new file mode 100644 index 0000000000000000000000000000000000000000..1aadad414e22eb6b26e4c0a5a13548d9922f4faf GIT binary patch literal 1151 zcmV-_1c3XAP)eRSa#`y zHq?y;;6z|QaMY1dOz0LGak*X);GgpnaFLU}4eW}{mxcsXO{}TtC=h92miGn91Ka~# zJjw1QEN(2cO+b|xDWAOBWeg3jW6GsQW3=r8f7@8HQIqm#V*c-@?2^k4le)ufEI?IP zo0*>nYyj3cBHl^3%O`HmT3{0}2F)<{a5N+~T9D8ChWA`t&# z=KQOb#UU1f-M|mP*{1xuK>01U&R~rCKwZE+3wVHI&A>ICSb(ao50u{vTo1f%CjJrd zEHI2%#Qn9qwUus$Jw!?MHB1-R5MPtE*WB|ud#16D8_fg4-@hot}j@rZ9YB;P}L72?QV@9Bc0w<>ipISP}Mc6`jo2P9LVQXb&uu!6n0uU zT)IxN>I(^@#(;0lhf&p|z&BO{#LC@+rqqQ_b_Z~aH97n3xiV}2AIAj-?s^rlF{1om z*4};(YzH0(es;gl1KX_g>x~tRO2C!CS1XwL9PpE+x*_m|9fj=-<~|3U><&Tt?*bz7 zC2+Z_o)6p#oNoU7ort{WVnVHa>DGSNTxOeF@)6+qp!(BUxWia=fQTH5>}a^&z>V6< zz6M?d9y8fSJ2^Vs*4bVk>HvZrEdnw=wg6eYLD9jQ zv19GJ1pW;8El7`{^4f4TBCzO)*w_o!R`Hsfw-6j>H65u+bL!n-sC>o0|3NAi3l@M2 zfL9W8o1ki94P{3$;3STn|4BeV{gQ9m-@*#3Hco+R<>$w#Fv|{NN@2CarpSwgJJe4?I+usP4fj`a)^*2IGWMpJyWMpJyWMpJyWMupY{{R6UOU=5! R&O-nI002ovPDHLkV1m655jp?> literal 0 HcmV?d00001 diff --git a/textures/base/pack/rangeview_btn.png b/textures/base/pack/rangeview_btn.png new file mode 100644 index 0000000000000000000000000000000000000000..fbcd80a1df893b560fb1dd05cda0ec17221b98c9 GIT binary patch literal 1604 zcmV-K2D|x*P)1<^@F zK~#9!?OJV!7F85}&g{H*d{<11){nJB#mq45hZ%)XYEsk+6(}l1ViM8E9~E+c6oe5} z5EMlSVOi0aD1uuSSfsJ}W6MfKk+og5+T2MT!)O!ZJ5o<}PbYw`JZdeSJ5Uk_njCTIQ3M z`CrT2#>|VZ&dFQ5)G|x71P^ue*wVuGP+(AqWhFmZ6ZR( zm|Ijn-%IuNe*l1C-bKKMGW7fxgyG_BHhXr=9bk-ELLx^h2&Z3Nr50ObJ|SQ&fV>br zO++UVhOHGGIIXVdEhD1*m^na1>H}kr0$5Oy9Pk+d>!N-Ha1cOKg(fs-Jnz*pb3mZ= z4k3DS43C~bh?Xj)+D6?0f!3>psAU|Szo%WL786n5s1YIQ?VT!)vvZszpapqrUl~;< zXq9>cB2yDEz6(HKtx81X8SDGYN5ugF^I8Jd*Sc*(U}47dZg7>F4B*9DDZMz(E)khL zq7INtml_3lCxP61#PhsU06;{68-^bwpmUZr=B*Js1Vw}bW4;1#f9y}a5IH797f56V zh;9QgsdOg9J`p)YL=6Bo0cb2I`T%qS$Pq9_fI0C+Bw&r}d3zE+X^b&X#VG0VK~xg#*4{EWYdz00=OPB} z6cJTo$Ebk$y#yT4A|ew@g{Eab8j;zbWQproty>Gq4fBU0Lgj{yVg6{CiRBIR@0R(` zVJENk;Zlx{jCFm$+%agUF&mSiT3RJ<${irLm6g$e|aqK->-74w#Y8HqvkXyM0XXQL*R>Q zjEc&U$YCOqD{f{cO!yuEM_wJMa?LKwh2fn^@PL^GbxNr-)mWsIYVY?0AdbUB=Hvdd zcJNLxBJKp|FxfmT%{4Ngvki}d3dSE!8~5!Kfo0zh|RA(6{9RAouO zoHuYNUMSMD`!ctc+0_gsB6A|o-8DOahz7TPUa4i(7?oFQd1S!$B3+{)wyMg7Z;G(O z_S!=r48M--hR3T~6{1Z8kA9u!9WK%@I@bCs(%?z}g_GabDfLb5M5wQCmSyHhdU~kB z>hX~XiTb$cSh?IZ%Y11t9UAkkh`42L{V4(SZ;@2GFEKV~jd?So_@Xi9_Hr*wE%U_z zIit0nS4JLxIm!nN^XDQ`U&3+IE%Of%xqz7$CP{~<1k7imEX`=WIbH}w3nHua*4X`i za|O)tMAgMmf7@Q}+{&hk%)H0}4gt6}B79bWPYL)*!myVdXOaL*2v|2zsutpTcSfmo zLlK~1im&-~Kr8x7<#;)K8bm!1nF-*gAX8xVnIO1&CG%FatonL-db?VW%sym$KRO2|B$l(E4sT&PoCrLtvsK z(j&mRKxA(=o9#r36e&`qNRc8%iWDhQq)3sXT>KB^HktK>UDLz>0000