Massassi Forums Logo

This is the static archive of the Massassi Forums. The forums are closed indefinitely. Thanks for all the memories!

You can also download Super Old Archived Message Boards from when Massassi first started.

"View" counts are as of the day the forums were archived, and will no longer increase.

ForumsCog Forum → My Checksum Notes
My Checksum Notes
2004-07-10, 11:43 AM #1
Just finished touching up my notes on checksum. It's not comprehensive information, it's sorta just notes to help you if you already have a working understanding of how the checksum does its thing.
Code:
# Jedi Knight Cog Checksum Notes
#
# CHECKSUM.TXT
#
# NOT A Script - Just info
#
# [QM]
#
# (C) 1997 LucasArts Entertainment Co. All Rights Reserved
# ========================================================================================


Symbols that are equivalent


operators
- + / * % = == != > < >= <= ! && || & | ^ Return


values, variables and verbs
1 X "text" call blah


the () in X() are equivalent to an operator
the X in X() is equivalent to a value, variable or verb


# ........................................................................................


Code that isn't counted when calculating the checksum


commas, such as
1, 1, 1;
SetPulse(0), 1;


semi-colons, such as
1;
if(0);


messages within the "code" area, such as
activated:
startup:
stop_power:


exceptions to these are
semi-colons within a for() loop declaration
(see the "Information about for() loops" section for specifics)
in some force power cogs you can't move code from above to below stop_power:
or vice versa (so its placement is crucial to passing checksum)


# ........................................................................................


Vectors in '0 0 0' form


these seem to be their own checksum type and can't be converted to or from
the way to form a vector without this is VectorSet(0, 0, 0);


keep in mind that you can't compare vectors with ==
if(VectorSet(0, 0, 0) == '0 0 0') won't work
you'll need to use
if(VectorDist(VectorSet(0, 0, 0), '0 0 0') == 0)
or
if(!(VectorDist(VectorSet(0, 0, 0), '0 0 0') == 0))


if(VectorDist(VectorSet(0, 0, 0), '0 0 0') != 0)
won't work well, because != only works with integers
it'll truncate the VectorDist() results


# ........................................................................................


Useful conversions


X();
is equivalent to
-1;


Return;
is equivalent to
-


call blah;
is equivalent to
1;


if(1) is true
if(0) is false


# ........................................................................................


Information about for() loops


if() sorta equals for()


in a for() loop, the contained semi-colons (;) count as an operator


-1, -1, -1, -1, -1, -1, if(0) { }
is equivalent to
for(i=0; i<10; i=i+1) { }


# ........................................................................................


Information concerning if() and else


if(0)
is equivalent to
else {1;}


in other words
if
is equivalent to
else


and
(0)
is equivalent to
{1;}


you just can't have if without the (0) though


# ........................................................................................


Information on curly brackets and parenthesis


{} is equivalent to ()


if(0) { }
is equivalent to
if((0))


however
if(0) { }
is NOT equivalent to
if(X())


also
if((0))
is NOT equivalent to
if(X())


the () in X() is not the same as the () in (0)
the () in X() is an operator, the () in (0) are brackets


Quib Mask

Edit: stupid smiley code...

[This message has been edited by Quib Mask (edited July 10, 2004).]
2004-07-10, 7:13 PM #2
Yippee! More c/s notes. [http://forums.massassi.net/html/biggrin.gif]

(funny, I always used 'c/s' for "client/server"; kinda wierd using it for something else now...)

------------------
nytfyre m0d || f33l t3h p0w3r || t3h l0st c0gz || OMF > *
May the mass times acceleration be with you.

↑ Up to the top!