Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*tags*/
- #define TAG_milliseconds Milliseconds
- #define TAG_seconds Seconds
- #define TAG_minutes Minutes
- #define TAG_hours Hours
- #define TAG_days Days
- #define TAG_weeks Weeks
- #define TAG_kelvin Kelvin
- #define TAG_celcius Celcius
- #define TAG_millimetres Millimetres
- #define TAG_centimetres Centimetres
- #define TAG_metres Metres
- #define TAG_kilometres Kilometres
- #define TAG_units Units
- #define TAG_precision_units Precision_Units
- #define TAG_square_millimetres Square_Millimetres
- #define TAG_square_centimetres Square_Centimetres
- #define TAG_square_metres Square_Metres
- #define TAG_square_kilometres Square_Kilometres
- #define TAG_hectares Hectares
- #define TAG_grammes Grammes
- #define TAG_kilogrammes Kilogrammes
- #define TAG_tonnes Tonnes
- #define TAG_millilitres Millilitres
- #define TAG_litres Litres
- #define TAG_cubic_centimetres Cubic_Centimetres
- #define TAG_cubic_metres Cubic_Metres
- /*defines*/
- #define DEFINE_MEASUREMENT_1(%1) \
- native TAG_%1:operator*(TAG_%1:l,Float:r)=floatmul;\
- native TAG_%1:operator*(Float:l,TAG_%1:r)=floatmul;\
- native TAG_%1:operator/(TAG_%1:l,Float:r)=floatdiv;\
- native TAG_%1:operator/(Float:l,TAG_%1:r)=floatdiv;\
- forward TAG_%1:operator%(TAG_%1:l,Float:r);\
- forward TAG_%1:operator%(Float:l,TAG_%1:r);\
- stock TAG_%1:operator+(TAG_%1:l,Float:r)return TAG_%1:(Float:l+Float:r);\
- stock TAG_%1:operator+(Float:l,TAG_%1:r)return TAG_%1:(Float:l+Float:r);\
- stock TAG_%1:operator-(TAG_%1:l,Float:r)return TAG_%1:(Float:l-Float:r);\
- stock TAG_%1:operator-(Float:l,TAG_%1:r)return TAG_%1:(Float:l-Float:r);\
- stock bool:operator>(TAG_%1:l,Float:r)return (Float:l>Float:r);\
- stock bool:operator>(Float:l,TAG_%1:r)return (Float:l>Float:r);\
- stock bool:operator>=(TAG_%1:l,Float:r)return (Float:l>=Float:r);\
- stock bool:operator>=(Float:l,TAG_%1:r)return (Float:l>=Float:r);\
- stock bool:operator<(TAG_%1:l,Float:r)return (Float:l<Float:r);\
- stock bool:operator<(Float:l,TAG_%1:r)return (Float:l<Float:r);\
- stock bool:operator<=(TAG_%1:l,Float:r)return (Float:l<=Float:r);\
- stock bool:operator<=(Float:l,TAG_%1:r)return (Float:l<=Float:r);\
- stock bool:operator==(TAG_%1:l,Float:r)return (Float:l==Float:r);\
- stock bool:operator==(Float:l,TAG_%1:r)return (Float:l==Float:r);\
- stock bool:operator!=(TAG_%1:l,Float:r)return (Float:l!=Float:r);\
- stock bool:operator!=(Float:l,TAG_%1:r)return (Float:l!=Float:r);
- #define DEFINE_MEASUREMENT_2(%1) \
- stock TAG_%1:operator*(TAG_%1:l,_:r)return l*float(r);\
- stock TAG_%1:operator*(_:l,TAG_%1:r)return l*float(r);\
- stock TAG_%1:operator/(TAG_%1:l,_:r)return l*float(r);\
- stock TAG_%1:operator/(_:l,TAG_%1:r)return l*float(r);\
- forward TAG_%1:operator%(TAG_%1:l,_:r);\
- forward TAG_%1:operator%(_:l,TAG_%1:r);\
- stock TAG_%1:operator+(TAG_%1:l,_:r)return TAG_%1:(Float:l+float(r));\
- stock TAG_%1:operator+(_:l,TAG_%1:r)return TAG_%1:(float(l)+Float:r);\
- stock TAG_%1:operator-(TAG_%1:l,_:r)return TAG_%1:(Float:l-float(r));\
- stock TAG_%1:operator-(_:l,TAG_%1:r)return TAG_%1:(float(l)-Float:r);\
- stock bool:operator>(TAG_%1:l,_:r)return (Float:l>float(r));\
- stock bool:operator>(_:l,TAG_%1:r)return (float(l)>Float:r);\
- stock bool:operator>=(TAG_%1:l,_:r)return (Float:l>=float(r));\
- stock bool:operator>=(_:l,TAG_%1:r)return (float(l)>=Float:r);\
- stock bool:operator<(TAG_%1:l,_:r)return (Float:l<float(r));\
- stock bool:operator<(_:l,TAG_%1:r)return (float(l)<Float:r);\
- stock bool:operator<=(TAG_%1:l,_:r)return (Float:l<=float(r));\
- stock bool:operator<=(_:l,TAG_%1:r)return (float(l)<=Float:r);\
- stock bool:operator==(TAG_%1:l,_:r)return (Float:l==float(r));\
- stock bool:operator==(_:l,TAG_%1:r)return (float(l)==Float:r);\
- stock bool:operator!=(TAG_%1:l,_:r)return (Float:l!=float(r));\
- stock bool:operator!=(_:l,TAG_%1:r)return (float(l)!=Float:r);
- #define DEFINE_MEASUREMENT_3(%1) \
- stock bool:operator!(TAG_%1:oper)return (_:oper&cellmax)==0;\
- native TAG_%1:operator=(oper) = float;\
- stock TAG_%1:operator=(Float:oper)return TAG_%1:oper;\
- stock TAG_%1:operator++(TAG_%1:oper)return TAG_%1(Float:oper+1.0);\
- stock TAG_%1:operator--(TAG_%1:oper)return TAG_%1(Float:oper-1.0);\
- stock TAG_%1:operator-(TAG_%1:oper)return oper^TAG_%1:cellmin;\
- forward TAG_%1:operator*(TAG_%1:l,TAG_%1:r);\
- forward TAG_%1:operator/(TAG_%1:l,TAG_%1:r);\
- forward TAG_%1:operator%(TAG_%1:l,TAG_%1:r);\
- stock TAG_%1:operator+(TAG_%1:l,TAG_%1:r)return TAG_%1:(Float:l+Float:r);\
- stock TAG_%1:operator-(TAG_%1:l,TAG_%1:r)return TAG_%1:(Float:l-Float:r);\
- stock bool:operator>(TAG_%1:l,TAG_%1:r)return (Float:l>Float:r);\
- stock bool:operator>=(TAG_%1:l,TAG_%1:r)return (Float:l>=Float:r);\
- stock bool:operator<(TAG_%1:l,TAG_%1:r)return (Float:l<Float:r);\
- stock bool:operator<=(TAG_%1:l,TAG_%1:r)return (Float:l<=Float:r);\
- stock bool:operator==(TAG_%1:l,TAG_%1:r)return (Float:l==Float:r);\
- stock bool:operator!=(TAG_%1:l,TAG_%1:r)return (Float:l!=Float:r);
- #define DEFINE_CONVERSION(%1,%2,%3) \
- forward TAG_%1:operator*(TAG_%1:l,TAG_%2:r);\
- forward TAG_%1:operator*(TAG_%2:l,TAG_%1:r);\
- forward TAG_%1:operator/(TAG_%1:l,TAG_%2:r);\
- forward TAG_%1:operator/(TAG_%2:l,TAG_%1:r);\
- forward TAG_%1:operator%(TAG_%1:l,TAG_%2:r);\
- forward TAG_%1:operator%(TAG_%2:l,TAG_%1:r);\
- stock TAG_%1:operator+(TAG_%1:l,TAG_%2:r)return TAG_%1:(Float:l+Float:r*%3);\
- stock TAG_%1:operator+(TAG_%2:l,TAG_%1:r)return TAG_%1:(Float:l*%3+Float:r);\
- stock TAG_%1:operator-(TAG_%1:l,TAG_%2:r)return TAG_%1:(Float:l-Float:r*%3);\
- stock TAG_%1:operator-(TAG_%2:l,TAG_%1:r)return TAG_%1:(Float:l*%3-Float:r);\
- stock bool:operator>(TAG_%1:l,TAG_%2:r)return (Float:l>Float:r*%3);\
- stock bool:operator>(TAG_%2:l,TAG_%1:r)return (Float:l*%3>Float:r);\
- stock bool:operator>=(TAG_%1:l,TAG_%2:r)return (Float:l>=Float:r*%3);\
- stock bool:operator>=(TAG_%2:l,TAG_%1:r)return (Float:l*%3>=Float:r);\
- stock bool:operator<(TAG_%1:l,TAG_%2:r)return (Float:l<Float:r*%3);\
- stock bool:operator<(TAG_%2:l,TAG_%1:r)return (Float:l*%3<Float:r);\
- stock bool:operator<=(TAG_%1:l,TAG_%2:r)return (Float:l<=Float:r*%3);\
- stock bool:operator<=(TAG_%2:l,TAG_%1:r)return (Float:l*%3<=Float:r);\
- stock bool:operator==(TAG_%1:l,TAG_%2:r)return (Float:l==Float:r*%3);\
- stock bool:operator==(TAG_%2:l,TAG_%1:r)return (Float:l*%3==Float:r);\
- stock bool:operator!=(TAG_%1:l,TAG_%2:r)return (Float:l!=Float:r*%3);\
- stock bool:operator!=(TAG_%2:l,TAG_%1:r)return (Float:l*%3!=Float:r);
- #define DEFINE_TEMPERATURE(%1,%2,%3,%4) \
- forward TAG_%1:operator*(TAG_%1:l,TAG_%2:r);\
- forward TAG_%1:operator*(TAG_%2:l,TAG_%1:r);\
- forward TAG_%1:operator/(TAG_%1:l,TAG_%2:r);\
- forward TAG_%1:operator/(TAG_%2:l,TAG_%1:r);\
- forward TAG_%1:operator%(TAG_%1:l,TAG_%2:r);\
- forward TAG_%1:operator%(TAG_%2:l,TAG_%1:r);\
- stock TAG_%1:operator+(TAG_%1:l,TAG_%2:r)return TAG_%1:(Float:l+Float:r*%3-%4);\
- stock TAG_%1:operator+(TAG_%2:l,TAG_%1:r)return TAG_%1:(Float:l*%3-%4+Float:r);\
- stock TAG_%1:operator-(TAG_%1:l,TAG_%2:r)return TAG_%1:(Float:l-Float:r*%3-%4);\
- stock TAG_%1:operator-(TAG_%2:l,TAG_%1:r)return TAG_%1:(Float:l*%3-%4-Float:r);\
- stock bool:operator>(TAG_%1:l,TAG_%2:r)return (Float:l>Float:r*%3-%4);\
- stock bool:operator>(TAG_%2:l,TAG_%1:r)return (Float:l*%3-%4>Float:r);\
- stock bool:operator>=(TAG_%1:l,TAG_%2:r)return (Float:l>=Float:r*%3-%4);\
- stock bool:operator>=(TAG_%2:l,TAG_%1:r)return (Float:l*%3-%4>=Float:r);\
- stock bool:operator<(TAG_%1:l,TAG_%2:r)return (Float:l<Float:r*%3-%4);\
- stock bool:operator<(TAG_%2:l,TAG_%1:r)return (Float:l*%3-%4<Float:r);\
- stock bool:operator<=(TAG_%1:l,TAG_%2:r)return (Float:l<=Float:r*%3-%4);\
- stock bool:operator<=(TAG_%2:l,TAG_%1:r)return (Float:l*%3-%4<=Float:r);\
- stock bool:operator==(TAG_%1:l,TAG_%2:r)return (Float:l==Float:r*%3-%4);\
- stock bool:operator==(TAG_%2:l,TAG_%1:r)return (Float:l*%3-%4==Float:r);\
- stock bool:operator!=(TAG_%1:l,TAG_%2:r)return (Float:l!=Float:r*%3-%4);\
- stock bool:operator!=(TAG_%2:l,TAG_%1:r)return (Float:l*%3-%4!=Float:r);
- /*operators*/
- DEFINE_MEASUREMENT_1(milliseconds)
- DEFINE_MEASUREMENT_1(seconds)
- DEFINE_MEASUREMENT_1(minutes)
- DEFINE_MEASUREMENT_1(hours)
- DEFINE_MEASUREMENT_1(days)
- DEFINE_MEASUREMENT_1(weeks)
- DEFINE_MEASUREMENT_2(milliseconds)
- DEFINE_MEASUREMENT_2(seconds)
- DEFINE_MEASUREMENT_2(minutes)
- DEFINE_MEASUREMENT_2(hours)
- DEFINE_MEASUREMENT_2(days)
- DEFINE_MEASUREMENT_2(weeks)
- DEFINE_MEASUREMENT_3(milliseconds)
- DEFINE_MEASUREMENT_3(seconds)
- DEFINE_MEASUREMENT_3(minutes)
- DEFINE_MEASUREMENT_3(hours)
- DEFINE_MEASUREMENT_3(days)
- DEFINE_MEASUREMENT_3(weeks)
- DEFINE_MEASUREMENT_1(millimetres)
- DEFINE_MEASUREMENT_1(centimetres)
- DEFINE_MEASUREMENT_1(metres)
- DEFINE_MEASUREMENT_1(kilometres)
- DEFINE_MEASUREMENT_1(units)
- DEFINE_MEASUREMENT_1(precision_units)
- DEFINE_MEASUREMENT_1(square_metres)
- DEFINE_MEASUREMENT_1(square_kilometres)
- DEFINE_MEASUREMENT_1(hectares)
- DEFINE_MEASUREMENT_1(milligrammes)
- DEFINE_MEASUREMENT_1(grammes)
- DEFINE_MEASUREMENT_1(kilogrammes)
- DEFINE_MEASUREMENT_1(tonnes)
- DEFINE_MEASUREMENT_1(millilitres)
- DEFINE_MEASUREMENT_1(litres)
- DEFINE_MEASUREMENT_2(millimetres)
- DEFINE_MEASUREMENT_2(centimetres)
- DEFINE_MEASUREMENT_2(metres)
- DEFINE_MEASUREMENT_2(kilometres)
- DEFINE_MEASUREMENT_2(units)
- DEFINE_MEASUREMENT_2(precision_units)
- DEFINE_MEASUREMENT_2(square_metres)
- DEFINE_MEASUREMENT_2(square_kilometres)
- DEFINE_MEASUREMENT_2(square_miles)
- DEFINE_MEASUREMENT_2(hectares)
- DEFINE_MEASUREMENT_2(milligrammes)
- DEFINE_MEASUREMENT_2(grammes)
- DEFINE_MEASUREMENT_2(kilogrammes)
- DEFINE_MEASUREMENT_2(tonnes)
- DEFINE_MEASUREMENT_2(millilitres)
- DEFINE_MEASUREMENT_2(litres)
- DEFINE_MEASUREMENT_3(millimetres)
- DEFINE_MEASUREMENT_3(centimetres)
- DEFINE_MEASUREMENT_3(metres)
- DEFINE_MEASUREMENT_3(kilometres)
- DEFINE_MEASUREMENT_3(units)
- DEFINE_MEASUREMENT_3(precision_units)
- DEFINE_MEASUREMENT_3(square_metres)
- DEFINE_MEASUREMENT_3(square_kilometres)
- DEFINE_MEASUREMENT_3(square_miles)
- DEFINE_MEASUREMENT_3(hectares)
- DEFINE_MEASUREMENT_3(milligrammes)
- DEFINE_MEASUREMENT_3(grammes)
- DEFINE_MEASUREMENT_3(kilogrammes)
- DEFINE_MEASUREMENT_3(tonnes)
- DEFINE_MEASUREMENT_3(millilitres)
- DEFINE_MEASUREMENT_1(celcius)
- DEFINE_MEASUREMENT_2(celcius)
- DEFINE_MEASUREMENT_3(celcius)
- DEFINE_MEASUREMENT_1(kelvin)
- DEFINE_MEASUREMENT_2(kelvin)
- DEFINE_MEASUREMENT_3(kelvin)
- DEFINE_MEASUREMENT_1(square_centimetres)
- DEFINE_MEASUREMENT_2(square_centimetres)
- DEFINE_MEASUREMENT_3(square_centimetres)
- DEFINE_MEASUREMENT_1(cubic_centimetres)
- DEFINE_MEASUREMENT_2(cubic_centimetres)
- DEFINE_MEASUREMENT_3(cubic_centimetres)
- DEFINE_MEASUREMENT_1(cubic_metres)
- DEFINE_MEASUREMENT_2(cubic_metres)
- DEFINE_MEASUREMENT_3(cubic_metres)
- /*time*/
- DEFINE_CONVERSION(milliseconds,seconds,1000.0)
- DEFINE_CONVERSION(milliseconds,minutes,60000.0)
- DEFINE_CONVERSION(milliseconds,hours,3600000.0)
- DEFINE_CONVERSION(milliseconds,days,86400000.0)
- DEFINE_CONVERSION(milliseconds,weeks,604800000.0)
- DEFINE_CONVERSION(seconds,minutes,60.0)
- DEFINE_CONVERSION(seconds,hours,3600.0)
- DEFINE_CONVERSION(seconds,days,86400.0)
- DEFINE_CONVERSION(seconds,weeks,604800.0)
- DEFINE_CONVERSION(minutes,hours,60.0)
- DEFINE_CONVERSION(minutes,days,1440.0)
- DEFINE_CONVERSION(minutes,weeks,10080.0)
- DEFINE_CONVERSION(hours,days,24.0)
- DEFINE_CONVERSION(hours,weeks,168.0)
- DEFINE_CONVERSION(days,weeks,7.0)
- /*temperature*/
- DEFINE_TEMPERATURE(celcius,kelvin,1.0,273.15)
- /*distance*/
- DEFINE_CONVERSION(millimetres,centimetres,10.0)
- DEFINE_CONVERSION(millimetres,metres,1000.0)
- DEFINE_CONVERSION(millimetres,kilometres,1000000.0)
- DEFINE_CONVERSION(millimetres,units,1000.0)
- DEFINE_CONVERSION(millimetres,precision_units,62.5)
- DEFINE_CONVERSION(centimetres,metres,100.0)
- DEFINE_CONVERSION(centimetres,kilometres,100000.0)
- DEFINE_CONVERSION(centimetres,units,100.0)
- DEFINE_CONVERSION(centimetres,precision_units,6.25)
- DEFINE_CONVERSION(metres,kilometres,1000.0)
- DEFINE_CONVERSION(units,kilometres,1000.0)
- DEFINE_CONVERSION(precision_units,metres,16.0)
- DEFINE_CONVERSION(precision_units,kilometres,16000.0)
- DEFINE_CONVERSION(precision_units,units,16.0)
- /*area*/
- DEFINE_CONVERSION(square_metres,square_kilometres,1000000.0)
- DEFINE_CONVERSION(square_metres,hectares,10000.0)
- DEFINE_CONVERSION(square_centimetres,square_metres,10000.0)
- DEFINE_CONVERSION(square_centimetres,square_kilometres,10000000000.0)
- DEFINE_CONVERSION(square_centimetres,hectares,100000000.0)
- DEFINE_CONVERSION(square_millimetres,square_metres,1000000.0)
- DEFINE_CONVERSION(square_millimetres,square_centimetres,100.0)
- DEFINE_CONVERSION(square_millimetres,square_kilometres,1000000000000.0)
- DEFINE_CONVERSION(square_millimetres,hectares,10000000000.0)
- DEFINE_CONVERSION(hectares,square_kilometres,100.0)
- /*weight*/
- DEFINE_CONVERSION(grammes,kilogrammes,1000.0)
- DEFINE_CONVERSION(grammes,tonnes,1000000.0)
- DEFINE_CONVERSION(milligrammes,grammes,1000.0)
- DEFINE_CONVERSION(milligrammes,kilogrammes,1000000.0)
- DEFINE_CONVERSION(milligrammes,tonnes,1000000000.0)
- DEFINE_CONVERSION(kilogrammes,tonnes,1000.0)
- /*volume*/
- DEFINE_CONVERSION(millilitres,litres,1000.0)
- DEFINE_CONVERSION(millilitres,cubic_metres,1000000.0)
- DEFINE_CONVERSION(litres,cubic_metres,1000.0)
- DEFINE_CONVERSION(cubic_centimetres,litres,1000.0)
- DEFINE_CONVERSION(cubic_centimetres,cubic_metres,1000000.0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement