Staredit Network > Forums > Portal News > Topic: I need code.
I need code.
Sep 13 2007, 10:11 am
By: Forsaken Archer  

Sep 13 2007, 10:11 am Forsaken Archer Post #1



I need code in C++ to take a .chk file and break it down into sections, and get the data that SEN needs (map size, tileset, description, forces, force make up (humans, computers)) and prints it out in whatever format I can break it down with in PHP. The furthest I got was seeing that TYPE exists. The more different examples I have = the better. Even if someone gives me the "perfect code", I still wouldn't mind seeing how you did it.

Code is for linux.

Post has been edited 1 time(s), last time on Sep 13 2007, 12:30 pm by isolatedpurity.



None.

Sep 13 2007, 10:37 am Fierce Post #2



You could try and get Yoshi on that, I think LW and someone else helped him with it.



None.

Sep 13 2007, 10:49 am Forsaken Archer Post #3



Numerous people can do this...
I'm just not one of them :)



None.

Sep 13 2007, 1:07 pm Falkoner Post #4



Yoshi just combined OS Map into the system, ask him how it was done, that's probably the easiest way, since he's pretty much the only one who actually has the code already set up.



None.

Sep 13 2007, 1:42 pm Doodle77 Post #5



Why do you want it in c/c++? See pack and unpack



None.

Sep 13 2007, 2:58 pm spinesheath Post #6



I don't have exactly the code you need (main issue: windows code), actually splitting the .chk into sections is really simple.
pseudocode:

Code
Copy the whole .chk into an array

while(not at end of file)
{
   Read 4 bytes into SectionHeader
   Read 4 bytes into SectionLength
   if(SectionHeader == known one)
   {
        Copy SectionLength bytes into a predefined structure, one for each Section. Maybe add some validification
    }
    Set the pointer to the end of the section you dealt with just now
}




This will skip all the "sections" added for protection (don't worry, there are other means of protection), and you can easily skip a few sections that you don't need, too.
If you copy the section data into structures that have their elements in just the same order as the data in the .chk is, you can really just copy the data over after checking the SectionLength.
This "code" can also easily read multiple terrain sections properly and stuff like that.

Edit: Errmm, fix the CODE tag pls...



None.

Sep 13 2007, 4:32 pm Demented Shaman Post #7



Using OSMAP the program will make it so any type of protected map can be uploaded. I think that's what would be best for the database.

Also, should save a lot of trouble. Why reinvent the wheel?



None.

Sep 13 2007, 5:44 pm Forsaken Archer Post #8



1. Osmap runs in vbasic. I do not like vbasic.
2. We do not use windows anyways.

Those php functions might be useful, thanks. I wonder if it would just be easy to parse the chk in php.l

I have it working with (a lot of) clokr_'s help. But I ran into a small problem. Hopefully by tonight I will have a script where you can upload maps and it'll attempt to break your map down.
I still wouldn't mind seeing someone else's linux code though :).



None.

Sep 13 2007, 8:10 pm Twitch Post #9



Quote from isolatedpurity
1. Osmap runs in vbasic. I do not like vbasic.
2. We do not use windows anyways.

Those php functions might be useful, thanks. I wonder if it would just be easy to parse the chk in php.l

I have it working with (a lot of) clokr_'s help. But I ran into a small problem. Hopefully by tonight I will have a script where you can upload maps and it'll attempt to break your map down.
I still wouldn't mind seeing someone else's linux code though :).
Hey leave VB alone its just as good as anything :).



None.

Sep 13 2007, 8:35 pm spinesheath Post #10



VB is crap. Slow as hell.



None.

Sep 13 2007, 8:39 pm O)FaRTy1billion[MM] Post #11

👻 👾 👽 💪

RexyRex may be a good person to ask about this as she has done a lot of it...

4 byte string Name, 4-byte unsigned int Length, then Length bytes. For incrementing the pointer, just do pointer+Length+8.

If you ask nicely, I may set up some simple PHP thingy to parse CHKs and get specified data from them.

Post has been edited 1 time(s), last time on Sep 13 2007, 8:45 pm by FaRTy1billion.



TinyMap2 - Latest in map compression! ( 7/09/14 - New build! )
EUD Action Enabler - Lightweight EUD/EPD support! (ChaosLauncher/MPQDraft support!)
EUDDB - topic - Help out by adding your EUDs! Or Submit reference files in the References tab!
MapSketch - New image->map generator!
EUDTrig - topic - Quickly and easily convert offsets to EUDs! (extended players supported)
SC2 Map Texture Mask Importer/Exporter - Edit texture placement in an image editor!
\:farty\: This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!

Sep 13 2007, 9:08 pm RexyRex Post #12



How about this?
http://75.83.16.184/sc_chk/

Choose a map then click 'session' to dump everything in memory, which is the STR and UNIT section.


Would you like the source? Using it as a guide it'd be fairly easy to follow the CHK specification here or at Maplantis and just finish it.



None.

Sep 13 2007, 9:11 pm Forsaken Archer Post #13



You know... I found that website while googling around. I was like "hey... wtf... what's this... IT'S EXACTLY WHAT I'M TRYING TO DO DAMN IT!!!"
You mean, that's you? ;o
What's it written in?



None.

Sep 13 2007, 9:12 pm RexyRex Post #14



It's all PHP. I use WinMPQ to extract the CHK.



None.

Sep 13 2007, 9:14 pm Forsaken Archer Post #15



Is that actually working off your computer? Like, is that download folder your download folder as of right now? Very sexy. Hell, we don't need SEN, we just need everyone to run that script and just link us all together ;o.

Sure, I'll love to have your source.



None.

Sep 13 2007, 9:25 pm RexyRex Post #16



Yeah, it's all live from my computer...

Anyway the script is still fairly incomplete. It doesn't check any of the headers and is still pretty vulnerable to certain protections. LegacyWeapon was starting to help me with that but I haven't worked on the project in ages. Also, the AJAX work was a little thrown together and sloppy. What else... It does log every visitor that at least extracts a map.

Yeah I should probably be telling you this in a PM with the source huh. TTYL :D



None.

Sep 13 2007, 9:52 pm Falkoner Post #17



OS Map 2 isn't VB, so you could use that once all the kinks are worked out.



None.

Sep 13 2007, 10:02 pm RexyRex Post #18



The headers you should be looking into are 'OWNR', 'ERA ', 'DIM ', 'STR ', 'SPRP', 'FORC', and maybe 'COLR'



None.

Sep 13 2007, 10:46 pm LegacyWeapon Post #19



Quote from Falkoner
OS Map 2 isn't VB, so you could use that once all the kinks are worked out.
It's not?



None.

Sep 13 2007, 11:40 pm Forsaken Archer Post #20



So that's how you get all your minerals Falk... you reply to everything without even knowing what you are saying? ;o



None.

Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[03:08 pm]
Sylph-Of-Space -- woah! nice! thank you!
[04:05 am]
O)FaRTy1billion[MM] -- the setting exists, it's just hidden in a weird place
[04:04 am]
O)FaRTy1billion[MM] -- instead change "Microtile Overlay" to "Impassable"
[04:04 am]
O)FaRTy1billion[MM] -- er, wait, idk why i was looking for height
[04:03 am]
O)FaRTy1billion[MM] -- below the minimap should be a thing that says "Overlay Settings" with a little + button in the corner, press the + to expand it, uncheck Use Defaults, then change "Tile Overlay" to "Height"
[03:57 am]
Sylph-Of-Space -- Unless I'm dum (possible)
[03:57 am]
Sylph-Of-Space -- It would be so so so nice if SCMDraft had some kind of dedicated "walkability" view for the tilesets.
[03:53 am]
Sylph-Of-Space -- :'( dont cry for me cat-gentina
[09:18 pm]
Ultraviolet -- 🔪🐈
[2024-5-19. : 12:34 pm]
NudeRaider -- curiosity kills the cat!
Please log in to shout.


Members Online: Sylph-Of-Space, Roy, Excalibur