Migration from PureBasic 5.20 LTS to 5.40 LTS

Billboard library

AddBillboard(): code change
  ; Old
  AddBillboard(Billboard, BillboardGroup, x, y, z)

  ; New
  Billboard = AddBillboard(BillboardGroup, x, y, z)

Cipher library

ExamineMD5Fingerprint(): code change
  ; Old
  ExamineMD5Fingerprint(#FingerPrint)

  ; New
  UseMD5FingerPrint()  
  StartFingerprint(#FingerPrint, #PB_Cipher_MD5)

ExamineSHA1Fingerprint(): code change
  ; Old
  ExamineSHA1Fingerprint(#FingerPrint)
  
  ; New
  UseSHA1FingerPrint()
  StartFingerprint(#FingerPrint, #PB_Cipher_SHA1)

MD5FileFingerprint(): code change
  ; Old
  Result$ = MD5FileFingerprint(Filename$)
  
  ; New
  UseMD5FingerPrint()
  Result$ = FileFingerprint(Filename$, #PB_Cipher_MD5)

MD5Fingerprint(): code change
  ; Old
  Result$ = MD5Fingerprint(*Buffer, Size)
  
  ; New
  UseMD5FingerPrint()
  Result$ = Fingerprint(*Buffer, Size, #PB_Cipher_MD5)

SHA1FileFingerprint(): code change
  ; Old
  Result$ = SHA1FileFingerprint(Filename$)
  
  ; New
  UseSHA1FingerPrint()
  Result$ = FileFingerprint(Filename$, #PB_Cipher_SHA1)

SHA1Fingerprint(): code change
  ; Old
  Result$ = SHA1Fingerprint(*Buffer, Size)
  
  ; New
  UseSHA1FingerPrint()
  Result$ = Fingerprint(*Buffer, Size, #PB_Cipher_SHA1)

CRC32FileFingerprint(): code change
  ; Old
  Result = CRC32FileFingerprint(Filename$)
  
  ; New
  UseCRC32FingerPrint()
  Result.l = Val("$"+FileFingerprint(Filename$, #PB_Cipher_CRC32))

CRC32Fingerprint(): code change
  ; Old
  Result = CRC32Fingerprint(*Buffer, Size)
  
  ; New
  UseCRC32FingerPrint()
  Result.l = Val("$"+Fingerprint(*Buffer, Size, #PB_Cipher_CRC32))

NextFingerprint(): rename only
  ; Old
  NextFingerprint(#FingerPrint, *Buffer, Size)
  
  ; New
  AddFingerprintBuffer(#FingerPrint, *Buffer, Size)

Mail library


SendMail(): code change if the 'Asynchronous' parameter was used
  ; Old
  SendMail(#Mail, Smtp$, Port, 1)
  
  ; New
  SendMail(#Mail, Smtp$, Port, #PB_Mail_Asynchronous)

Packer library


RemovePackFile(): removed
PackerEntrySize(): #PB_Packer_CompressedSize support removed for ZIP and 7z archives

XML library


CreateXMLNode(): code change
  ; Old
  Node = CreateXMLNode(ParentNode)
  SetXMLNodeName(Node, "Name")
  
  ; New
  Node = CreateXMLNode(ParentNode, "Name")

Screen library


AvailableScreenMemory() removed as new API doesn't support this info anymore. It was mostly returning '0' anyway.

Window library


#PB_Event_SizeWindow and #PB_Event_MoveWindow are no more realtime on Windows, use BindEvent() to get real time update.

Engine3D library


WorldCollisionAppliedImpulse() now returns a float about the applied impulse. GetX/Y/Z() are no more supported.

Various


DataSection label within Procedure are now local labels.
ASM local label prefix has been changed from "l_" to "ll_", to avoid possible clash with main labels.
#PB_LinkedList constant has been renamed to #PB_List for better consistancy