I've found an interesting limit, and no Steve, I didn't just do this to annoy you. Functions in AGS have a limited number of parameters. The limit is 14. This isn't covered in the help manual:
QuoteSystem limits
This section tells you the maximums for various parts of the system. If you have been wondering "How many rooms can I have?" or something similar, chances are this section will answer it.
There are maximum...
20 objects per room
100 messages per room
500 global messages
299 rooms per game
300 inventory items
15000 imported sprites
240 sprites per folder
600 views
16 loops per view
20 frames in each loop
300 characters
50 GUIs
30 controls on each GUI
500 dialog topics
3000 dialog-script messages
30 options per topic
20 screen overlays at a time
500 script GlobalInts
50 script GlobalStrings
100 interaction editor global variables
5 background frames per room
20 mouse cursors
If you think any of these limits is a serious problem, contact me and I can probably increase it.
So that's one problem I have. Another problem is the fact that I actually have a function requiring 16 parameters. I could of course just separate the functions, but because of it's purpose, it should really remain as one. It's a function to initialize all the data members of a struct.
I can't really go into too much more detail as I'm kind of working on a secret project. If it works out, I think you'll like it, but I've just started trying to see if it will work today.
Just for an example:
void Func(int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l, int m, int n) {
/* do stuff */
}
Compiles fine. With 14 parameters.
void Func(int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l, int m, int n, int o) {
/* do stuff */
}
Does not compile. I get the following error:
Quote---------------------------
Compile Error
---------------------------
There was an error compiling your script. The problem was:
In: 'Global script'
Error (line 3): too many parameters defined for function
Do you want to fix the script now? (Your game has not been saved).
---------------------------
Yes No
---------------------------
And yes, I am serious. I want a function with 16 parameters.
As a workaround you could have two initialization functions with 8 parameters each :=
Yeah, I got that much... (-_- )
I actually did split it into two functions, but it would make more sense if they could be combined. Also, I appear to be doing something retarded because I keep encountering fatal errors when trying to save. It's getting annoying because I'm not sure which part it is that I'm doing causing the error. But I'm not in the mood right now to care enough to report the error.
Steve...enough with the pointless pointing out of workarounds that I already know about(/am currently using).
Yikes!
Really though, using a function to initialize a struct is inefficient and confusing.
Take a look at these two pieces of code:
struct.Init(3.0, 4.5, 6.0);
You push a bunch of undefined data on the stack, then call a function that copies that data into the appropriate members.
struct.pos = 3.0;
struct.vel = 4.5;
struct.acc = 6.0;
The data is copied directly into the members, plus there's no chance of confusing the parameters.
Now imagine that with 16 parameters...
Of course you could break the data into logical groups and use functions to initialize them. That's not so much a workaround as a code organisation issue.
Hmm... 16 parameters... wouldn't happen to be a 4x4 matrix for some 3d would it? In which case, you can easily use a 3x4 matrix (forward vector, right vector, up vector, position vector) instead. Then initializing it works much better as:
matrix.setForward (1, 0, 0);
matrix.setRight (0, 1, 0);
matrix.SetUp (0, 0, 1);
matrix.SetPosition(10, 10, -30);
Just another pointless pointing out of a workaround for you.
Quote from: SteveMcCrea on Sat 02/07/2005 19:54:25struct.pos = 3.0;
struct.vel = 4.5;
struct.acc = 6.0;
The data is copied directly into the members, plus there's no chance of confusing the parameters.
Okay... Imagine with me for a moment. Copying 16 data members directly:
[fake]
struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;
[/fake]
Now, let's pretend that I have to write this code a minimum of 40 different times. In this case, 75:
[fake]
struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;struct.a = 9;
struct.b = 8;
struct.c = 3;
struct.d = 7;
struct.e = 1;
struct.f = 6;
struct.g = 5;
struct.h = 7;
struct.i = 6;
struct.j = 47;
struct.k = 5;
struct.l = 6;
struct.m = 4;
struct.n = 8;
struct.o = 3;
[/fake]
And let's say that none of these 75 objects are the same (unlike represented above). Yeah. Have fun with that.
Edit: And no, it has nothing to do with 3D.
Edit: If this message is severely too long, please just edit the second bit of fake code to read "/* previously listed fake code 75 times */", and sorry for the length. Just representing what I would actually have to type... I won't do this again.