MigrationGuide - cwtickle/danoniplus-docs GitHub Wiki

English | Japanese

| < How to upgrade | Migration Guide | Update Info > |

Migration Guide

  • For the latest information, please visit Changelog for the latest information.
  • See also UpdateInfo for an overview of updates.

⭐ v35 -> v36

See the "Files Changed" section of the "Changelog".

1. Introduction of new color change specification (ncolor_data)

  • Starting from ver36.0.0, the description specification of color change has been renewed.
  • The existing color change (acolor_data, color_data) can still be used, but the new function is implemented only for ncolor_data.

🛠 Corrections (optional)

  • The new specification (ncolor_data) and the old specification (acolor_data, color_data) can be used together.
  • When replacing color_change (ncolor_data) page as a reference for replacement.

2. Chart setting: elimination of colorDataType (ver 36.1.0 or later)

  • Due to operational problems, colorDataType in the chart settings has been eliminated.
    If you use it, you may need to change the number of frames for individual color changes on freeze-arrow hits.

🛠 Corrections (optional)

  • |colorDataType=v6| is not available, please revise the number of frames specified for individual color change on freeze arrow hit as necessary.

⭐ v34 -> v35

See the "Files Changed" section of the "Changelog".

1. Change due to introduction of height change parameter h

  • Starting from ver35.0.0, a parameter h has been implemented to dynamically change the window height.
  • This is disabled by default, but if you wish to enable it, please keep in mind the coordinates specified in the background and mask.

🛠 Corrections

  • In Background and Mask Motion, if you are setting up a background or mask that matches the position of the step zone (bottom), you need to make the coordinate specification variable.
  • In the background and mask motion, the variable {} can be used to specify the coordinates, so we will use that functionality. Adjust the position so that g_headerObj.playingY + g_headerObj.playingHeight is at the bottom of the screen size.
  • This setting is handled when the height change parameter h is enabled. If it is disabled, no action is required.
|back_data=
400,2,Flow test,,100,{g_headerObj.playingY + g_headerObj.playingHeight - 50},36,0,0,fromBig,100,forwards
|

⭐ v33 -> v34

See the "Files Changed" section of the "Changelog".

⭐ v32 -> v33

See the "Files Changed" section of the "Changelog".

1. skin file specification change

  • Starting with ver33.0.0, the positioning of skin files has changed and they are now files for setting custom properties.
  • If you have created your own skin file, you must either change to the new method or use the existing one.
    If you have created your own skin file, you must either change to the new method or use the old one.

🛠 Corrections

  • If changing to the new method, the skin file needs to be reworked.
  • When using a background image, the reference path must be changed from when specifying CSS directly (./css) and the chart settings (./js).
  • Reference: CSS Skin specification, CSS skin change

⭐ v31 -> v32

See the "Files Changed" section of the "Changelog".

1. Change custom key definitions by separating left and right key assignments for Shift, Ctrl, and Alt keys

  • Starting from ver32.0.0, the left and right keys for Shift, Ctrl, and Alt are now distinguished. As a result, the conventional Shift, Ctrl, and Alt keys are assigned only to the left side. If you want to assign them to the right keys, you will need to review the value of "keyCtrlX" in the custom key definition.
KeyCode KeyboardEvent.code
16 ShiftLeft
17 ControlLeft
18 AltLeft
256 ShiftRight
257 ControlRight
258 AltRight

🛠 Corrections

  • Please revise the custom key definition "keyCtrlX" according to the table above when assigning it to the key on the right side.

⭐ v30 -> v31

See the "Files Changed" section of the "Changelog".

1. Items to be changed in skin files due to additional setting items

  • Starting with ver 31.0.0, a new setting item "HitPosition" has been added. This change requires additional settings if you have defined your own skin files.

🛠 Corrections

  • Define colors for "HitPosition" and add them to "danoni_skin_XXX.css" with reference to the following.
  • XXX is the skin name.
.settings_HitPosition::first-letter {
	color: #ff99ff;
}
  • Also, the "Opacity" setting is also color-changed, so please change the color if necessary.
.settings_Opacity::first-letter {
	color: #ee99ff;
}

2. Change the vertical size of buttons for settings on the settings screen (including Display settings)

  • The vertical size of buttons for settings has been changed from "23px" to "22px". If you have your own design, you may need to adjust the vertical spacing between setting items as it will become narrower.
  • Before the change is on the left side, and after the change is on the right side.

🛠 Corrections

  • For unique designs, please adjust the vertical size of the setting item to fit within 22px.

3. 11ikey pattern 2 abolished by adding "ShapeGroup", and "ConfigType" abolished

  • "ShapeGroup" has been added since ver31, which eliminates 11ikey pattern 2.
  • If you have specified 11ikey pattern 2 (11i_1) as an abbreviation in your custom key definition, you cannot use it from now on.
  • From now on, Pattern 2 can be reproduced by changing the "ShapeGroup" in Pattern 1 of 11ikey.
  • In addition, the related buttons for "ConfigType" have been eliminated and the buttons for "ColorType," "ColorGr." and "ShuffleGr." have been rearranged accordingly.

🛠 Corrections

  • If you have specified the 11ikey pattern 2 (11i_1) as an abbreviation in the custom key definition, delete the specification.
  • If the related button in "ConfigType" is specified as coordinates, modify it so that it does not refer to them.

4. Add button to skip key pattern (ver30.5.0 or later)

  • Starting with ver 30.5.0, a button for skipping key patterns has been implemented in the key configuration screen. This has increased the number of buttons, so if you have a custom design, you will need to accommodate the additional buttons.
  • The IDs corresponding to the skip buttons are "btnPtnChangeRR" and "btnPtnChangeLL".

🛠 Corrections

  • If you are specifying individual coordinates for each design, please modify the above as well.

⭐ v29 -> v30

See the "Files Changed" section of the "Changelog".

1. Change in Initial Display Method of Key Configuration Screen

  • Starting with ver 30.0.1, the initial display method of the key configuration screen has been changed to always refer to partial key types groups.
  • If the "keyGroupX" setting is not used for custom key definitions, the behavior has been changed to force all keys to be displayed.
  • If you have erased some step zones in a key change work, please check the behavior to be sure.

🛠 Corrections

  • If all keys are displayed in the above, a workaround is possible by using "keyGroupX" and "keyGroupOrder". Suppose you want to display only the first five arrows for the key configurations you want to initially display, and hide all other arrows. In this case, the key group of the key configurations to be initially displayed is set to "5" and the key group for the overall display is set to "A" as shown below.
|keyExtraList=Tr|
|keyGroupTr=5/A,5/A,5/A,5/A,5/A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A|
|keyGroupOrder=5| <- Control to display only the arrow of key group "5" on the key config.
  • If you are using customjs to control the display of keys, put the following settings in the chart. This way, only some of the arrows will be visible in the key configurations, and all the arrows will be visible in the play screen.
|keych_data=0,A| <- Make all arrows visible from the beginning (show/hide control is still done by "customjs" as before)
  • Note that the fundamental response is to use keyGroupX and keych_data to control the proper display. (since the amount of customjs writing can be greatly reduced)

⭐ v28 -> v29

See the "Files Changed" section of the "Changelog".

1. Mandatory use of "g_workObj.judgFrzHitCnt[]".

  • Starting from ver. 29.0.0, with the start of getting Fast/Slow of freeze-arrow (starting point), "g_workObj.judgFrzHitCnt[]" is required to be used.
    Initialization of "g_workObj.judgFrzHitCnt[]" is now mandatory, regardless of whether or not the starting point of freeze arrow is determined.
  • Although initialization is performed for the necessary key lanes in "getArrowSettings" before the play screen, it is not necessary to initialize "g_workObj.judgFrzHitCnt[]". However, if lanes are forced to be added later (e.g., by changing keys), the lanes must be initialized as well. (This case is considered to be limited).

🛠 Corrections

  • The actual source specifies the following. If necessary, initialize with 1 for the additional lanes.
g_workObj.judgFrzHitCnt = [...Array(keyNum)].fill(1);

2. Id: diffFJ

  • With the implementation of Fast/Slow for freeze-arrow starting points, we now use "diffFJ", which was previously unused.
    If you are switching between displaying and not displaying "diffJ", Fast/Slow notation for arrows, you must also control "diffFJ", the Fast/Slow notation for freeze-arrow starting points.
  • If you simply do not want to display Fast/Slow from the beginning, you can do so from Display's chart settings.

🛠 Corrections

  • If you want to dynamically switch the Fast/Slow notation in your work, make sure that diffFJ, Fast/Slow at the start of freeze-arrow, is also subject to change.

⭐ v27 -> v28

See the "Files Changed" section of the "Changelog".

1. Change of buttons on the chart details screen (only for users who migrated from ver27.7.0 or earlier)

  • Starting from ver. 27.8.0, the button layout of the "chart Details" screen in the Settings screen has been changed. If you have changed the design externally, you need to review the id names.

🛠 Corrections

  • Please review the id names by referring to the following and ID reference, please review the id names.
    • Deleted: lnkScoreDetail, lnkScoreDetailB (due to abolishment of common button)
    • Add: lnkSpeedG, lnkDensityG, lnkToolDifG (to add individual buttons)

⭐ v26 -> v27

See the "Files Changed" section of the "Changelog".

1. Elimination of transition frame from play screen to result screen

  • Eliminate 100 millisecond transition frame from play screen to results screen.

🛠 Corrections

  • If you are creating a result motion that transitions from the play screen to the results screen, please review the number of frames in the result motion. Please review the number of frames in the result motion. (backresult_data, maskresult_data)

2. Functions moved to "danoni_legacy_function.js"

  • The following functions that are not used in the current source have been moved to "danoni_legacy_function.js". Target: loadScript, importCssFile, loadMultipleFiles

🛠 Corrections

  • If you wish to use this function in the future, please upload "lib/danoni_legacy_function.js" to your server. We recommend commenting out any unused functions.

⭐ v25 -> v26

See the "Files Changed" section of the "Changelog".

1. Change arguments of some internal functions

  • Due to code cleanup, some function arguments have been changed. (Since these functions are for internal use, there are almost no cases of direct references to them.)
Function name Conventional After change
mergeColorData _header
(Default argument: color)
_header
(Default argument: ``)
changeColors _mkColor, _mkColorCd, _objType _mkColor, _mkColorCd, _header, _name
changeCssMotions _mkCssMotion, _mkCssMotionName, _name _header, _name, _frameNum

🛠 Corrections

  • If you are using these functions on the custom side, review the arguments.

⭐ v24 -> v25

See the "Files Changed" section of the "Changelog".

1. Change in retention of data before fade-in

  • Starting with v25.0.0, the data before fade-in is retained for lyrics and background/mask motion in principle. However, those on the same level are excluded, as they are not needed in principle.
  • Most of the changes are unaffected by this change, but if you are using CSS fade-out in the background/mask display a lot, you may find it difficult to use the fade-out in the background/mask display. When playing with fade-ins, there is a possibility that the display will be incorrect. If you specify Hierarchy:"ALL" or empty in the hierarchy specification after fade-out, you will not be affected by this change.

Unaffected Examples

300,0,lyrics display
500,0      // contains a sentence that removes the display

🛠 Corrections (Method 1)

  • Pick out the names of the animations that are faded out by CSS and list them in the following variable names in "danoni_setting.js". Note that the following list will be searched for partial matches, so if some of the strings can be shared, it is better to group them together to reduce the number of descriptions.
g_presetObj.stockForceDelList = {
	word: [],
	back: [`fade`, `out`, `disappear`],
	mask: [`fade`, `out`],
};

🛠 Corrections (Method 2)

  • The following statement in "danoni_setting.js" can be used to keep the existing settings. This is a method to disable all settings at once, and is useful for immediate countermeasures.
const g_presetObj.unStockCategories = [`word`, `back`, `mask`];

2. Change in handling of internal variable names

  • Starting with ver 25.1.0, the handling of internal variables has been changed so that individual and overall color changes are handled together.
    The handling of internal variables has been changed.

Variable names merged

Variable name before Variable name after change Usage
g_workObj.mkColor
g_workObj.mkAColor
g_workObj.mkColor Individual and overall color change (arrow type)
g_workObj.mkColorCd
g_workObj.mkAColorCd
g_workObj.mkColorCd Individual and overall color change (color code for arrow)
g_workObj.mkFColor
g_workObj.mkFAColor
g_workObj.mkFColorNormal
g_workObj.mkFColorNormalBar
g_workObj.mkFColorHit
g_workObj.mkFColorHitBar
Individual and overall color change (freeze-arrow type)
g_workObj.mkFColorCd
g_workObj.mkFAColorCd
g_workObj.mkFColorNormalCd
g_workObj.mkFColorNormalBarCd
g_workObj.mkFColorHitCd
g_workObj.mkFColorHitBarCd
Individual and overall color change (color code for freeze-arrow)

Variables with the same name but different array handling

Target variables Previous After change
g_scoreObj.colorData 1 set of 3 (number of frames, color number, color code) 1 set of 4 (number of frames, color number, color code, overall color change flag)

🛠 Corrections

  • If you are using these groups of variables, please revise the variable names as above.

⭐ v23 -> v24

See the "Files Changed" section of the "Changelog".

1. Partial change of label and message definition override specification (danoni_setting.js)

  • Due to the multi-language support introduced in v24.0.0, there are changes in the definitions of g_local_msgObj and g_local_lblNameObj.
Previous After change
g_local_msgObj.(ID name) g_local_msgObj.Ja.(ID name)
g_local_lblNameObj.(ID name) g_local_lblNameObj.Ja.(ID name)

🛠 Corrections

  • If you are using these variables, please revise the variable names as above.

2. Setting label override for main screen

  • For g_lblRenames defined in "danoni_setting.js", if you want to apply the label override defined in 1. to the main screen as well, some additions are required.

🛠 Corrections

  • Please add the following settings to "danoni_setting.js".
const g_lblRenames = {
	option: true,
	settingsDisplay: true,
	main: true, // Added this row
	keyConfig: true,
	result: true,
};

3. Note for modifying g_msgObj, g_lblNameObj directly

  • With the multilingual support in v24.0.0, g_msgObj and g_lblNameObj are now overwritten once with data from g_lang_msgObj.(lang) and g_lang_lblNameObj.(lang).
  • This may cause the display name to change when directly changing g_msgObj or g_lblNameObj, there is a possibility that the display name will not be changed.

🛠 Corrections

  • Please stop modifying g_msgObj, g_lblNameObj directly and consider creating another danoni_setting.js.
  • Using settingType, you can create a common setting for a separate group. If you specify |settingType=works|, you can make danoni_setting_works.js the common setting for that work.
  • Then you can use g_local_msgObj.(lang) and g_local_lblNameObj.(lang) instead of g_msgObj and g_lblNameObj to overwrite messages.
// danoni_setting_works.js (defined in a separate configuration file)
g_local_msgObj.Ja = {
    difficulty: `Select a chart. Not used in this work`,
    shuffle: `Not available for this work`,
};

⭐ v22 -> v23

See the "Files Changed" section of the "Changelog".

1. Some variables in default image set (danoni_setting.js) changed

  • The variable names for the default image set introduced in v22.5.1 have changed.
// Previous variable setting
const g_presetImageSet = `classic,png`;

// New variable setting
const g_presetImageSets = [`classic,png`];

🛠 Corrections

  • If you are using the old variables, change to use the new variables.

⭐ v21 -> v22

See the "Files Changed" section of the "Changelog".

1. Partial design change of the key configuration screen

  • Buttons have been added along with the implementation of the shuffle group change function and the temporary initial arrow color change function.
ID name Change details
lblshuffleGroup ShuffleGroup label
lnkShuffleGroup ShuffleGroup button
sArrowN Shuffle group number display label * N is numbered

🛠 Corrections

  • If an overall design change is to be made, please modify the coordinates of the above ID name.

2. Functions moved to "danoni_legacy_function.js"

  • The following functions that are not used in the current source have been moved to "danoni_legacy_function.js". Target: createSprite

🛠 Corrections

  • If you wish to use this function in the future, please upload "lib/danoni_legacy_function.js" to your server.

⭐ v20 -> v21

See the "Files Changed" section of the "Changelog".

1. Specification change of some functions

  • Some functions have been eliminated or their arguments have been changed.
Function names Change details
resetCursor Deleted arguments
resetCursorMain Eliminated
resetCursorReplaced Eliminated
resetCursorALL Eliminated
setKeyConfigCursor Deleted arguments

🛠 Corrections

  • Note that if you are using "customJs", etc.

2. Functions moved to "danoni_legacy_function.js"

  • The following functions that are not used in the current source have been moved to "danoni_legacy_function.js". Target: checkArrayVal, getStrLength, paddingLeft, createDivCustomLabel

🛠 Corrections

  • If you wish to use this function in the future, please upload "lib/danoni_legacy_function.js" to your server.

⭐ v19 -> v20

See the "Files Changed" section of the "Changelog".

1. variable renaming

  • Variables that are not used in the current source code or that will cause problems in future enhancements were renamed.
List of variables to be changed (click to open/close)

Judgment characters

Previous After change Default value
C_JCR_II g_lblNameObj.j_ii "(・∀・)イイ!!"
C_JCR_SHAKIN g_lblNameObj.j_shakin "(`・ω・)シャキン"
C_JCR_MATARI g_lblNameObj.j_matari "( ´∀`)マターリ"
C_JCR_SHOBON g_lblNameObj.j_shobon "(´・ω・`)ショボーン"
C_JCR_UWAN g_lblNameObj.j_uwan "( `Д´)ウワァン!!"
C_JCR_KITA g_lblNameObj.j_kita "(゚∀゚)キタ-!!"
C_JCR_IKNAI g_lblNameObj.j_iknai "(・A・)イクナイ"

Position of judgment area in "g_judgObj"

Previous After change Default value
C_JDG_II g_judgPosObj.ii 0
C_JDG_SHAKIN g_judgPosObj.shakin 1
C_JDG_MATARI g_judgPosObj.matari 2
C_JDG_SHOBON g_judgPosObj.shobon 3
C_JDG_UWAN g_judgPosObj.uwan 4
C_JDG_KITA g_judgPosObj.kita 0
C_JDG_SFSF g_judgPosObj.sfsf 1
C_JDG_IKNAI g_judgPosObj.iknai 2

Configuration Variables

Previous After change
g_speeds g_settings.speeds
g_speedNum g_settings.speedNum
g_motions g_settings.motions
g_motionNum g_settings.motionNum
g_scrolls g_settings.scrolls
g_scrollNum g_settings.scrollNum
g_reverses g_settings.reverses
g_reverseNum g_settings.reverseNum
g_shuffles g_settings.shuffles
g_shuffleNum g_settings.shuffleNum
g_autoPlays g_settings.autoPlays
g_autoPlayNum g_settings.autoPlayNum
g_gauges g_settings.gauges
g_gaugeNum g_settings.gaugeNum
g_adjustments g_settings.adjustments
g_adjustmentNum g_settings.adjustmentNum
g_volumes g_settings.volumes
g_volumeNum g_settings.volumeNum
g_appearances g_settings.appearances
g_appearanceNum g_settings.appearanceNum
g_opacitys g_settings.opacitys
g_opacityNum g_settings.opacityNum
g_scoreDetails g_settings.scoreDetails
g_scoreDetailNum g_settings.scoreDetailNum

Display position of button to advance to previous or next setting

Previous After change
C_LBL_SETMINIL g_settingBtnObj.chara.L
C_LBL_SETMINILL g_settingBtnObj.chara.LL
C_LBL_SETMINIR g_settingBtnObj.chara.R
C_LBL_SETMINIRR g_settingBtnObj.chara.RR
C_LBL_SETMINIL_LEFT g_settingBtnObj.pos.L
C_LBL_SETMINILL_LEFT g_settingBtnObj.pos.LL
C_LBL_SETMINIR_LEFT g_settingBtnObj.pos.R
C_LBL_SETMINIRR_LEFT g_settingBtnObj.pos.RR

🛠 Corrections

  • If you have a custom group of applicable variables, please change them to the new variables.

2. Functions moved to "danoni_legacy_function.js"

  • The following functions that are not used in the current source have been moved to "danoni_legacy_function.js". Target: createLabel

🛠 Corrections

  • If you wish to use this function in the future, please upload "lib/danoni_legacy_function.js" to your server.

3. g_resultMsgObj is obsolete (since ver19.5.1)

  • g_resultMsgObj`, which manages the html part of the display part of "FULL COMBO" and "Perfect", is obsolete.

🛠 Corrections

  • If you are using this function, consider using the alternative function resultViewText.

4. Change the position of the button to go back to the Settings screen from the Display screen

  • The button to move from the Settings screen to the Display screen has been unified with the button to move from the Settings screen to the Display screen. ID names remain the same, so individual settings can be made.

🛠 Corrections

  • If the button is custom made, please make sure that the appearance of the button is not affected.

5. Removal of old variables representing step zone positions

  • Variables such as g_stepY and g_distY that used to represent the step zone position have been officially moved to g_posObj.
Previous After change
g_stepY g_posObj.stepY
g_stepYR g_posObj.stepYR
g_distY g_posObj.distY
g_reverseStepY g_posObj.reverseStepY

🛠 Corrections

  • Old variables are no longer available after v20. If you are using them on the custom side, please replace the variables.

| < How to upgrade | Migration Guide | Update Info > |

⚠️ **GitHub.com Fallback** ⚠️