Don't ask me, I just code
Original Poster
#1 Old 8th Aug 2009 at 2:40 PM Last edited by HugeLunatic : 1st Feb 2021 at 8:52 PM.
Default s3oc Cloner
This tool is now obtained and supported via http://www.simlogical.com/ContentUp...s/190/index.htm
One horse disagreer of the Apocalypse
#2 Old 8th Aug 2009 at 5:26 PM Last edited by pljones : 16th Aug 2009 at 2:00 PM.
0907-18-1004 -- latest rev:199
General
  • Rename to "Sims3 Object Cloner" / "s3oc"
  • Includes latest s3pi library.
  • Help->Contents now displays the manual.
  • Checkbox to select default textures only. Checkboxes appropriately enabled and set depending on mode.
    Commit renamed to Save.
  • Don't crash if Sims3 folder has moved: prompt for new location
  • Oops: Prompt for user name if not set



Choosing an object to work on
  • Focus on first item in object list at the start (Single item selection interface added to ObjectChooser)



Stepping through the process
  • Step 2: By default, don't clone any OBJD-referenced resource except OBJK.
  • Step 3: Simplified as OBJK resource now retrieved in step 2.
  • Step 4: Just check for "modelKey" entry name.
  • Step 5: Skip step 5 by default. In any event, only clone Preset XML.
  • New step 8: Clone TXTC-referenced resources.
  • Step 9 (was 8.): By default, only clone THUMs in group 0.



Cloning
  • Cloning gets DDS names from FB2.



Making the object unique
  • Allow renumbering of OBJD (and related) instance to be disabled.
  • Display a nicer "OK" box after Fix
  • Oops: Add in the code to update TGIs within resources! Dig into *any* enumerable field, not just IList<T> ones, both for slurping TGIs and for updating TGIs.
  • Fix: if name or desc keys don't change, don't crash. (Always "update" GUIDs. Remember the GUIDs on first reading them, so don't need to reread objd for them.)
  • Do not renumber null TGI (TGI struct has full equality testing support).
  • (Minor source tidy ups: renamed a variable; removed unused flag; remove unused RCOL list; add an enum for LastInChain indicating end of RCOL-linked steps).



-------------------------------------------------------
0907-21-1016 -- latest rev:216

Add F1 shortcut for Help->Contents.

Move overview tab details to details tab (and rename everything).

Add overview items to overview tab (including large thumb, English catalogue strings an object price)

Allow thumbnail images to be replaced (Fix mode).

Allow object price and catalogue strings (in English, optionally copied to all) to be edited (Fix mode).

Option to have *only* the catalogue details updated (Fix mode). Skips past all intermediary steps. (And quite a lot of the last step.)

Checkboxes now disabled earlier in process to tie in with where they have effect.

Change Start button short cut so it doesn't clash with Settings menu.

Automate pressing of >>>Next>>> button.

Make "Please wait" text bigger.

"Please wait" text for save and fix amended.

Use Creator Name as prefix to object name for default package name when saving clone.

Forget the previous package name when doing File->Open...

Default unique object name is just the package name.

Prompt for unique object name on Start rather than File->Open...

Failure to give a unique object name now just returns to the object chooser, rather than closing the package.


Package the source for this project rather than some random other one...

Fix: if nameGUID and descGUID were the same, duplicate oldToNew key error was raised; no longer using the map for these values. (Introduced an opportunity for further improvement...)

Try to make closing the application window not crash the application. (The opportunity to fix this still exists...)

Remove ancient and unused "Packages_PATH" setting

Move "getImage" methods to MainForm as static methods.

Get rid of "setThumbPackage" - make ThumbPkg a property that does the same.

Cache English STBL while package open.

Make closing a package consistent by putting the code into a method and calling it.

-------------------------------------------------------
0907-21-1152 -- latest rev:217
[#]Oops: Update STBLs with newNameGUID/newDescGUID so strings actually work...
[#]Also use Item.Commit() to save images.
[#]Include updated Help

-------------------------------------------------------
0907-24-1554 -- latest rev:232

Use xanathon's S3OC icon -- thanks!

Catalog Flag fields
Additional fields
Validation of Price (and new hex fields)
Reorganised tab code a bit
Price should be read-only except when fixing
Update catalog item from new fields

Packaging tidy up: use ${tla} more often to reduce diffs between mknsis.nsi for OC and PE.

-------------------------------------------------------
0907-25-2143 -- latest rev:247

Progress bar and text had gone AWOL; restored

String fields had become too short; restored

Added new option to create missing languages (as copies of English) when cloning

Rename CopyableMessageBox project to CustomForms; use updated version.

-------------------------------------------------------
0907-29-1852 -- latest rev:263
This version is Patch2-ready -- PLEASE UPDATE

Add package compression by default. (Thanks to Tiger for the compression code.)

Add support for Sims3 Patch2. S3OC now has an ini file ("s3oc.ini" in the same folder as the .exe).

Add support for localised help files.

Tiny source "fix": added a space...

"You can do refraction by raymarching through the depth buffer" (c. Reddeyfish 2017)
Don't ask me, I just code
Original Poster
#3 Old 8th Aug 2009 at 5:29 PM
s3oc_0908-08-1553 -- latest rev:311

New (experimental) "Cloning" menu.
- (Nearly) all CatalogResource types.
- Modular Resources (display as their zeroth OBJD).

File->Open now displays all CatalogResource types in the package.

Changes to handle switching between the type of resource being worked on.
- what steps get run
- what information is displayed
- where thumbnails are found

UI tweaks to what happens after Save.

Process command line arguments: "help" and "test", where "test" makes ckbDefault visible.

Add Large Thumbnail TGI below the thumbnail. (Zero when not applicable.)

Move Product Status to Details tab (so it's always available).

Renumber cloned STBLs to end 0000.

Fix: Renumber "key:" references in XML files.

Fix: need Catlg_Self for Catalog Details Only fix.

Fix: PngInstance should be fixed.

Fix to handle fetching fewer than 100 thumbnails.

Handle wrapper exceptions more elegantly.

Handle exceptions when saving cloned package more elegantly.

Add ModularResource.
One horse disagreer of the Apocalypse
#4 Old 16th Aug 2009 at 12:55 PM
If anyone has a tutorial that involves s3oc, you will need to update it soon for the new cloner interface. I can let you have a preview of the tool before general release, if you contact me.

"You can do refraction by raymarching through the depth buffer" (c. Reddeyfish 2017)
Don't ask me, I just code
Original Poster
#5 Old 19th Aug 2009 at 7:21 PM
0908-19-1854 -- latest rev:333

Updated help!

Relabel Cloning and File->New menu items and fix typo.

ObjectChooser displays tag as well as TGI.

Complete overhaul of process flow - clone and fix now merged.

UI changed to support this - options panel expanded and rearranged.

STBLs can now be padded whether cloning or not.

Thumbnails are now optional.

Menu updates: add shortcuts to Cloning menu; remove File->New shortcut as it's Cloning->Normal Object - Ctrl+N; and add shortcut on Help->Contents.

Where a string GUID lookup fails and we're padding STBLs, output an empty string.

Only change catalogName and Desc and renumber GUIDs when renumbering.

Fix format of STBL _KEY entries.

Stabilise splitter creep.

Many other minor changes - see SVN commit logs.
Don't ask me, I just code
Original Poster
#6 Old 12th Sep 2009 at 11:29 AM
0909-12-1121 -- latest rev:343

Set compression status absolutely before save. (i.e. not just *to* compressed.)

Remove some commented out code. Add TabEnable(false).
Fix off-by-one error in lastInChain calculation.
Add reference to OBJK; directly fetch modelKey value for VPXY index.
Don't ask me, I just code
Original Poster
#7 Old 13th Sep 2009 at 12:01 PM
0909-13-1134 -- latest rev:364 FIXES CRASH BUG WITH TREES

Filter what gets added to vpxylist from OBJK -- trees don't just have VPXY resources.
Don't ask me, I just code
Original Poster
#8 Old 19th Sep 2009 at 7:19 PM
0909-19-1830 -- latest rev:370

CTPT (terrain paintbrushes) now pick right partner.
Don't ask me, I just code
Original Poster
#9 Old 11th Oct 2009 at 10:55 AM
0910-11-1046 -- latest rev:374

Avoid STBL IID clashes for similarly-named objects.
Don't ask me, I just code
Original Poster
#10 Old 12th Oct 2009 at 4:50 PM
0910-12-1531 -- latest rev:377

Tidy up tab order in options panel.

Stop orphaning thumbnails on renumber.

Slight oops. Roof patterns are identified by the PngInstance in the Common Block of the catalog resource. Everywhere else, I check whether PngInstance is set and use it - except I missed it for replacing the PNG!

Also took the opportunity to:
a) replace lots of
((AApiVersionedFields)selectedItem.Resource["CommonBlock"].Value)["someVal"]
with
selectedItem.Resource["CommonBlock.someVal"]
which makes the code easier to read (and saves a call to the library - not that it's slow).
b) get rid of array catalogTypes (which I was subscripting into to get type numbers) and use an enum instead, again making the code much more readable. This lead to some rework on the menu code.
Don't ask me, I just code
Original Poster
#11 Old 1st Nov 2009 at 10:23 AM Last edited by pljones : 1st Nov 2009 at 10:34 AM.
0910-31-2006 -- latest rev:377 (released 1 November)

Rebuilt against latest s3pi for TypeCode01 fix. Was breaking textures.
Don't ask me, I just code
Original Poster
#12 Old 1st Nov 2009 at 3:50 PM
0911-01-1539 -- latest rev:377

Rebuilt against latest s3pi for re-implemented TypeCode01 fix.
Don't ask me, I just code
Original Poster
#13 Old 26th Nov 2009 at 2:28 PM
0911-25-1728 Released 26 November -- latest rev:406

Replace "struct TGI" with "class RK" which implements AResourceKey, allowing concrete instances of IResourceKey to be created and supplying a static zero key.
Amend "struct RIE" to use IResourceKey.
Amend "class Item" to use IResourceKey.

Oops: append override locations to InstallDirs setting

Generally replace use of "struct TGI" with IResourceKey except when a concrete instance is required.

Where a THUM is not found, its ResourceKey displays as zero.

Add EPFlags column to ObjectChooser.

Legacy File->New removed
Cloning menu checkmark removed
Fixed bug that prevented switching back to resource list in some circumstances
Oops: add settingsToolStripMenuItem to tsMD

Created SettingsForms subfolder
Move StringInputDialog to SettingsForms

Settings menu "Sims3 Installation Folder..." changed to "Game Folders..."

New "Game Folders" form to capture install dirs, with Reset button.
Check after editing a path whether it enables all the expected files to be found and warn if not.

Replaced test of valid InstallDir per EP with check that ini_fb0/fb2/tmb not null and ini_fb0.Count > 0; don't popup Game Folders dialog here, just issue a message.

Introduce dependency on SemWeb (may change to include this in the project for simplicity).
New ini file written in Turtle
Large amount of code to handle Turtle ini file

Sims3Folder setting removed
InstallDirs setting added for overrides to the defaults
EPsDisabled setting added for overrides to the config file values
Don't ask me, I just code
Original Poster
#14 Old 1st Dec 2009 at 1:52 PM
0911-28-1711 Released 1 December -- latest rev:407

Make sure we look in the folder containing s3oc.exe for s3oc-ini.ttl.
One horse disagreer of the Apocalypse
#15 Old 6th Dec 2009 at 1:30 PM
Please read important warning http://forums.modthesims.info/showthread.php?t=381099

"You can do refraction by raymarching through the depth buffer" (c. Reddeyfish 2017)
Don't ask me, I just code
Original Poster
#16 Old 10th Dec 2009 at 6:42 PM Last edited by pljones : 27th Jan 2010 at 8:09 AM.
0912-10-1839 -- latest rev:408

*FIX FOR BLUE LOTTING INCLUDED FROM S3PI*

Thanks to Delphy for spotting the bug providing this tool for repairing the damage S3OC has been causing. Please accept my apologies!

Fix: If there's no NameMap in the package, create one (using the IID of the catalog object).
Don't ask me, I just code
Original Poster
#17 Old 13th Dec 2009 at 5:51 PM
0912-13-1531 *Fixes TerrainPaints for Patch / EP1* -- latest rev:408

Respin to pick up TerrainPaintBrushCatalogResource fix.
Don't ask me, I just code
Original Poster
#18 Old 10th Jan 2010 at 11:51 AM Last edited by pljones : 12th Jan 2010 at 11:25 AM.
1001-02-1835 Released 10 January -- latest rev:423

Don't renumber brush pairs if not renumbering.

Pick up latest s3pi.

Shouldn't have been released.
Don't ask me, I just code
Original Poster
#19 Old 12th Jan 2010 at 9:37 AM Last edited by pljones : 12th Jan 2010 at 11:42 AM.
Please note there are problems with 1001-02-1835 version that are currently under investigation. Please continue to use 0912-13-1531 version until the next update.

-edit- The 1001-02-1835 version contained code still in development and shouldn't have been released. Take care with Terrain Paints: you probably do want to renumber but be aware of the issue if you're thinking of making an override object (for a terrain paint, why??!).
One horse disagreer of the Apocalypse
#20 Old 12th Jan 2010 at 5:40 PM
Anyone who used the 10th Jan release to make game content should redo their work. Sorry.

"You can do refraction by raymarching through the depth buffer" (c. Reddeyfish 2017)
Don't ask me, I just code
Original Poster
#21 Old 21st Mar 2010 at 10:24 AM
Default Re: s3oc Cloner - Updated 21 March 2010
1003-06-2138 Released 21 March 2010 -- latest rev:476

Remove EPFlags/ContentCategoryFlags from everywhere.
Implement local support for ignoring the top byte of ResourceGroup when matching RKs.
New "Exclude Common Resources" check box (with details in the .ttl file).
Display "s3oc [busy]" when actively busy.
Add "[busy]" tag and hourglass pointer when updating Tabs.
Tick boxes under "Create Clone" disabled for "Open Package".
Include SP1 (High End Loft stuff).
Enable x64 build environment.
Update to VS2010.
Fix: Replacing thumb in MDLRs caused error.
Fallback TGI changes
- All index fields display TGI values on Details tab
- Fallback TGI entry does not get renumbered on OBJDs
- OBJDs referenced from an OBJD are never cloned
- When cloning, set fallback for clones of basegame OBJDs with no fallback TGI

------
1001-02-1835
latest rev:423

Don't renumber brush pairs if not renumbering.

Pick up latest s3pi.
---
1001-16-1637
latest rev:431

Change terrain paint subcategory when cloning; rewrite label mapping stuff.

Pick up latest s3pi.
---
1001-30-1249
latest rev:437

Replace exception messages with calls to CopyableMessageBox.IssueException().
MainForm.cs: Include VPXY kin in default resources.
---
1002-13-1333
latest rev:442

Replace "do not renumber catalogue IIDs" with "use 32bit OBJD/OBJK IIDs".

Code tidy up: move XML renumber code to UpdateRKsFromXML().
Code tidy up: Rename some SlurpTGIs to SlurpRKs.
New Slurp: SlurpRKsFromXML(), iterates over vpxyKinItems and Slurps their contained RKs.
SlurpKindred() adds to vpxyKinItems list.
New Step: VPXYKin_SlurpRKs, called for OBJDs, Common Catlgs, CWALs
Catlg_getVPXY, OBJK_getVPXY initialises vpxyKinItems.

Pick up latest s3pi.
Don't ask me, I just code
Original Poster
#22 Old 21st Mar 2010 at 2:31 PM
1003-14-1747 Released 21 March 2010 (second time lucky, eh?) -- latest rev:480

Oops: not everything ending "Index" is an TGIBlockList index.
One horse disagreer of the Apocalypse
#23 Old 21st Mar 2010 at 2:32 PM
I thought we had that one (14th March) up in the QA, I had not realised it was still the 6th March one - that's why I told him to release it Naughty testers you should have spotted the bug!

"You can do refraction by raymarching through the depth buffer" (c. Reddeyfish 2017)
Locked thread
Back to top