Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - IsmAvatar

646
3D + DS = 3DS
Sounds like it uses that "unfocus your eyes" 'technology' to get a 3d effect. In case you accidentally refocus your eyes again, the image gets confusing, but there's a 2d switch. I wonder if there's any potentially bad effects that can have on your eyes if you do that too much.

647
Announcements / Re: Battling
« on: June 19, 2010, 06:00:36 pm »
I think you should have the code for both EXE and DLL in there, so people could use Enigma from the command line on, e.g., an enigma file (enigma's alternative to gm6/gmk) which can then compile it. That way you can also do debugging with gdb.

648
Announcements / Re: Battling
« on: June 18, 2010, 01:14:48 pm »
Quote
Can't Ism compile in debug mode and then use gdb so she can tell you exactly where is ENIGMA segfaulting?
I wouldn't know how to do that. For starters, I've never used GDB, and secondly, I'm not sure how I'd use it on a DLL.

Quote
I omitted the function call that handles FPS calculation.
That explains a few things.

649
Announcements / Re: Updates, Updates, Updates on the way.
« on: June 14, 2010, 09:44:53 pm »
It parses.

650
Announcements / Re: Around the Clock
« on: June 14, 2010, 07:54:22 pm »
Bug:
While holding down the Z key, the following function calls give the following return values
//uppercase Z
keyboard_check(ord('Z')) = 0
keyboard_check(90) = 0
//lowercase Z
keyboard_check(ord('z')) = 1
keyboard_check(122) = 1

GM checks the uppercase ('Z' or 90). Enigma should probably emulate this behavior. I wouldn't object to both uppercase and lowercase returning true on key down, since the lowercase is never used, and can be a source of confusion.

Accompanying the key with the Shift key does not alter these results. (that is, shift+z does not trigger uppercase 'Z' to return true, although lowercase 'z' continues to return true.

651
Announcements / Re: Updates, Updates, Updates on the way.
« on: June 14, 2010, 07:30:46 pm »
Yaml forbids tabs. Use space instead.

Quote
# Why does YAML forbid tabs?

Tabs have been outlawed since they are treated differently by different editors and tools. And since indentation is so critical to proper interpretation of YAML, this issue is just too tricky to even attempt. Indeed Guido van Rossum of Python has acknowledged that allowing TABs in Python source is a headache for many people and that were he to design Python again, he would forbid them.

652
Announcements / Re: Updates, Updates, Updates on the way.
« on: June 14, 2010, 09:51:32 am »
1) erororor still not fixed.
2) I wasn't actually pointing out the whitespace. I didn't mind it so much - in fact I prefer the following:
Code: (xml) [Select]
<object>
  <tag>value</tag>
</object>
where actual values do not have whitespace, but embedded tags have indentation to show which tag they are a member of, and to better emphasize the hierarchy.

I was actually criticizing "x,n"
Code: (xml) [Select]
<params>
 <param>x</param>
 <param>y</param>
</params>

Personally I've started using a modified version of the text one. I drop the "Done" and "All Done" lines, because I can assume that every 3 lines marks a new function and that EOF is EOF.

Also, while you're supporting machine-and-human-friendly formats, might I suggest YAML?

Code: (yaml) [Select]
---
function:
 id: 1
 func: random
 params: [x]
 mode: 2
 subcat: REAL-VALUED FUNCTIONS
 cat: Computing things
 desc:
function:
 id: 2
 func: random_set_seed
 params: [seed]
 mode: 2
 subcat: REAL-VALUED FUNCTIONS
 cat: Computing things
 desc:
#...
function:
 id: 5
 func: choose
 params: [val1,val2,val3,...]
 mode: 1
 subcat: REAL-VALUED FUNCTIONS
 cat: Computing things
 desc: >
  Returns one of the arguments choosen randomly.
  The function can have up to 16 arguments.
...

The "..." at the end indicates end of document. The ">" near the end indicates that its value is contained on the following indented lines, and newlines will be replaced with spaces. To not truncate newlines, use "|" instead of ">".

653
Announcements / Re: Around the Clock
« on: June 10, 2010, 12:23:52 pm »
To make it more accurate in YAML, a few changes:
* Documents should begin with --- and may end with ...
* Use - to indicate ordered lists.
* a tree structure is achieved by starting the parent node's value with a newline, not a value
  * As such, the value should be given a variable, which I will call 'Group Id'
* The linux-friendly id-name (e.g. 'beginstep') can either stay (in which case it'd be largely lost as simply an element) or become a scalar value belonging to a variable.
* Multiline blocks should either use pipe or right angle bracket, depending on if you wish to preserve newlines and spacing, or replace newlines with spaces (e.g. a simple block of quoted text), respectively, and each line of the block should be indented
* To avoid complications with [] and such in code, code should either use the multiline block mentioned above, or single quote the code, doubling any internal single quotes (that is, two single quotes, not a double quote): 'wtf''quote'

Code: (yaml) [Select]
---
-beginstep:
  Group Id: 3
  Group: Step
  Name: Begin Step
  Mode: Special
  Case: 1

-alarm:
  Group Id: 2
  Group: Alarm
  Name: Alarm %1
  Mode: Stacked
  Sub Check: '{ if ((alarm[%1] == -1) or (alarm[%1]--)) return 0; }'


# Keyboard events. These are simple enough.

-keyboard:
  Group Id: 5
  Group: Keyboard
  Name: Keyboard <%1>
  Type: Key
  Mode: Stacked
  Super Check: keyboard_check(%1)

#...

-step:
  Group Id: 3
  Name: Step
  Mode: Special
  Case: 0
  Constant: |
    {
      x += hspeed, y += vspeed;
      speed -= friction;
      vspeed += sin(gravity_direction * pi/180),
      hspeed += cos(gravity_direction * pi/180);
    }

#...

-collision:
  Group Id: 4
  Group: Collision
  Name: %1
  Type: Object
  Mode: Stacked
  Super Check: instance_number(%1)
  Sub Check: place_meeting(x,y,%1)
...

654
Announcements / Re: Around the Clock
« on: June 10, 2010, 11:29:55 am »
Code: (ini) [Select]
[root]
order = beginstep, alarm, keyboard, step, collision

[beginstep]
name = Begin Step
group_id = 3
case = 1
group = Step
mode = Special

[alarm]
name = Alarm %1
group_id = 2
group = Alarm
mode = Stacked
subCheck = { if ((alarm[%1] == -1) or (alarm[%1]--)) return 0; }

; Keyboard events. These are simple enough.

[keyboard]
name = Keyboard <%1>
group_id = 5
group = Keyboard
type = Key
mode = Stacked
superCheck = keyboard_check(%1)

;...

[step]
name = Step
group_id = 3
case = 0
mode = Special
constant = { x += hspeed, y += vspeed; speed -= friction; vspeed += sin(gravity_direction * pi/180), hspeed += cos(gravity_direction * pi/180); }

;...

[collision]
name = %1
group_id = 4
group = Collision
type = Object
mode = Stacked
superCheck = instance_number(%1)
subCheck = place_meeting(x,y,%1)

Although your format is already very much like YAML.

655
Announcements / Re: Updates, Updates, Updates on the way.
« on: June 10, 2010, 11:19:05 am »
erororor: Unknown column 'field' in 'field list'

Also, lrn2xml
Quote
<params>\n\t\t\tn,x\n\t\t</params>

656
Off-Topic / Re: logy(x) ≢ log(x)÷log(y)
« on: June 09, 2010, 12:57:24 pm »
Thus: 1 = -1
We can further derive that, by adding 1 to each side and dividing by 2,
1 = 0
and a great number of math problems that I got the answers wrong on on tests can thusly be demonstrated as equivalent to the correct answer using this logic.
For any incorrect answer X, and the correct answer Y, it can be demonstrated that X = Y thusly:

1 = 0
1(X - Y) = 0(X - Y)
X - Y = 0
Add Y to both sides.

Or for those if you who like over-extraneous proofs

1: 1 = 0 (given)
2: 1X = 0X (multiply step 1 by X)
3: 1Y = 0Y (multiply step 1 by Y)
4: 0X = 0 (known - simplification)
5: 0Y = 0 (known - simplification)
6: 0 = 0 (known)
7: 0X = 0Y (derived by taking steps 4 and 5 and substituting in step 6)
8: 1X = 1Y (substitute steps 2 and 3 in step 7)
9: X = Y (simplify)

657
Announcements / Re: Tentative Todo
« on: June 06, 2010, 09:52:28 am »
Code: [Select]
#include <these.h>
#define Those These

658
Announcements / Re: Tentative Todo
« on: June 03, 2010, 07:10:18 pm »
And I'm guessing you still never got him to get it on an SVN of some sort? So for all you know, he could have been doing absolutely nothing, and just leading you on that he was making good progress?

659
Announcements / Re: Tentative Todo
« on: June 03, 2010, 01:38:02 pm »
That was the drawing function I used the most >_<

660
Announcements / Re: Graduation
« on: June 03, 2010, 10:13:14 am »
Code: [Select]
global COLLISION[y/16][x/16] = true;
Why does this code not give me a syntax error when I run syntax check, but it does when I go ahead and compile?