aboutsummaryrefslogtreecommitdiff
path: root/archive/blr2/src/libcgh.h
diff options
context:
space:
mode:
authorGravatar Chris Xiong <chirs241097@gmail.com> 2015-10-26 22:52:36 +0800
committerGravatar Chris Xiong <chirs241097@gmail.com> 2015-10-26 22:52:36 +0800
commit3bd383baf6a17e734329e1fc677c7e86283db772 (patch)
tree69a9148087577f797624ceb9c71323a2563d6bb4 /archive/blr2/src/libcgh.h
parent543e4f570be9b279ba558ca61cc02cda251af384 (diff)
downloadbullet-lab-remix-3bd383baf6a17e734329e1fc677c7e86283db772.tar.xz
Added support for relative line numbers.
Added instructions for, brk and cont. (They are still untested...) Parser code cleanup. Removed garbage output to stderr. Reorganize the repository structure. Updated BLR2 code move it into archive. Added BLR1 files.
Diffstat (limited to 'archive/blr2/src/libcgh.h')
-rw-r--r--archive/blr2/src/libcgh.h140
1 files changed, 140 insertions, 0 deletions
diff --git a/archive/blr2/src/libcgh.h b/archive/blr2/src/libcgh.h
new file mode 100644
index 0000000..324ba42
--- /dev/null
+++ b/archive/blr2/src/libcgh.h
@@ -0,0 +1,140 @@
+// Chrisoft Bullet Lab Remix HGE -*- C++ -*-
+// Chrisoft Game Helper header
+// Copyright Chrisoft 2014
+// libcgh version 0007
+// Last full compatible version 0007
+// ^Modify that when big change is made^
+#include <hge.h>
+#include <hgefont.h>
+#include <hgedistort.h>
+#include <hgecolor.h>
+#include <math.h>
+#ifndef libcgh_H
+#define libcgh_H
+#define pi 3.1415926535
+#define sqr(x) ((x)*(x))
+//static const char* LIBCGH_H_FN="libcgh.h";
+
+struct vector2d
+{
+ double x,y;
+ vector2d(double _x,double _y){x=_x;y=_y;}
+ vector2d(){x=y=0;}
+ double l(){return sqrt(sqr(x)+sqr(y));}
+ void ToUnitCircle(){double len=l();x/=len;y/=len;}
+ void Swap(){double t=x;x=y;y=t;}
+ void Rotate(double rad){double tx=x*cos(rad)+y*sin(rad),ty=y*cos(rad)-x*sin(rad);x=tx,y=ty;}
+ friend vector2d operator -(vector2d a,vector2d b)
+ {
+ return vector2d(a.x-b.x,a.y-b.y);
+ }
+ friend vector2d operator +(vector2d a,vector2d b)
+ {
+ return vector2d(a.x+b.x,a.y+b.y);
+ }
+ friend double operator |(vector2d a,vector2d b)//dot product
+ {
+ return a.x*b.x+a.y*b.y;
+ }
+ friend double operator *(vector2d a,vector2d b)//length of cross product
+ {
+ return a.x*b.y-b.x*a.y;
+ }
+ friend vector2d operator *(double a,vector2d b)
+ {
+ return vector2d(b.x*a,b.y*a);
+ }
+ friend double operator ^(vector2d a,vector2d b)//cosine of angle
+ {
+ return (a|b)/a.l()/b.l();
+ }
+};
+inline vector2d ToUnitCircle(vector2d input)
+{
+ vector2d res=input;
+ res.x=res.x/input.l();
+ res.y=res.y/input.l();
+ return res;
+}
+inline double GetDist(const vector2d a,const vector2d b)
+{
+ return sqrt(sqr(a.x-b.x)+sqr(a.y-b.y));
+}
+inline double GetDistSeg(const vector2d a,const vector2d b,const vector2d c)
+{
+ double l2=GetDist(a,b)*GetDist(a,b);
+ if (l2==0.0)return GetDist(c,a);
+ double t=((c-a)|(b-a))/l2;
+ if (t<0)return GetDist(c,a);
+ else if (t>1)return GetDist(c,b);
+ vector2d projection=a+t*(b-a);
+ return GetDist(c,projection);
+}
+inline double normalizerad(double a)
+{
+ while (a<0)a+=2*pi;
+ while (a>2*pi)a-=2*pi;
+ return a;
+}
+struct TextureRect
+{
+ double x,y,w,h;
+ TextureRect(){}
+ TextureRect(double _x,double _y,double _w,double _h){x=_x,y=_y,w=_w,h=_h;}
+};
+class RandomEngine
+{
+private:
+ unsigned int cseed;
+public:
+ void SetSeed(unsigned int seed);
+ int NextInt(int min,int max);
+ double NextDouble(double min,double max);
+};
+class CircleIndicator
+{
+private:
+ hgeDistortionMesh *circle;
+ double value,radius,thk;
+ DWORD ccolour;
+ bool gradient;
+ BYTE alpha;
+public:
+ void Init(double _r,double _thk,BYTE _a,bool _gr,HTEXTURE _Texture,TextureRect _TR,DWORD _cc=0);
+ void SetAlpha(BYTE _alpha);
+ void SetValue(double _value);
+ void Render(double x,double y);
+};
+class LinearProgresser
+{
+private:
+ double a,b,val;
+ double Elapsed,Limit;
+public:
+ void Init(double _a,double _b,double _Lim);
+ void Launch();
+ void Update(double DT);
+ double GetA();
+ double GetB();
+ double GetValue();
+ double GetPercentage();
+ double GetDelta();
+ double GetElapsed();
+};
+class HangUpText
+{
+private:
+ hgeFont *TFont;
+ vector2d Position;
+ double Elapsed,Limit,dlim,delta;
+ BYTE alim,alpha;
+ char Text[255];
+ LinearProgresser Progresser,Progalpha;
+ bool done;
+public:
+ bool Active();
+ void Init(const char *Font,const char *_Text,double _tlim,double _alim,double _dlim,DWORD _color=0x00FFFFFF);
+ void Launch(vector2d pos);
+ void Process(double DT);
+};
+#endif