Figure out crowns data layout
This commit is contained in:
parent
c460bdbd20
commit
ce6410c16d
@ -6,5 +6,9 @@ public static class Constants
|
||||
|
||||
public const int MUSIC_ID_MAX = 1600;
|
||||
|
||||
public const int MUSIC_FLAG_BYTES = MUSIC_ID_MAX / 8 + 1;
|
||||
public const int MUSIC_FLAG_ARRAY_SIZE = MUSIC_ID_MAX / 8 + 1;
|
||||
|
||||
public const int CROWN_FLAG_ARRAY_SIZE = MUSIC_ID_MAX + 1;
|
||||
|
||||
public const int DONDAFUL_CROWN_FLAG_ARRAY_SIZE = MUSIC_ID_MAX + 1;
|
||||
}
|
17
TaikoLocalServer/Common/Enums/CrownTypeFlag.cs
Normal file
17
TaikoLocalServer/Common/Enums/CrownTypeFlag.cs
Normal file
@ -0,0 +1,17 @@
|
||||
namespace TaikoLocalServer.Common.Enums;
|
||||
|
||||
[Flags]
|
||||
public enum CrownTypeFlag : ushort
|
||||
{
|
||||
None = 0,
|
||||
EasyClear = 0b10,
|
||||
EasyGold = 0b11,
|
||||
NormalClear = 0b10_00,
|
||||
NormalGold = 0b11_00,
|
||||
HardClear = 0b10_0000,
|
||||
HardGold = 0b11_0000,
|
||||
OniClear = 0b10_00_0000,
|
||||
OniGold = 0b11_00_0000,
|
||||
UraOniClear = 0b10_00000000,
|
||||
UraOniGold = 0b11_00000000
|
||||
}
|
12
TaikoLocalServer/Common/Enums/DondafulCrownTypeFlag.cs
Normal file
12
TaikoLocalServer/Common/Enums/DondafulCrownTypeFlag.cs
Normal file
@ -0,0 +1,12 @@
|
||||
namespace TaikoLocalServer.Common.Enums;
|
||||
|
||||
[Flags]
|
||||
public enum DondafulCrownTypeFlag : byte
|
||||
{
|
||||
None = 0,
|
||||
Easy = 1,
|
||||
Normal = 2,
|
||||
Hard = 4,
|
||||
Oni = 8,
|
||||
UraOni = 16
|
||||
}
|
@ -1,4 +1,8 @@
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using System.Collections;
|
||||
using System.Collections.Specialized;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using TaikoLocalServer.Common;
|
||||
using TaikoLocalServer.Common.Enums;
|
||||
using TaikoLocalServer.Utils;
|
||||
|
||||
namespace TaikoLocalServer.Controllers;
|
||||
@ -8,8 +12,13 @@ namespace TaikoLocalServer.Controllers;
|
||||
public class CrownsDataController : ControllerBase
|
||||
{
|
||||
private readonly ILogger<CrownsDataController> logger;
|
||||
public CrownsDataController(ILogger<CrownsDataController> logger) {
|
||||
|
||||
private readonly IConfiguration configuration;
|
||||
|
||||
public CrownsDataController(ILogger<CrownsDataController> logger, IConfiguration configuration)
|
||||
{
|
||||
this.logger = logger;
|
||||
this.configuration = configuration;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
@ -18,13 +27,14 @@ public class CrownsDataController : ControllerBase
|
||||
{
|
||||
logger.LogInformation("CrownsData request : {Request}", request.Stringify());
|
||||
|
||||
var manager = MusicAttributeManager.Instance;
|
||||
var crown = new byte[manager.Musics.Count*8];
|
||||
var crown = new ushort[Constants.CROWN_FLAG_ARRAY_SIZE];
|
||||
var bytes = new byte[Constants.DONDAFUL_CROWN_FLAG_ARRAY_SIZE];
|
||||
|
||||
var response = new CrownsDataResponse
|
||||
{
|
||||
Result = 1,
|
||||
CrownFlg = GZipBytesUtil.GetGZipBytes(crown),
|
||||
DondafulCrownFlg = GZipBytesUtil.GetGZipBytes(new byte[manager.Musics.Count*8])
|
||||
DondafulCrownFlg = GZipBytesUtil.GetGZipBytes(bytes)
|
||||
};
|
||||
|
||||
return Ok(response);
|
||||
|
@ -23,7 +23,7 @@ public class InitialDataCheckController : ControllerBase
|
||||
{
|
||||
logger.LogInformation("InitialDataCheck request: {Request}", request.Stringify());
|
||||
|
||||
var enabledArray = new byte[Constants.MUSIC_FLAG_BYTES];
|
||||
var enabledArray = new byte[Constants.MUSIC_FLAG_ARRAY_SIZE];
|
||||
|
||||
var response = new InitialdatacheckResponse
|
||||
{
|
||||
|
@ -19,7 +19,8 @@ public class SongPurchaseController : ControllerBase
|
||||
|
||||
var response = new SongPurchaseResponse
|
||||
{
|
||||
Result = 1
|
||||
Result = 1,
|
||||
TokenCount = (int)(10 - request.Price)
|
||||
};
|
||||
|
||||
return Ok(response);
|
||||
|
@ -22,16 +22,15 @@ public class UserDataController : ControllerBase
|
||||
|
||||
var musicAttributeManager = MusicAttributeManager.Instance;
|
||||
|
||||
var releaseSongArray = new byte[Constants.MUSIC_FLAG_BYTES];
|
||||
var releaseSongArray = new byte[Constants.MUSIC_FLAG_ARRAY_SIZE];
|
||||
var test = new BitArray(Constants.MUSIC_ID_MAX);
|
||||
foreach (var music in musicAttributeManager.Musics)
|
||||
{
|
||||
test.Set((int)music, true);
|
||||
}
|
||||
test.Set(2, false);
|
||||
test.CopyTo(releaseSongArray, 0);
|
||||
|
||||
var uraSongArray = new byte[Constants.MUSIC_FLAG_BYTES];
|
||||
var uraSongArray = new byte[Constants.MUSIC_FLAG_ARRAY_SIZE];
|
||||
test.SetAll(false);
|
||||
foreach (var music in musicAttributeManager.MusicsWithUra)
|
||||
{
|
||||
|
@ -6,6 +6,7 @@
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*",
|
||||
"index": 2,
|
||||
"Kestrel": {
|
||||
"Endpoints": {
|
||||
"Server": {
|
||||
|
Loading…
x
Reference in New Issue
Block a user