{"action":"created","issue":{"url":"https://api.github.com/repos/bwapi/bwapi/issues/673","repository_url":"https://api.github.com/repos/bwapi/bwapi","labels_url":"https://api.github.com/repos/bwapi/bwapi/issues/673/labels{/name}","comments_url":"https://api.github.com/repos/bwapi/bwapi/issues/673/comments","events_url":"https://api.github.com/repos/bwapi/bwapi/issues/673/events","html_url":"https://github.com/bwapi/bwapi/issues/673","id":167983324,"number":673,"title":"Update BWAPI to support Starcraft 1.17.0","user":{"login":"heinermann","id":1966366,"avatar_url":"https://avatars.githubusercontent.com/u/1966366?v=3","gravatar_id":"","url":"https://api.github.com/users/heinermann","html_url":"https://github.com/heinermann","followers_url":"https://api.github.com/users/heinermann/followers","following_url":"https://api.github.com/users/heinermann/following{/other_user}","gists_url":"https://api.github.com/users/heinermann/gists{/gist_id}","starred_url":"https://api.github.com/users/heinermann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/heinermann/subscriptions","organizations_url":"https://api.github.com/users/heinermann/orgs","repos_url":"https://api.github.com/users/heinermann/repos","events_url":"https://api.github.com/users/heinermann/events{/privacy}","received_events_url":"https://api.github.com/users/heinermann/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/bwapi/bwapi/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/bwapi/bwapi/labels/Priority-Critical","name":"Priority-Critical","color":"FFFFFF"}],"state":"open","locked":false,"assignee":{"login":"heinermann","id":1966366,"avatar_url":"https://avatars.githubusercontent.com/u/1966366?v=3","gravatar_id":"","url":"https://api.github.com/users/heinermann","html_url":"https://github.com/heinermann","followers_url":"https://api.github.com/users/heinermann/followers","following_url":"https://api.github.com/users/heinermann/following{/other_user}","gists_url":"https://api.github.com/users/heinermann/gists{/gist_id}","starred_url":"https://api.github.com/users/heinermann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/heinermann/subscriptions","organizations_url":"https://api.github.com/users/heinermann/orgs","repos_url":"https://api.github.com/users/heinermann/repos","events_url":"https://api.github.com/users/heinermann/events{/privacy}","received_events_url":"https://api.github.com/users/heinermann/received_events","type":"User","site_admin":false},"assignees":[{"login":"heinermann","id":1966366,"avatar_url":"https://avatars.githubusercontent.com/u/1966366?v=3","gravatar_id":"","url":"https://api.github.com/users/heinermann","html_url":"https://github.com/heinermann","followers_url":"https://api.github.com/users/heinermann/followers","following_url":"https://api.github.com/users/heinermann/following{/other_user}","gists_url":"https://api.github.com/users/heinermann/gists{/gist_id}","starred_url":"https://api.github.com/users/heinermann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/heinermann/subscriptions","organizations_url":"https://api.github.com/users/heinermann/orgs","repos_url":"https://api.github.com/users/heinermann/repos","events_url":"https://api.github.com/users/heinermann/events{/privacy}","received_events_url":"https://api.github.com/users/heinermann/received_events","type":"User","site_admin":false}],"milestone":null,"comments":11,"created_at":"2016-07-27T23:53:26Z","updated_at":"2016-07-29T16:13:41Z","closed_at":null,"body":"Starcraft: Broodwar is about to receive a 1.17.x update. BWAPI needs to be capable of updating to a new Starcraft version.\r\n\r\nHere is a checklist of things that need to be updated.\r\n\r\nNote: New addresses are using a base of 0x00400000.\r\nNote: Items crossed out were removed in an effort to reduce the number of offsets.\r\n\r\n- [x] Support actually loading BWAPI (SDrawRealizePalette is no longer exported by Storm.dll)\r\n- [ ] Support for a dynamic base address for offsets.\r\n- [ ] Offsets need to be updated.\r\n  - [ ] Player Information\r\n    - [ ] PlayerResources (Old = 0x0057F0F0)\r\n    - [ ] PlayerVictory (Old = 0x00650974)\r\n    - [ ] startPositions (Old = 0x0058D720)\r\n    - [ ] ForceNames (Old = 0x0058D5BC)\r\n    - [ ] Players (Old = 0x0057EEE0)\r\n    - [ ] PlayerDownloadStatus (Old = 0x0068F4FC)\r\n    - [ ] playerStatusArray (Old = 0x0057F0B8)\r\n  - [ ] Alliance and Vision\r\n    - [ ] Alliance (Old = 0x0058D634)\r\n    - [ ] PlayerVision (Old = 0x0057F1EC)\r\n    - [ ] ReplayVision (Old = 0x006D0F18)\r\n    - [ ] ReplayRevealAll (Old = 0x006D0F1C)\r\n  - [ ] Code Patches/hacks\r\n    - [ ] ServerMenuIn (Old = 0x004DD5A2)\r\n    - [ ] ServerMenuOut (Old = 0x004DD5C9)\r\n    - [ ] OpponentStartHack (Old = 0x004B995D)\r\n    - [ ] SingleSpeedHack (Old = 0x004D99FB)\r\n  - [ ] Menu speed hacks\r\n    - [ ] commonSwishControllers (Old = 0x005129EC, New = 0x00503D78, but address placement of other common controllers has changed, thus we need a new method for this (probably code patch or direct dialog editing?))\r\n    - [ ] gluCustmSwishController (Old = 0x0051A9F0)\r\n    - [ ] gluCmpgnSwishController (Old = 0x00512B10)\r\n    - [ ] gluScoreSwishController (Old = 0x0051A844)\r\n    - [ ] gluChatSwishController (Old = 0x0051A490)\r\n  - [ ] Command management\r\n    - [ ] sgdwBytesInCmdQueue (Old = 0x00654AA0)\r\n    - [ ] TurnBuffer (Old = 0x00654880)\r\n    - [ ] BWFXN_sendTurn (Old = 0x00485A40)\r\n    - [ ] BWFXN_QueueCommand (Old = 0x00485BD0)\r\n  - [ ] Speed and Latency\r\n    - [ ] GameSpeedModifiers (Old = 0x005124D8)\r\n    - [ ] GameSpeed (Old = 0x006CDFD4)\r\n    - [ ] LatencyFrames (Old = 0x0051CE70)\r\n    - [ ] FrameSkip (Old = 0x005124D4)\r\n    - [ ] Latency (Old = 0x006556e4)\r\n  - [ ] Dialog and Drawing\r\n    - [x] ~~GenericDlgInteractFxns (Old = 0x005014AC)~~\r\n    - [x] ~~GenericDlgUpdateFxns (Old = 0x00501504)~~\r\n    - [ ] DialogList (Old = 0x006D5E34)\r\n    - [ ] FontBase (Old = 0x006CE0F4) (We should get rid of this, it causes problems for non-english versions)\r\n    - [ ] GameScreenBuffer (Old = 0x006CEFF0)\r\n    - [ ] ScreenLayers (Old = 0x006CEF50)\r\n    - [ ] PlayerColors (Old = 0x00581DD6)\r\n  - [ ] DirectDraw Hacks\r\n    - [ ] GamePalette (Old = 0x006CE320)\r\n    - [ ] DDInterface (Old = 0x006D5E08)\r\n    - [ ] PrimaryPalette (Old = 0x006D5E0C)\r\n    - [ ] PrimarySurface (Old = 0x006D5E00)\r\n    - [ ] BackSurface (Old = 0x006D5E10)\r\n    - [ ] BWFXN_DDrawDestroy (Old = 0x0041D8B0)\r\n    - [ ] DDrawInitCallPatch (Old = 0x004DB0A2)\r\n  - [ ] Units\r\n    - [ ] UnitNodeList_VisibleUnit_First (Old = 0x00628430)\r\n    - [ ] UnitNodeList_HiddenUnit_First (Old = 0x006283EC)\r\n    - [ ] UnitNodeList_ScannerSweep_First (Old = 0x006283F4)\r\n    - [ ] UnitNodeTable (Old = 0x0059CCA8)\r\n  - [ ] Bullets\r\n    - [ ] BulletNodeTable_FirstElement (Old = 0x0064DEC4)\r\n    - [ ] BulletNodeTable (Old = 0x0064B2E8)\r\n  - [ ] Unit Ordering (We should get rid of these)\r\n    - [ ] UnitOrderingX (Old = 0x0066FF78)\r\n    - [ ] UnitOrderingY (Old = 0x006769B8)\r\n    - [ ] UnitOrderingCount (Old = 0x0066FF74)\r\n  - [ ] Game Mode and State\r\n    - [ ] gameType (Old = 0x00596820)\r\n    - [ ] InReplay (Old = 0x006D0F14)\r\n    - [ ] NetMode (Old = 0x0059688C)\r\n    - [ ] CountdownTimer (Old = 0x0058D6F4)\r\n    - [ ] ElapsedTime (Old = 0x0058D6F8)\r\n    - [ ] ReplayFrames (Old = 0x006D0F31)\r\n    - [ ] GameState (Old = 0x006D11EC)\r\n    - [ ] gwNextGameMode (Old = 0x0051CE90)\r\n    - [ ] gwGameMode (Old = 0x00596904)\r\n    - [ ] glGluesMode (Old = 0x006D11BC)\r\n    - [ ] g_LocalHumanID (Old = 0x00512688)\r\n  - [ ] Memory Leak\r\n    - [ ] customList_UIDlgData (Old = 0x0051A350)\r\n  - [ ] Unit Selection\r\n    - [ ] ClientSelectionGroup (Old = 0x00597208)\r\n    - [ ] ClientSelectionCount (Old = 0x0059723D)\r\n  - [ ] Inputs\r\n    - [ ] InputProcedures (Old = 0x005968A0)\r\n    - [ ] EventDialogs (Old = 0x006D5E40)\r\n    - [ ] InputFlags (Old = 0x006CDDC0)\r\n  - [ ] Pausing (and frame hook)\r\n    - [ ] isGamePaused (Old = 0x006509C4)\r\n    - [ ] BWFXN_P_IsGamePaused (Old = 0x004D974E)\r\n  - [ ] Strings\r\n    - [ ] CurrentMapFileName (Old = 0x0057FD3C)\r\n    - [ ] CurrentMapName (Old = 0x0057FE40)\r\n    - [ ] CurrentMapFolder (Old = 0x0059BB70)\r\n    - [ ] SaveGameFile (Old = 0x00685148)\r\n  - [ ] Repair/Refund hooks (can we dump these somehow?)\r\n    - [ ] BWFXN_RefundMinerals (Old = 0x0042ce97)\r\n    - [ ] BWFXN_RefundMineralsReturnAddress (Old = 0x0042ce9e)\r\n    - [ ] BWFXN_RefundGas (Old = 0x0042ceb8)\r\n    - [ ] BWFXN_RefundGasReturnAddress (Old = 0x0042cebe)\r\n    - [ ] BWFXN_RefundMinAndGas2 (Old = 0x0042ced9)\r\n    - [ ] BWFXN_RefundMinAndGas2ReturnAddress (Old = 0x0042cedf)\r\n    - [ ] BWFXN_RefundMinAndGas5 (Old = 0x00453E62)\r\n    - [ ] BWFXN_RefundMinAndGas5ReturnAddress (Old = 0x00453E68)\r\n    - [ ] BWFXN_RefundMin4 (Old = 0x004541C2)\r\n    - [ ] BWFXN_RefundMin4ReturnAddress (Old = 0x004541CD)\r\n    - [ ] BWFXN_RefundGas4 (Old = 0x004541FD)\r\n    - [ ] BWFXN_RefundGas4ReturnAddress (Old = 0x00454204)\r\n    - [ ] BWFXN_RefundMin3 (Old = 0x0045D44D)\r\n    - [ ] BWFXN_RefundMin3ReturnAddress (Old = 0x0045D454)\r\n    - [ ] BWFXN_RefundGas3 (Old = 0x0045D46e)\r\n    - [ ] BWFXN_RefundGas3ReturnAddress (Old = 0x0045D474)\r\n    - [ ] BWFXN_SpendRepair (Old = 0x00467006)\r\n    - [ ] BWFXN_SpendRepairReturnAddress (Old = 0x0046700D)\r\n  - [x] ~~BWFXN_DSoundDestroy (Old = 0x004BC180) (Considering dropping support for this, new = 0x0049EAE0)~~\r\n  - [x] ~~BWFXN_NetSelectReturnMenu (Old = 0x004DC5B0) (Considering dropping support for this, new = 0x00457E50)~~\r\n  - [ ] Player functions\r\n    - [ ] BWFXN_RandomizePlayerRaces (Old = 0x004A9A30)\r\n    - [ ] BWFXN_RandomizeRacePatch (Old = 0x004EF20E)\r\n    - [ ] BWFXN_InitializePlayerConsole (Old = 0x004EE180)\r\n    - [ ] BWFXN_InitPlayerConsolePatch (Old = 0x004EF244)  \r\n  - [ ] Positioning (Map/Mouse) and Sizes\r\n    - [ ] MoveToX (Old = 0x0062848C)\r\n    - [ ] MoveToY (Old = 0x006284A8)\r\n    - [ ] MoveToTile (Old = 0x0057F1D0)\r\n    - [ ] Mouse (Old = 0x006CDDC4)\r\n    - [ ] ScreenX (Old = 0x00628448)\r\n    - [ ] ScreenY (Old = 0x00628470)\r\n    - [ ] MapSize (Old = 0x0057F1D4)\r\n    - [ ] BWFXN_UpdateScreenPosition (Old = 0x0049BFD0)\r\n  - [ ] Triggers\r\n    - [ ] TriggerVectors (Old = 0x0051A280)\r\n    - [ ] BWFXN_ExecuteGameTriggers (Old = 0x0048A460)\r\n    - [ ] BWFXN_ExecuteGameTrigsCallPatch (Old = 0x004D9798)\r\n  - [ ] Supplies/Availability\r\n    - [ ] AllScores (Old = 0x00581DE4)\r\n    - [ ] UnitAvailability (Old = 0x0057F27C)\r\n  - [ ] Upgrade Data\r\n    - [ ] UpgradeMaxSC (Old = 0x0058D088)\r\n    - [ ] UpgradeLevelSC (Old = 0x0058D2B0)\r\n    - [ ] UpgradeMaxBW (Old = 0x0058F278)\r\n    - [ ] UpgradeLevelBW (Old = 0x0058F32C)\r\n    - [ ] UpgradeProgress (Old = 0x0058F3E0)\r\n  - [ ] Tech Data\r\n    - [ ] TechAvailableSC (Old = 0x0058CE24)\r\n    - [ ] TechResearchSC (Old = 0x0058CF44)\r\n    - [ ] TechAvailableBW (Old = 0x0058F050)\r\n    - [ ] TechResearchBW (Old = 0x0058F140)\r\n    - [ ] ResearchProgress (Old = 0x0058F230)\r\n  - [ ] Map Data\r\n    - [ ] MapTileArray (Old = 0x005993C4)\r\n    - [ ] TileSetMap (Old = 0x006D5EC8)\r\n    - [ ] MiniTileFlags (Old = 0x005993D0)\r\n    - [ ] ActiveTileArray (Old = 0x006D1260)\r\n    - [ ] SAIPathing (Old = 0x006D5BFC)\r\n- [ ] Structure layouts need to be verified.\r\n  - [ ] dialog\r\n  - [ ] CUnit\r\n  - [ ] CBullet\r\n  - [ ] CSprite\r\n  - [ ] CImage\r\n  - [ ] PlayerResources\r\n  - [ ] PlayerInfo\r\n  - [ ] Trigger List\r\n  - [ ] AllScores\r\n  - [ ] SAI_Paths\r\n  - [ ] ContourHub\r\n- [ ] Storm functions are updated\r\n  - [ ] SDrawManualInitialize no longer takes the palette arguments\r\n  - [ ] SDrawCaptureScreen now takes a second argument\r\n"},"comment":{"url":"https://api.github.com/repos/bwapi/bwapi/issues/comments/236223650","html_url":"https://github.com/bwapi/bwapi/issues/673#issuecomment-236223650","issue_url":"https://api.github.com/repos/bwapi/bwapi/issues/673","id":236223650,"user":{"login":"heinermann","id":1966366,"avatar_url":"https://avatars.githubusercontent.com/u/1966366?v=3","gravatar_id":"","url":"https://api.github.com/users/heinermann","html_url":"https://github.com/heinermann","followers_url":"https://api.github.com/users/heinermann/followers","following_url":"https://api.github.com/users/heinermann/following{/other_user}","gists_url":"https://api.github.com/users/heinermann/gists{/gist_id}","starred_url":"https://api.github.com/users/heinermann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/heinermann/subscriptions","organizations_url":"https://api.github.com/users/heinermann/orgs","repos_url":"https://api.github.com/users/heinermann/repos","events_url":"https://api.github.com/users/heinermann/events{/privacy}","received_events_url":"https://api.github.com/users/heinermann/received_events","type":"User","site_admin":false},"created_at":"2016-07-29T16:13:41Z","updated_at":"2016-07-29T16:13:41Z","body":"Do you have the structure itself? This would eliminate many offsets.\r\n\r\n`Latency` might be the settings option, in which case it would now be incorrect in BWAPI's calculations that use it. I would need to verify."}}
{"actor":{"display_login":"heinermann"}}