SUBSIM Radio Room Forums

SUBSIM Radio Room Forums (https://www.subsim.com/radioroom/index.php)
-   SH4 Mods Workshop (https://www.subsim.com/radioroom/forumdisplay.php?f=219)
-   -   [TEC] SweetScape 010 Editor (https://www.subsim.com/radioroom/showthread.php?t=239565)

Jeff-Groves 02-01-19 11:27 AM

How to code the faces output.
Given there are 10000 faces? Each line must follow the formula below.
The loop will be slow but should work.
This is NOT actual code but gives the information to code the needed loop.

---C1------ C2------ C3---- C4
f 1/101 102/100 103/201 2/202
f 2/202 103/201 104/302 3/303

C1 = +1/+101
C2 = +1/+101
C3 = +1/+101
C4 = +1/+101

Jeff-Groves 02-01-19 12:09 PM

At first look you may think we need a double loop like for the Textures.
Actually a single loop will work for our needs so speed goes up.

Look close at the faces ints and the pattern.
You may think 8 ints are needed.

propbeanie 02-01-19 12:19 PM

Quote:

Originally Posted by Jeff-Groves (Post 2589436)
It's a problem with floats.
From Graeme at SweetScape............

"The error you are seeing is caused because 'float' is not very accurate for doing a lot of computations. We tried your function in C++ and it gives the same issue. 'float' is just not very accurate and if you switch to 'double' it will be better, although double has accuracy issues as well for lots of computations."
...

Thanks for that Jeff :salute:

Jeff-Groves 02-01-19 12:31 PM

The support from SweetScape is one big reason I pay to stay updated.
:yeah:

Jeff-Groves 02-01-19 12:50 PM

Have you figured out the loop needed to output 10000 faces yet?
And the MINIMUM number of ints needed to do it?
:haha:

If your answer is above 3 ints?
:o
Your wrong!
:03:

propbeanie 02-01-19 02:16 PM

Is there a way to do like a "Do Loop Until EOF"? :salute:

Jeff-Groves 02-01-19 02:29 PM

We only need one looping function to do everything.
I have 3 ints assigned in my loop right now.
2 only control the number of loops I do.
The other is for kicking out the faces information.
I take advantage of the Printf function to do the math.
:03:

Here's an example..............

f=(f+1);
Printf("f %u", f);
Printf( "/%u ", f=(f+100) );

Those lines print out 1/101
That's the first part of a face.

Each line of Printf needs to be coded or numbers go real FUBAR!
What I mean by that is that using f on a single line in Printf can corrupt the data.
By using different lines? It preserves the true value of f for further math.
BUT! We can loop the code to print out all 10000 lines easily.

propbeanie 02-01-19 02:52 PM

Nice. I keep confusing "program code" and "scripting"... In other words, I want to write an application in one fell swoop. You're getting the data and its structure, to be used in an app... baby steps. must take baby steps pb... :salute:

Jeff-Groves 02-01-19 03:00 PM

010 uses a C 'LIKE' code. That means it is not a fully functioning C compliant scripting language.

So it does have it's quirks.

Jeff-Groves 02-01-19 03:26 PM

OK. I lied on the ints needed.
You only need 1 int.
:har:

I'm going to introduce you to Arrays so you understand why I only need 1 int.

//------------------------------------------------
//--- 010 Editor Script File
// RAW to object file add in
// Adds the Faces
//
//------------------------------------------------
// all the code for Faces below

int f[5];
f[1]=10000;





for (f[2] = 0; f[2] < f[1]; f[2]++)
{

f[3]=(f[3]+1);
Printf("f %u/%u\n ", f[3], f[4]=(f[3]+100));

}





It's a cheat I'll admit. But allows a single Printf function to print the information with no corruption of data.

propbeanie 02-01-19 05:10 PM

Say uh, does 010 count from zero for arrays (actually, anything), like ANSI C? :salute:

s7rikeback 12-23-19 04:05 PM

Dat files
 
Hello Jeff,


Would it be possible for 010 to list all T0 / A0 / B0 nodes in each dat, within a folder, like Air or Sea ?


So output could be:
Unit Name T01 / T02 / A01 / B01 / B02 etc.


Without having to open each dat with S3D and count them manually ?


Or a template, so that we could enter our own search functions ?

Jeff-Groves 01-19-20 04:14 PM

The findinfiles function will do that.
Granted you'd need to add some coding to jump past any T01 dds references.

Kpt. Lehmann 03-16-20 05:02 PM

01000110 01110010 01100101 01100001 01101011 01101001 01101110 00100111 00100000 01010100 01100101 01100011 01101000 01101110 01101111 01101101 01100001 01100111 01100101 01110011 00100001

:D:doh::03:


:arrgh!:

Jeff-Groves 03-28-20 10:48 PM

Thanks Kpt. Lehmann
Us Freaking Technomages will carry on.
:03:

I saw a post about removing Map Contacts.
In that post it was stated how much work that would be for several hundreds of ships.

So......
Shall I do a script to demonstrate how that can be done?
:03:


All times are GMT -5. The time now is 07:34 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © 1995- 2024 Subsim®
"Subsim" is a registered trademark, all rights reserved.