[updating procedure]
* unzip mw4-03-11-27.{bin & src} to new directory on hard disk 
* overwrite current version(v5.02?) with unzipped files...
  - before overwrite, remove same(name/size/contents) files from unzipped dir/files, if possible, using wincmd(==now renamed to totalcmd).exe
  - before overwrite, check what is changed!
  - before overwrite, make backup for safety!

[contents of mw4-03-11-27.bin]
* precompiled .exe...
  - profile version mw4.exe : mw4-Pro.exe
  - profile version mission editor : MW4Ed2-Pro.exe
  - profile version effects editor : PixelWhipPro-Pro.exe
  - do you need any other tools?

* changed/added files for /Content, /hsh, /resource...
  - I compared all files in binary with 5.02 version(on DVD) & zipped changed/added/... files only
  - so you should overwrite files on previous version...

* /hsh/coop/*.* is added for single coin version - COOP(==COin OPerational)
  - now .png file is supported for shell scripts
  - in photoshop, if you save image as .png then alpha channel will be saved automatically...
    - this is why I enabled .png instead of .tga(manual alpha saving required for .tga)

* /content/*.build & /content/skies/skies.hint
  - campaign maps(used in /content/campaigns/campaign.campaign) should be included for COOP version
  - check /content/*.build!!!

* /fonts directory added for shell scripts
  - currently I may use only h_keybd.ttf in gs_multi_id.script
  - but some .ttf font was used to make /hsh/coop/*.png files...
  - install .ttf files at least h_keybd.ttf using control panel(fonts / install)

* /hsh/hud/{mech names}.bmp is re-saved for correct image-format...

* /resource/missions/*.nfo
  - all missions should use Stock??? gametype not Custom???
  - ConLobbyMission.script & HostLobbyMission.script won't correctly run for Custom??? gametype at first...
  - because in mw4/code/mw4/mwapplication.cpp, default gametype is initialized as StockAttrition // m_ruleType = StockAttrition;

   * see ???LobbyMission.script :
   * at first all missions have no Custom??? gametype, so o_game_options[1](==mission names) will have no entry for that gametype...
   * ???LobbyMission.script calculate the count of senario(s) using current gametype as like below lines
   callback($$GetsenarioCount$$, custom_to_standard[j])
   int temp_game = callback($$GetLocalNetworkMissionParamater$$, game_type)

  - in addition Content/ABLScripts/miscfuncs.abl contains SetupScoring_...() that is called via  Content/ABLScripts/StockScripts/Stock_....ABL
   * if you really want to use Custom??? gametype then you should describe .script file name in Content/missions/{mission name}/{mission name}.instance as script=....abl

  - in addition mw4/code/mw4/mwmission.cpp OldMission() has been changed for correct .abl.....

* /reource/UserMissions/s1s?.*
  - COOP version is implemented as a .campaign.
  - currently I just use /content/campaigns/Campaign.Campaign for simplicity but someday(^^) I'll make own custom campaign...
  - /Content/Tables/missionnames.tbl is changed
    - /resource/missions/{0101/0102/0103}.mw4(=original campaign missions) is replaced /resource/UserMissions/{s1s1/s1s2/s1s3}.mw4(= COOP missions)
  - {s1s1/s1s2/s1s3}.build is added to /Content/MechWarrior4.build
  - other campaign maps & missions is re-added to /Content/MechWarrior4.build

* /content/campaigns/Campaign.salvage is changed
  - medium/heavy mechs is initially selectable for COOP game

* ER/Clan version weapons/effects .data file is included for safety
  - I didn't touch these files ever & I don't know why ER/Clan weapons are so...^^
  - I think ER/Clan weapons both should be used...
    - if not wanted then just edit {mech names}.subsystems...
  - ?

* /content/missions/{s1s1/s1s2/s1s3} is added
  - s1s1/scripts/s1s1.abl is main-mission-script(s1s2.abl & s1s3.abl is very similar with s1s1.abl)
  - other script files are same for these 3 missions : AttackHero.abl/NoAttack.abl/player.abl

* /content/shellscripts/*.script
  - gs_*.script are for COOP version
  - variable tables in .script are initialized by mw4/code/mw4/mw4shell.cpp:TBL_GetResNames(...)
  - see mw4/code/mw4/mechspecs.{cpp/hpp}

* /content/shellscripts/netloading.script // for CONSOLE VERSION....
  - user's mech is displayed while loading...
  - (Jump Jet/LAMS/AMS will be display on bottom of mech if that subsystem is equipped)
  - display quality is not good for hard-disk-accessing while loading....

* /content/shellscripts/mainmenu.script
  - if you downloaded Final(lighting).avi then you can change mainmenu.script for .avi play in mainmenu
  - move Final(lighting).avi to /hsh/coop
  - find s_lighting_movie and change 

  - uncomment below
		//if callback($$CTCL_CheckCOOP$$) // temporarily disabled : big- "Final(lighting).avi"
        //    object o_lighting_movie = s_lighting_movie

  - comment below
        #if 1 // temporarily enabled // for big Final(lighting).avi
		object o_mainscrn_ctr		= panedisplay
		o_mainscrn_ctr.filename		= "hsh\\coop\\mainscrn-ctr.png"
		o_mainscrn_ctr.location		= 0, 285, 1
		o_mainscrn_ctr.panecolor	= packcolor(255, 255, 255, 255)
        o_mainscrn_ctr.alphatype    = -1
		initialize(o_mainscrn_ctr)
        #endif

* /content/shellscripts/net{lobby/client}.script
  - multiplay game in COOP version will share these files with "mw4 -dragon" version
  - I'm working on these files
  - multiplay game in COOP version is not finished yet...

[changes in ctcl.ini for COOP version]
* add pod information for self in [teslas] of ctcl.ini
  - ex) in pod tesla1(100.100.100.101), c:\ctcl.ini of tesla1 should include

    [teslas]
    100.100.100.101=tesla1,tesla1  ; <- this line is required for further usage...
    100.100.100.102=tesla2,tesla2  ; other teslas...

  - in COOP version there is no console, so every pod will act as like console & act like as normal pod too..
    - in COOP verison, program will automatically invite PODs listed in [teslas] of c:\ctcl.ini for multiplay game
  - CONSOLE version will just ignore that self-pod-information if supplied(but old versions won't ignore)

[contents of mw4-03-11-27.src]
* basically all source files are zipped in this file...
  - following 3 sdks are not included
    - mw4/Libraries/3dsmax2, mw4/Libraries/3dsmax4, mw4/Libraries/PHOTOSHOP5.0SDK
  - all assets directory is not included...
* I ony use /mw4/code/MechWarrior4.dsw for developement
  - other .dsw files is not touched & may be not necessary....

[mw4.exe options added]
* "-#coop {integer number}", ex) "-#coop 0", "-#coop 1", "-#coop 2"...
  - act as COOP version & {integer number} will be coin count for 1 credit...(0 for no coin test)
  "-coop" means "-#coop 1"
  - if -#coop is defined then "-ctcltype -2" also defined automatically.

* "-jpd" for Joystick Pointing Device
  - if specified then joystick will act as mouse.... for COOP version...

* "-tmfds {integer number}" 
  - 0 - no MFDs
  - 1 - orginal(5aux + 1radar = dual & single, 2 PCIs) - for CONSOLE(actually COOP version can specify this value if 5 auxs exist...)
  - 2 - B&W(3aux + 1radar = 1 dual PCI) - for COOP
  - 3 - color(3aux + 1radar = 2 dual PCIs), reserved & not finished yet.
  * default is 1

* "-trio {integer number}" 
  - 0 - original VWE RIO board(default)
  - 1 - original VWE RIO board
  * default is 0

* "-capdev {integer number}" - if PrintScreen key pressed then Capture witch screen?
  - 0 - main, 1 - radar, 2 - mission review
  - 3 - hudchat(left/top), 4 - nav(top/center), 5 - weapon(right/top)
  - 6 - target(left/top), 7 - armor(right/bottom)
  * default is 0
  * currently target(left/top) screen has a problem(when -3dt ?), I'll fix later
  * {var screen name}####.bmp will be saved in mw4.exe directory...
  
* "-rbjump" - red button of throttle will act as jump
  - pushing throttle forward makes mech go forward
  - pushing throttle backward makes mech go forward
  - forward 7 : 3 backward....
  * no default...

* "-suicide" if specified then you can eject anytime!!! for testing purpose...

[changes in CRIOMAIN.cpp for COOP version]
* in COOP version, hud-damage buttons(0/1/2/3/7) disabled
  - lightamp/flush/zoom/jump/mute.... (no lamp & no-aux-button-label for these functions)
  - "fire group 3" buttons on joystick will act as "View mode change"
    - {raven/cougar/osiris}.subsystems has "groupindex=3"
    - Should I hide group-3-weapon state right-side of cross-hair?
    - so these mechs should re-assign group 3 weapons to group 1 or 2...
  - COOP(arcade version) should be fixed key-configuratons?
  - any idea?

[copysafe.bat]
  - copysafe.bat is copied to below 4 project directories
  - for "attrib & copy" command
  - mw4/code/mw4.dsp / mw4/cpde/comwnd.dsp / mw4/code/MissionLang.dsp / mw4/code/ScriptStrings.dsp

[/Mw4/Libraries/Server]
* Server -> restored back to comline...
  - This directory was comline in original version & I changed directory name temporarily as server in previous verison
  - now I restored back Server to Comline & made 2 sub-directories(Server & Client) for clear compilation & linking...
  - just for visual sourcesafe problem, don't care!!!

[running COOP version]
* run as like "mw4.exe -jpd -#coop 0 ..."

* select "singleplay" or "Multiplay"

* if singleplay selected then you can select mech & it's camo using joystick-HAT
  - left/right for mech, up/down for camo (HAT will be used as cursor keys for various gosscript shell screen)
  - joystick-gun(fire-group-1) for choice ok(in game too).
  - joystick-thumb(fire-group-2, missile) for ESC(in game too).
  - on bottom of mech-image there will be "Jump Jet / LAMS / AMS" text if equipped.

* singleplay have 3 waves(4 sub-stages(1/2/3/4) for each wave), currently s1s1/s1s2/s1s3 missions
  - wave : one big-mission separated small sub-stages(1 loading for 1 wave, no loading for each sub-stage)
    - so 1 wave have to get 1 map..., each sub-stages can be played in different regions on single map
    - basically wave is controlled in .CPP(by making new game) & sub-stages are controled by .abl script

  - s1s1.mw4 means senario 1(currently no other senario yet), stage(=wave) 1

  - someday other senario/wave will be added..

  - on wave startup(beginning of sub-stage 1) at 1-1, 2-1, 3-1
    - Player's mech will be dropped

  - at the beginning of each sub-stage, briefing screen will be displayed
    - all pop-up screen will be hidden after 3 secs(after displaying all data)
    - mission time & enemy count...

  - in game state various information will be displayed at upper/right corner...
    - "total score" will be displayed
    - "remaining time" will be displayed
    - "enemy-destroyed / enemy-total" will be displayed

  - at the end of sub-stage, score screen will be displayed
    - time-bonus for each sub-stage = 3000 + (mission_time - mission_play_time) * 50 // see /content/shellscripts/gs_PauseModalCampaign.script
    - destruction bonus for each sub-stage = 15/20/30/100 % armor repair for 4 sub-stages
      - currently destroyed sub-system is not restored....(ex) weapon... I'll fix!!!
      - currently gimp state is not restored... I'll fix!!!
    - after boss-sub-stage we should launch next wave(actually new game) so we should repair 100% ^^
      - someday I'll store/restore mech's state to/from hard-disk.... but really required?

  - at the beginning of boss-sub-stage, boss will be dropped... at 1-4, 2-4, 3-4....

  - if boss is destroyed(for wave 1 & 2) then bonus-sub-stage will be played(not yet finished)

  - var information is passed to next wave( mwapplication.hpp m_nCamp_...)
    - total score/total play time/mech selected in previous wave
    - last g_nInputMode(beginner/advanced/expert)
    - last view mode(1st/3rd persion...)

  - after game-over, high-score-screen will be displayed.
    - if you achieve high-score then "Enter Your Name" screen will be displayed...

  - (high-score/trainning .avi/game-screen .avi) will be displayed in idle time...
    (not yet finished)

* If multiplay is selected then /content/shellscript/netlobby.script will be executed & invitation will be delivered to PODs(listed in ctcl.ini)
  - on creation(including join) of multiplay-game, users should specify their callsign
    - if not specified, then? default-name?
    - I think we should accept blank name...
    - currently, we are building internet ranking server(callsign registration in web) & we should decide these case in few days...
    - unnamed user can be possible in any case, but how do I display that name? 

  - other users(have 1 or more credit, in menu/single-game state not multiplay game) are notified for multiplay game

  - if a user is in single-game & he accepted invitation then he will instantly join multiplay game using /content/shellscript/netclient.script...
    - no credit needed...
    - currently in single-game you could not be invited, I changed something & not operational currntly, I'll fix this...

  - if a user in menu state & he accepted invitation then he will instantly join multiplay game using /content/shellscript/netclient.script...
    - one credit is decremented...

  - currently multiplay game is not finished yet...

[content/missions/s1s1/script/s1s1.abl : COOP script]
* various .abl functions is added at the end of mw4/code/mw4/ablxstd.cpp
  - SetDmgModifier(group-or-object, type, damage-factor)
    - type : 0 - for normal damage, 1 - for splash damage
    - damage-factor: 10000 for normal-damage, 1000 for 1/10 damage, 100000 for 1000% damage...
    * for players use 1000-10000, for enemy mechs use 15000-500000
    * if very high damage factor is used for enemy, then you can do one-shot one-kill...

  - GetCOOP/SetCOOP : global memory get/set for var information(will be used in mw4.exe, .abl, .script)
    - GetCOOP(-1) will return current wave number....

  - GetTime/GetTimeX/IGetTime/IGetTimeX - time functions

* all enemys should be placed on map, using mission-editor(mw4ed2-pro.exe)
  - on mission start, enemys are grouped for each-sub-stage
  - on mission start, All enemys are hidden by TeleportToHell(at s1s?.abl)
  - on sub-stage start, enemys are restored at original position using teleportAndLook(at attackhero.abl, using GlobalTrigger...)
  - on sub-stage start, player mech is posigned using teleportAndLook(at s1s?.abl)
  - each popup screen is displayed in mwapplication.cpp by check GetCOOP(COOP_MODAL_START, ...)
    - actually all popup screen is handled at /content/shellscripts/gs_PauseModalCampaign.script
  - popup screen's result is returned at GetCOOP(COOP_MODAL_IS_ENDED)
    - 0 for not-ended or popup-ended, -1: cancel, +1: ok...

* s1s2/s1s3.abl is very similar with s1s1.abl(actually s1s3.abl is same with s1s1.abl)

[mw4ed2-pro.exe]
* you can run mission editor without resource building...
  - mw4ed2-pro.exe -nobuild
    - no missions will be built & error will occur if skies.mw4 is not exist
  - mw4ed2-pro.exe -bldskies -nobldmissions
    - these 2 options added by me and not surpported in previous verion
    - build skies.mw4 & no missions will be built

  * if you supply "-nobuild" or "-nobldmissions" then should you build missions manually using "mw4pro.exe -build ..."
    - you can lose mission changes if you follow next 
      1) save changes in mission editor one or  more times...
      2) quit mission editor
      3) run mission editor again without build missions  <- here you will get previous mission data(not changed)
      4) save mission...  <- here you will lose previous mission-data!!!!

    - this happens because mission editor read mission information using {mission name}.mw4 not using {various text files} in mission directory...

    - you should build missions after 2(before 3) of above procedures...

    - "-nobuild" or "-nobldmissions"  is useful for many cases...
      - actually mission editor try build all missions in /content/{maps & missions}...
      - but some of them may be invalid...
      - in this case you have 2 choice...
        1) move invalid maps & missions to other directory(or just remove)
        2) supply "-nobuild" or "-nobldmissions" & build manually... using "mw4pro.exe -build"
           // in this case, actual map & missions are listed in /content/MechWarrior4.build

   * zoom in region - SPACE-CTRL + mouse-block-select in overview window
   * rotate selected - alt cursor left/right in overview window
   * move selected - cursor keys in overview window
   * zoome in/out specific point - wheel button at that point
   * move screen - SPACE + mouse-down&move

[other tools]
* I'm checking mw4 tools, if any tools is needed let me know...

===============
I'll check my email for hours..
If something goes wrong email me please...^^

have a nice day
