From 48970a9cb6d9b2e309306999c70bcd9a705d20a8 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Wed, 11 Dec 2002 11:17:12 +0000 Subject: [PATCH] Fixed plib-related compile errors (hopefully for good) --- stepmania/TODO.chris | 35 ++++++++++++++++++++++++++- stepmania/Themes/default/metrics.ini | 6 +++++ stepmania/src/RageMath.cpp | 5 ++++ stepmania/src/RageUtil.cpp | 4 +-- stepmania/src/RageUtil.h | 11 ++++++--- stepmania/src/ScreenMusicScroll.cpp | 1 + stepmania/src/plib-1.6.0/sg_d.lib | Bin 253428 -> 253428 bytes stepmania/src/plib-1.6.0/ul_d.lib | Bin 101802 -> 100098 bytes 8 files changed, 56 insertions(+), 6 deletions(-) diff --git a/stepmania/TODO.chris b/stepmania/TODO.chris index 0cb32205c4..9ece6f52a9 100644 --- a/stepmania/TODO.chris +++ b/stepmania/TODO.chris @@ -2,6 +2,34 @@ Fix ///////////////////////// +note coloring in graphic, NoteColor with add? + +remove shadow from everywhere + +separate credits screen + +handle demonstration in a more graceful way + +reset titlemenu timeout if button pressed + +new Message/Object system + +replace Mini -> Zoom + +sort ini before writing + +autoplay and tick icons + +autogen and edit icon + +dynamically sized NoteData + +replace judge window prefs with window* and WindowScale + +email about voodoo3 card at home + +BGAnimation speed with different song rates + remove 4x diffuse colors change noteskin format (get rid of .colors) @@ -53,10 +81,15 @@ I'll abbreviate a course file I did: The problem is on song 2, it still gets the 0.5x and dizzy modifiers. Shouldn't they be reset for the 2nd song? +better documentation performane issues -ready, here we go closer to start (dive into the night) +cheer on gameplay start + +break cheer into separate trigger + +ready, here we go closer to start (ButterFly) long ver balloon diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 4308d27632..277be4f19c 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -726,3 +726,9 @@ Theme=Choose from this list of installed theme packs.::For more information abou NoteSkin=Choose from this list of installed note skins.::For more information about creating a note skin, see the README. HowToPlay=Toggle whether the How To Play screen is shown. +[ScreenNetworkWaiting] +ServerInfoX=320 +ServerInfoY=120 +PlayerListX=320 +PlayerListY=280 +HelpText=Press Up to join, Down to unjoin.::Wait for more players to enter the game before joining. diff --git a/stepmania/src/RageMath.cpp b/stepmania/src/RageMath.cpp index 510036c3c8..01a815c26b 100644 --- a/stepmania/src/RageMath.cpp +++ b/stepmania/src/RageMath.cpp @@ -14,8 +14,13 @@ #include "RageMath.h" #include "RageTypes.h" +#ifdef _DEBUG +#pragma comment(lib, "plib-1.6.0/sg_d.lib") +#pragma comment(lib, "plib-1.6.0/ul_d.lib") +#else #pragma comment(lib, "plib-1.6.0/sg.lib") #pragma comment(lib, "plib-1.6.0/ul.lib") +#endif void RageVec2Normalize( RageVector2* pOut, const RageVector2* pV ) { diff --git a/stepmania/src/RageUtil.cpp b/stepmania/src/RageUtil.cpp index c8955a37f2..589d129fd6 100644 --- a/stepmania/src/RageUtil.cpp +++ b/stepmania/src/RageUtil.cpp @@ -756,7 +756,7 @@ float calc_stddev(const float *start, const float *end) return dev; } -void TrimLeft(string &str, const char *s) +void TrimLeft(CString &str, const char *s) { int n = 0; while(n < int(str.size()) && strchr(s, str[n])) @@ -765,7 +765,7 @@ void TrimLeft(string &str, const char *s) str.erase(str.begin(), str.begin()+n); } -void TrimRight(string &str, const char *s) +void TrimRight(CString &str, const char *s) { int n = str.size(); while(n > 0 && strchr(s, str[n-1])) diff --git a/stepmania/src/RageUtil.h b/stepmania/src/RageUtil.h index ea1a880abf..69552a580a 100644 --- a/stepmania/src/RageUtil.h +++ b/stepmania/src/RageUtil.h @@ -29,10 +29,15 @@ inline int RECTCENTERX(RECT rect) { return rect.left + (rect.right-rect.left)/2; inline int RECTCENTERY(RECT rect) { return rect.top + (rect.bottom-rect.top)/2; } /* Common harmless mismatches. */ +#ifndef min inline float min(float a, int b) { return a < b? a:b; } -inline float max(float a, int b) { return a > b? a:b; } inline float min(int a, float b) { return a < b? a:b; } +#endif + +#ifndef max +inline float max(float a, int b) { return a > b? a:b; } inline float max(int a, float b) { return a > b? a:b; } +#endif /* Traditional defines. Only use this if you absolutely need * a constant value. */ @@ -187,8 +192,8 @@ HINSTANCE GotoURL(const char *url); float calc_mean(const float *start, const float *end); float calc_stddev(const float *start, const float *end); -void TrimLeft(string &str, const char *s = "\r\n\t "); -void TrimRight(string &str, const char *s = "\r\n\t "); +void TrimLeft(CString &str, const char *s = "\r\n\t "); +void TrimRight(CString &str, const char *s = "\r\n\t "); /* Fix Windows breakage ... */ #ifdef WIN32 diff --git a/stepmania/src/ScreenMusicScroll.cpp b/stepmania/src/ScreenMusicScroll.cpp index 1a2a518df0..73d11b5b47 100644 --- a/stepmania/src/ScreenMusicScroll.cpp +++ b/stepmania/src/ScreenMusicScroll.cpp @@ -66,6 +66,7 @@ const CString CREDIT_LINES[] = "", "TESTING:", "Gotetsu", + "spds (James Sanders)", "", "", "", diff --git a/stepmania/src/plib-1.6.0/sg_d.lib b/stepmania/src/plib-1.6.0/sg_d.lib index e36d17722bc498e77d59638dd8ec3090463d87bc..30e5be7122827a010d6c236a926a6e028c031164 100644 GIT binary patch delta 2939 zcmZ`*du&rx7(b7#>$dK}7<1B6wlZo^m~D6a!ayc7V}Sw{Cz6OTvKi$)Pyu1G@raIx zz_{HGFL|k9D(IlSs#>7FAe4)&lT4aATEF1=4 z68YT|nO4AX5CHH(wc;F+p2MD>`~$#SNpW<2 zWB|I;pUj>Ghs!r3-^NME^Sxn4w6pmzR9WjIR{6%JB>5_7(_`cl8!zb~(Hom;&3b=y z)vg^$I)K6voxi(S<&6dEYJHfJs4idbZp*~1!YJGq(v@YFmmLW6(k>sco8^|HHuBAL z@N>DKQlg(kVaOp%w@zmrGy`B^Ri=ZVlqdQ6`-5orIJgK#zrMZUX+e;Xn(OskXl?F- zW>pK~gm8)KRK%cN5Nc`=24|Yp!W{Y-Lz|%(8cv2=lhvaf7)XZ((Wt`$=WB;Jc*XXA@{OxC$ahFhTv3iNKSP3 zLY-dhaDOs=k)T)QVx3+bvTKQ^S1iV{dVz(mSPJLql*{Yu^ZI?k0_9be7J{RIGG>KwzJU z0)`ND{p+Yk%^-F^#czl-U6Tcx(^CWpT{so3g~%Nw=4#|XZZ8>Jjc)3*BNa6X5?;IK zP4o`N{-BGrzKuHdSh{~2+N>qT!5_{*CS<^znkD8ie-7%0aKPs#Epr9J9rHwR_+8YI z8=F=yTjhBquo7kCf%Zpq^hy-!6%WO`t79`7&8M~R7F6XN>niC5QW5JR<&{ztl6)mD zsi(=?)8y-E@{^yBAUh$)Q7`)FC~8aY(X=54y>k~;nhFOF0U(owOb3JFPiZ^_<>P#Z z?P%Qi-h&C$@S`9Uh#tvw7OzBvOZ0sGPis$A5qm`<w4{R=R7Tx-bGCftW~HsP(gZtqON@0Mu825f>jvnzv1-G4GHi+eMn)^G3$^qacXME%hdlI zyj#h!6B+^Cev-||B$prT9S%S$yIvEBEixY5G*C2bC{mTFZs#kGkA-B TvdNccwfM@C%Ak>RxGLvgq(F2t delta 3140 zcmaJ@YfKbZ6uu8wUduzoEoE0hAQ&2?ERUI48!Zhj5L^o?wI;QS1ydi0XzQa$1*~bY zS`}yY`iffGMryS|x9zo6jPF=Q#Y9c2Em~u3>ks2AX=04+%w2Zp&K=WDAT#HF=R4#Nxs!NW)w>M!o6#F0?>i91LUqeH#wLkV(Tj)f=0`)T^XB zWMnw?#HLFjiw^VO*xVQyvIMw3?c5m_G6lK(i+1H25dy&eu168ZzLV8^-EmmkyC3fJ zhBn;BHhTHMut;_3#IMNi{V;_#QZ@l&G!uxopb0q^Kf>h%w@>AgzW1pVLM zUjO_vq)7`UMy@A8=Z1b58B~R2LAcCV)@7mn5OTWcE~%uU5hl{d7`lY*(5i5_E!-er zU?m0$64G=#T*SFD*sWL#?0g(VSYUG{!rLJe)iV6ZAfg)4IU6S@Ipc&(PkPM>Ged&9 zNnr*Yud7PiGvElbtQ8sYGeeTr^O9b1{lA)(jV3h@h0?u4sb`I3XP=Qjsiq z()3?Vv=>$Yy+1D<24FB&pO&Q1(sp<)CYYt0O!7gmO_Mh_Zxk826*=i~AN*seP`&i; z%kT-dznrSquKrh&O7H&yd+MK|vV%M>MbW_k+2pfo6ct@uJ8y1d?yS0jmL|)~kWjq3 z=5e&V9Bt=B)_h}WS_Kk&k+hFRT%j`90xv2yTUoMu8K|ecMXcKh;8adYT1BmrO@%Ao93LWGzZZ zicE59(M@xHb-03zs5u_;?PoApv)4t~H-U^UzR) zJp~11<9rM8&IMM7s`pWElF{-GqO3#-`Us_CS0eAAU`RLV-GaulmQUG=YO-FJiw1!x zq}84Ni^%jAN(HiHHOW?!Vl{cl#Up4KA;-}m`p;3+9WIvoUw2ToE%Wq90OGW8F`#$g zDVl}X|DEe~9UZvfvdP*u96{FINA_U)1ExN!DdB+yRrLTVg5#kFh#UKiKH(us5>T2c zhSokrBioQN-1Zjmx918RvvmmM^?We9d@;!Ocp3!iSi@Ml|nOTG4_n zO}M`m8%;)SDZd+0cFeib%uk3jR>U5)o})yiO()^JG# zV29V5A~0B12hK|JNRe6@VeJSp$edVKSR{LjNKFSW9pWiCqJ5N@R`OSq=^c0o>FdDT zk`%dKSXU(4x*pr%JUQPkEXjF5ut=U>7SsqV$wx$sv|6+jwu+VluR46g5R%}-uQ+7M zT`aEW+4XhW?885BLQUIq})EM%~In=P=bTP$Zq9otQcvnpD)!%CO? zxkyKnJ9(2Hl%g;2Y?$Q9uQnf+qA0ZWOPtOX)P-G^jh*V^`B*01Ut2PvHQ(ULY?%JE z2a7}T#9rKB1fkRR;omqhwU}{qu^%twY%J}p@39MoNqO3&Eu|tUsXD;t#T-Wch`YE! z8-GaL47K&(<)KfZY*yXm*a?n^?l`G+*c90V_KpES`vL+s5EzgOAc92(ZGuGta|BBf g=o`)RC~gnA{4?Hao)BdB87>EX1jbU|SzMF&9}X$LuK)l5 diff --git a/stepmania/src/plib-1.6.0/ul_d.lib b/stepmania/src/plib-1.6.0/ul_d.lib index 41c989274336fc7092e35c76665539e65751c325..09a6fe1a3bc6dbda91a89aaee3f4e21b6cfda733 100644 GIT binary patch delta 15653 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